【MySQL】ユーザに権限を付与・取消するSQL

ここではMySQLで、ユーザに権限を付与・取消するSQLを紹介しています。

ユーザに付与された権限のを確認する方法は↓で紹介しています。
>>【MySQL】ユーザーの権限一覧を確認するSQL
>>【MySQL】ユーザに設定できる権限と権限レベルの一覧

ユーザに権限を付与する基本構文

ユーザにシステム権限を付与するときはGRANT文を使います。

GRANT文では、システム権限名とユーザ名を指定します。

GRANT 権限タイプ1[,権限タイプ2・・・] ON 権限レベル TO ユーザ名;

GRANT文を使ったSQLサンプル

ここからはGRANT文を使ったSQLサンプルを紹介します。

権限を1つ付与する方法

GRANT文を使ってシステム権限を1つ付与する方法です。

次のSQLでは、USER1にdb1データベースの全ての表への参照権限を付与しています。さらにtb1表への挿入権限を付与しています。

GRANT SELECT ON db1.* TO user1;
GRANT INSERT ON db.tb1 TO user1;

同時に複数の権限を付与する方法

次のSQLでは、USER1にtb1表への更新権限と削除権限を同時に付与しています。

GRANT UPDATE,DELETE ON db.tb1 TO user1;

全権限を付与する方法

全権限を付与する場合は、ALLキーワードを使います。

--tb1テーブルの全権限を付与
GRANT ALL ON db1.tb1 TO user1;

--db1データベースの全権限を付与
GRANT ALL ON db1.* TO user1;

--全データベースの全権限を付与
GRANT ALL ON *.* TO user1;

ユーザの権限を取消する基本構文

ユーザの権限を取消(削除)するときはREVOKE文を使います。

REVOKE文では、取り消したい権限名とユーザ名を指定します。

GRANT 権限名 FROM ユーザ名;

REVOKE文を使ったSQLサンプル

ここからはREVOKE文を使ったSQLサンプルを紹介します。

権限を1つ取り消す方法

REVOKE SELECT ON db1.* FROM user1;
REVOKE INSERT ON db.tb1 FROM user1;

権限を複数同時に取り消す方法

REVOKE UPDATE,DELETE ON db.tb1 FROM user1;

全ての権限を取り消す方法

--tb1テーブルの全権限を削除
REVOKE ALL ON db1.tb1 FROM user1;

--db1データベースの全権限を削除
REVOKE ALL ON db1.* FROM user1;

--全データベースの全権限を削除
REVOKE ALL ON *.* FROM user1;