FILE
LOAD DATA/INFILE/INTO OUTFILE タイプの操作に関連するユーザー権限:
「FILE 権限により、LOAD DATA INFILE および SELECT ... INTO OUTFILE ステートメントと LOAD_FILE() 関数を使用して、サーバー ホスト上のファイルを読み書きする権限が与えられます。FILE 権限を持つユーザーは、サーバー上の任意のファイルを読み取ることができます。誰でも読み取り可能であるか、MySQL サーバーによって読み取り可能であるホスト....
REVOKE を使用して、mysql CLI から FILE privs を制御します。
#change to mysql system db
use mysql;
#use the REVOKE (opposite of GRANT) to disable any FILE operations
#in all dbs for the specific user/host. use % to block all hosts.
REVOKE FILE on *.* FROM 'specificuser'@'specifichostname';
または、問題が発生した場合は、特定のデータベースおよびその中の特定のテーブルに対する FILE 操作を選択的に GRANT することができます。
さらに、完全に無効にしない場合は、/tmp などのディレクトリを使用できるように制御をさらに調整し、sysvar_secure_file_priv
システム変数を使用してデータファイルのトラバーサルを制限することができます。
これらに固有の詳細については、マニュアルを参照してください:
FILE 特権
REVOKE 構文
システム変数: secure_file_priv
この質問は、「すべてを拒否し、特に必要に応じて許可する」という考え方からセキュリティを考えるのが最善であるという良い例です。最初にユーザーALL
権限を付与してから選択的に取り消すのではなく、mysql の GRANT/REVOKE システムに慣れていないためによく見かけます。