淺談關于影響MySQL安全相關的啓動選項
mysql使用非常廣泛,在安全上也是不容忽視,今天,錦江區聚格樂享網絡工作室技術主編就(jiù)爲大家總結下列mysqld選項影響安全因素:
--allow-suspicious-udfs
該選項控制是否可以載入主函數隻有xxx符的用戶定義函數。默認情況下,該選項被(bèi)關閉,并且隻能(néng)載入至少有輔助符的UDF。這(zhè)樣(yàng)可以防止從未包含合法 UDF的共享對(duì)象文件載入函數。
--local-infile[={0|1}]
如果用--local-infile=0啓動服務器,則客戶端不能(néng)使用LOCAL in LOAD DATA語句。
--old-passwords
強制服務器爲新密碼生成(chéng)短(pre-4.1)密碼哈希。當服務器必須支持舊版本客戶端程序時(shí),爲了保證兼容性這(zhè)很有用。
(OBSOLETE) --safe-show-database
在以前版本的MySQL中,該選項使SHOW DATABASES語句隻顯示用戶具有部分權限的數據庫名。在MySQL 5.1中,該選項不再作爲現在的 默認行爲使用,有一個SHOW DATABASES權限可以用來控制每個賬戶對(duì)數據庫名的訪問。
--safe-user-create
如果啓用,用戶不能(néng)用GRANT語句創建新用戶,除非用戶有mysql.user表的INSERT權限。如果你想讓用戶具有授權權限來創建新用戶,你應給用戶授予下面(miàn)的權限:
mysql> GRANT INSERT(user) ON mysql.user TO 'user_name'@'host_name';
這(zhè)樣(yàng)确保用戶不能(néng)直接更改權限列,必須使用GRANT語句給其它用戶授予該權限。
--secure-auth
不允許鑒定有舊(pre-4.1)密碼的賬戶。
--skip-grant-tables
這(zhè)個選項導緻服務器根本不使用權限系統。這(zhè)給每個人以完全訪問所有的數據庫的權力! (通過(guò)執行mysqladmin flush-privileges或mysqladmin eload命令,或執行FLUSH PRIVILEGES語句,你能(néng)告訴一個正在運行的服務器再次開(kāi)始使用授權表。)
--skip-name-resolve
主機名不被(bèi)解析。所有在授權表的Host的列值必須是IP号或localhost。
--skip-networking
在網絡上不允許TCP/IP連接。所有到mysqld的連接必須經(jīng)由Unix套接字進(jìn)行。
--skip-show-database
使用該選項,隻允許有SHOW DATABASES權限的用戶執行SHOW DATABASES語句,該語句顯示所有數據庫名。不使用該選項,允許所有用戶執行SHOW DATABASES,但隻顯示用戶有SHOW DATABASES權限或部分數據庫權限的數據庫名。請注意全局權限指數據庫的權限。