MySQLの権限設定

 権限を除去する REVOKE って初めて使ったわ。今まで GRANT しか使った事なかった\(^o^)/

 GRANT でユーザに権限与えるのは下みたいな感じ。これだと全部の権限を与える。

mysql > grant all on db.* to 'user'@'localhost' identified by 'password';

 REVOKE はこれと逆に、権限を奪うもので、以下のような感じにすると全部の権限を奪える。

mysql > revoke all on db.* from 'user'@'localhost';

あとは、全部じゃなくて操作を指定したりDB,Table を指定すれば良い感じ。MySQLの公式サイトによると、こんな感じの操作を制御出来る。

ALL [PRIVILEGES]
WITH GRANT OPTION 以外のすべての権限を設定
ALTER
ALTER TABLE の使用を許可
CREATE
CREATE TABLE の使用を許可
CREATE
TEMPORARY TABLES CREATE TEMPORARY TABLE の使用を許可
DELETE
DELETE の使用を許可
DROP
DROP TABLE の使用を許可
EXECUTE
ストアドプロシージャの使用を許可(MySQL 5.0)
FILE
SELECT … INTO OUTFILE および LOAD DATA INFILE の使用を許可
INDEX
CREATE INDEX および DROP INDEX の使用を許可
INSERT
INSERT の使用を許可
LOCK TABLES
SELECT 権限を持つテーブルで LOCK TABLES の使用を許可
PROCESS
SHOW FULL PROCESSLIST の使用を許可
REFERENCES
将来のために予約
RELOAD
FLUSH の使用を許可
REPLICATION CLIENT
スレーブおよびマスタのサーバーを知る権利を付与
REPLICATION SLAVE
レプリケーションのスレーブに必要(マスタからバイナリログを読み取るため)
SELECT
SELECT の使用を許可
SHOW DATABASES
SHOW DATABASES によりすべてのデータベースが表示される
SHUTDOWN
mysqladmin shutdown の使用を許可
SUPER
最大接続数に達していても接続を 1 つだけ許可し、コマンド CHANGE MASTER、KILL thread、mysqladmin debug、PURGE MASTER LOGS、および SET GLOBAL の実行を許可
UPDATE
UPDATE の使用を許可
MySQLの権限設定