GRANT構文について
GRANT priv_type [(column_list)] [, priv_type [(column_list)] ...]
ON {テーブル名 | * | *.* | データベース名.*}
TO ユーザID [IDENTIFIED BY 'パスワード']
[, ユーザID [IDENTIFIED BY 'パスワード'] ...]
[REQUIRE
[{SSL| X509}]
[CIPHER cipher [AND]]
[ISSUER issuer [AND]]
[SUBJECT subject]
]
[WITH GRANT OPTION]
GRANT構文のpriv_typeには、次のようなものがあります。
GRANT構文のpriv_typeについて
| ALL [PRIVILEGES] | すべての権限。(ALLと同義語) |
| ALTER | ALTER TABLE構文が実行できる権限。 |
| CREATE | データベースとテーブルの作成が行える権限。 |
| DROP | データベースとテーブルの削除が行える権限。 |
| FILE | LOAD DATA構文とSELECT 〜 INTO OUTFILE構文を実行できる権限。 |
| PROCESS | mysqladminコマンドのprocesslistとkill命令を実行できる権限。 |
| RELOAD | mysqladminコマンドのreload、refresh、flush-privileges、 flush-hosts、flush-logs、flush-tables命令を実行できる権限。 |
| SHUTDOWN | mysqladminコマンドのshutdown命令を実行できる権限。 |
| DELETE | DELETE構文を実行できる権限。 |
| INSERT | INSERT構文を実行できる権限。 |
| SELECT | SELECT構文を実行できる権限。 |
| UPDATE | UPDATE構文を実行できる権限。 |
| INDEX | インデックスの作成と削除が行える権限。 |
| REFERENCES | テーブルのリファレンスが参照できる権限。 |
| USAGE | すべての権限がない。("no privileges"と同義) |
上から8つは通常のデータ操作以上の権限を与えるので、十分な検討が必要です。
WITH GRANT OPTIONは、作成したユーザーにGRANT構文の実行権限を与えます。 ただし、自分自身が持っていない権限を与えることはできません。
GRANT ALL ON データベース名.* TO ユーザー名@localhost IDENTIFIED BY 'パスワード';
GRANT ALL ON データベース名.* TO ユーザー名@"%" IDENTIFIED BY 'パスワード';
GRANT SELECT,INSERT,UPDATE,DELETE ON データベース名.* TO ユーザー名@localhost
IDENTIFIED BY 'パスワード';