========================================================================mysql
推薦帳號安全設置算法
在數據庫服務器上嚴格控制操做系統的帳號權限 1) 鎖定mysql用戶 2) 帳號獨立使用,管理員帳號和應用帳號分開,不一樣應用帳號分開 3) MYSQL 用戶目錄下,除數據文件目錄外,其餘文件和目錄屬主都改成root 4)對全部用戶使用IP和HOSTNAME來限制
========================================================================sql
避免下列危險操做數據庫
儘可能避免以root權限運行mysql 若是使用root用戶啓動數據庫,則任何具備FILE權限的用戶均可以讀寫ROOT用戶的文件,這樣會給系統形成嚴重的安全隱患。 刪除匿名帳號 建議刪除匿名帳號,或者對帳號增長密碼 給root帳號設置口令 MYSQL安裝後,root的默認密碼爲空,應當即修改 只授予帳號必須的權限 使用強密碼,避免密碼明文 除root外,任何用戶不該該有mysql庫的user表的存取權限 若是普通用戶具備修改mysql.user表的權限,則能夠修改root及其高級別帳號的密碼。
========================================================================安全
控制帳號權限服務器
不要把FILE PROCESS SUPPER 權限受權給非管理員帳號 FILE權限主要有如下做用: A)將數據庫的信息經過SELECT INTO OUTFILE 寫到服務器上有寫權限的目錄下,做爲文本格式存放。具備權限的目錄就是啓動MYSQL時的用戶權限目錄。 B)能夠將具備讀權限的文本文件經過LOAD DATA INFILE 命令寫入數據庫表,形成表中的敏感信息泄露 PROCESS權限有如下做用: 能夠執行"SHOW PROCESSLIST"命令,查看當前全部用戶執行的查詢的明文文本,若是其餘用戶正在執行敏感腳本如更新帳號,則會存在安全隱患。 SUPER權限有如下做用: 能夠執行kill命令停止任何用戶的進程。 禁用LOAD DATA LOCAL LOAD DATA LOCAL命令運行將本例文件加載到數據庫中,存在安全問題,可使用--local-infile=0來從服務器端禁用LOAD DATA LOCAL命令。 DROP TABLE 命令不會回收表的相關訪問權限 當刪除表時,其餘用戶對錶的權限並無被收回,若是建立同名的表,則這些用戶對新表的權限會自動賦予,形成權限外流。 REVOKE 命令漏洞 若是用戶被屢次賦權,而後對用戶使用REVOKE操做取消權限時,可能不能將屢次賦予的權限一次所有REVOKE完成。由於屢次賦權後,可能被認爲多組單獨的權限,REVOKE時不會依次進行清理
========================================================================網絡
使用SSL確保網絡傳輸安全加密
使用SSL來確保數據在網絡傳輸過程當中不給截取和竊聽 SSL協議提供的服務有: A)認證用戶和服務器,確保數據發送到正確的客戶機和服務器 B)加密數據以防止數據中途被竊取 C)維護數據的完整性,確保數據在傳輸過程當中不會被改變
========================================================================spa
使用SSL確保網絡傳輸安全操作系統
使用SSL來確保數據在網絡傳輸過程當中不給截取和竊聽 SSL協議提供的服務有: A)認證用戶和服務器,確保數據發送到正確的客戶機和服務器 B)加密數據以防止數據中途被竊取 C)維護數據的完整性,確保數據在傳輸過程當中不會被改變
========================================================================
MySQL加密算法加強
MYSQL中密碼加密至關於兩次SHA1夾雜一次unhex方式: SELECT CONCAT('*',UPPER(SHA1(UNHEX(SHA1('my@123'))))),PASSWORD('my@123'); +------------------------------------------------+-------------------------------------------+ | CONCAT('*',UPPER(SHA1(UNHEX(SHA1('my@123'))))) | PASSWORD('my@123') | +------------------------------------------------+-------------------------------------------+ | *F1B060F1AFDAA276FB109607A6D0A701C19C0314 | *F1B060F1AFDAA276FB109607A6D0A701C19C0314 | +------------------------------------------------+-------------------------------------------+
在MYSQL 5.6版本前,binlog日誌中和用戶密碼相關的操做是不加密的,在MYSQL 5.6版本中進行了增強,但在搭建複製時仍須要使用明文密碼。