自分が持っている特権を確認するには、を使用しますshow grants
。
ここで、条件を満たしているかどうかを確認するために使用できるいくつかの追加コマンドを文書化しました。
http://pastebin.com/Dvsdxh9Y
ドキュメントに作成する補遺。確実に:
- 親ディレクトリに実行権限があります
- FILE特権は明示的に付与する必要があります。(.TO user @ localhostのファイルを付与します)
- 特権をフラッシュしました
- ログアウトして再度ログインしました
親ディレクトリの権限の例:
mysql> \!ls -ld `dirname /home/jlam/code/projectName/doc/filesForTesting/images/imageTest01.jpg`
drwxrwxr--。2 jlam jlam 4096 May 12 14:22 / home / jlam / code / projectName / doc / filesForTesting / images
mysql> select hex(LOAD_FILE('/ home / jlam / code / projectName / doc / filesForTesting / images / image
Test01.jpg'));
+ ------------------------------------------------- -------------------------------------------------- ---------- +
| hex(LOAD_FILE('/ home / jlam / code / projectName / doc / filesForTesting / images / imageTest01.jpg'))|
+ ------------------------------------------------- -------------------------------------------------- ---------- +
| NULL |
+ ------------------------------------------------- -------------------------------------------------- ---------- +
セットの1行(0.00秒)
mysql> \!chmod o + x / home / jlam / code / projectName / doc / filesForTesting / images
mysql> \!ls -ld `dirname /home/jlam/code/projectName/doc/filesForTesting/images/imageTest01.jpg`
drwxrwxr-x。2 jlam jlam 4096 May 12 14:22 / home / jlam / code / projectName / doc / filesForTesting / images
mysql> select hex(LOAD_FILE('/ home / jlam / code / projectName / doc / filesForTesting / images / imageTest01.jpg'));
+ ------------------------------------------------- -------------------------------------------------- -------------------------------------------------- -------------------------------------------------- -------------------------------------
| hex(LOAD_FILE('/ home / jlam / code / projectName / doc / filesForTesting / images / imageTest01.jpg'))
+ ------------------------------------------------- -------------------------------------------------- -------------------------------------------------- -------------------------------------------------- -------------------------------------
| FFD8FFE1001845786966000049492A00080000000000000000000000FFEC00114475636B7900010004000000500000FFE10407687474703A2F2F6E732E61646F62652E636F6D2F7861702F312E302F003C3F787061636B657420626567696E3D22EFBBBF222069643D2
+ ------------------------------------------------- -------------------------------------------------- -------------------------------------------------- -------------------------------------------------- -------------------------------------
ユーザー権限の例:
16:38:09(getImages)〜/ code / projectName / doc / filesForTesting / images $ mysql -u eventCal -p eventCal
パスワードを入力する:
mysql> show grants;
+ ------------------------------------------------- -------------------------------------------------- -------------- +
| eventCal@localhostの助成金|
+ ------------------------------------------------- -------------------------------------------------- -------------- +
| パスワードによって識別される'eventCal'@'localhost'への*。*の使用を許可する'*xxxxx' |
| `tmp`。*のすべての特権を'eventCal'@'localhost'に付与する|
| `eventCalTesting`。*のすべての特権を'eventCal'@'localhost'に付与します|
| `eventCal`。*のすべての特権を'eventCal'@'localhost'に付与します|
| `eventCal_categoryMigration`。*のすべての特権を'eventCal'@'localhost'に付与します|
+ ------------------------------------------------- -------------------------------------------------- -------------- +
セット内の5行(0.00秒)
mysql> select hex(LOAD_FILE('/ home / jlam / code / projectName / doc / filesForTesting / images / imageTest01.jpg'));
+ ------------------------------------------------- -------------------------------------------------- ---------- +
| hex(LOAD_FILE('/ home / jlam / code / projectName / doc / filesForTesting / images / imageTest01.jpg'))|
+ ------------------------------------------------- -------------------------------------------------- ---------- +
| NULL |
+ ------------------------------------------------- -------------------------------------------------- ---------- +
セットの1行(0.00秒)
他のルートセッション:
mysql>ファイルON*。*をeventCal@localhostに付与します。
クエリOK、影響を受けた0行(0.00秒)
mysql>フラッシュ特権;
クエリOK、影響を受けた0行(0.00秒)
ユーザーセッションに戻りましたが、まだファイルを読み込めません
mysql> select hex(LOAD_FILE('/ home / jlam / code / projectName / doc / filesForTesting / images / imageTest01.jpg'));
+ ------------------------------------------------- -------------------------------------------------- ---------- +
| hex(LOAD_FILE('/ home / jlam / code / projectName / doc / filesForTesting / images / imageTest01.jpg'))|
+ ------------------------------------------------- -------------------------------------------------- ---------- +
| NULL |
+ ------------------------------------------------- -------------------------------------------------- ---------- +
セットの1行(0.00秒)
.....しかし、ログアウトして再度ログインした場合:
mysql> exit
さよなら
16:40:14(getImages)〜/ code / projectName / doc / filesForTesting / images $ mysql -u eventCal -p eventCal
パスワードを入力する:
mysql> select hex(LOAD_FILE('/ home / jlam / code / projectName / doc / filesForTesting / images / imageTest01.jpg'));
+ ------------------------------------------------- -------------------------------------------------- -------------------------------------------------- -------------------------------------------------- -------------------------------------
| hex(LOAD_FILE('/ home / jlam / code / projectName / doc / filesForTesting / images / imageTest01.jpg'))
+ ------------------------------------------------- -------------------------------------------------- -------------------------------------------------- -------------------------------------------------- -------------------------------------
| FFD8FFE1001845786966000049492A00080000000000000000000000FFEC00114475636B7900010004000000500000FFE10407687474703A2F2F6E732E61646F62652E636F6D2F7861702F312E302F003C3F787061636B657420626567696E3D22EFBBBF222069643D2
+ ------------------------------------------------- -------------------------------------------------- -------------------------------------------------- -------------------------------------------------- -------------------------------------