MySQL中的secure file是一種保護(hù)性措施,可以防止惡意用戶通過文件讀寫操作來訪問數(shù)據(jù)庫的內(nèi)部數(shù)據(jù)。secure file一般用于限制用戶在MySQL服務(wù)器文件系統(tǒng)中的文件訪問范圍,以及對文件訪問權(quán)限進(jìn)行細(xì)粒度控制。
MySQL中secure file的配置方式如下: set global local_infile=0; # 關(guān)閉本地文件讀取(默認(rèn)開啟) set global secure_file_priv='/tmp/'; #限制文件訪問權(quán)限,只允許/tmp目錄下的文件進(jìn)行讀寫操作 mysql>select load_file('/etc/passwd'); #沒有權(quán)限 ERROR 1290 (HY000): The MySQL server is running with the --secure-file-priv option so it cannot execute this statement mysql>select load_file('/tmp/test.txt'); #有權(quán)限 hello world
通過將secure_file_priv設(shè)置為/tmp/,只有指定位置下的文件才能被MySQL實(shí)例讀取,可以有效保護(hù)MySQL的安全性,避免惡意文件操作對數(shù)據(jù)庫的破壞。