ユーザーから権限を削除する(REVOKE文)
ユーザーに設定した権限は REVOKE 文を使用することであとから削除することができます。ここでは MariaDB で作成したユーザーから権限を削除する方法について解説します。
(Last modified: )
ユーザーから特定の権限を削除する
作成済みのユーザーから権限を削除するには REVOKE 文を使います。書式は次の通りです。
REVOKE priv_type [(column_list)] [, priv_type [(column_list)]] ... ON [object_type] priv_level FROM user [, user] ... REVOKE ALL PRIVILEGES, GRANT OPTION FROM user [, user] ...
ユーザーから特定の権限を削除する場合は次の書式を使用します。
REVOKE priv_type [(column_list)] [, priv_type [(column_list)]] ... ON priv_level FROM user
ユーザー( user )に対して指定のレベル( priv_level )で設定された指定の種類の権限( priv_type )を削除します。複数の権限をまとめて削除する場合はカンマ(,)で区切って続けて記述します。
では実際に試してみます。新しいユーザーを作成し、データベースレベルで CREATE 権限と SELECT 権限を設定します。次のように実行してください。
create user neko@localhost identified by 'cat';
grant create, select on mydb.* to neko@localhost;
ユーザーの作成が成功し、作成済みのデータベース mydb を対象としたデータベースレベルの CREATE 権限と SELECT 権限が設定されました。(ユーザーに権限を設定する方法については「ユーザーに権限を設定する(GRANT文)」を参照されてください)。
それでは設定した権限を確認してみます。
show grants for neko@localhost;
対象のユーザーにデータベースレベルで CREATE 権限と SELECT 権限が設定されていることが確認できました。
ではこのユーザーからデータベースレベルで CREATE 権限を削除します。次のように実行してください。
revoke create on mydb.* from neko@localhost;
対象のユーザーから、 mydb データベースを対象としたデータベースレベルの CREATE 権限を削除しました。
それでは改めてユーザーに設定されている権限を確認してみます。
データベースレベルの CREATE 権限が削除されていることが確認できました。
ユーザーからすべての権限を削除する
ユーザーに設定されているすべての権限を削除するには次の書式を使用します。
REVOKE ALL PRIVILEGES, GRANT OPTION FROM user
ユーザー( user )に対して設定されているすべての権限を削除します。
では実際に試してみます。新しいユーザーを作成し、グローバルレベルで CREATE 権限と UPDATE 権限を設定します。次のように実行してください。
create user inu@localhost identified by 'dog';
grant create, update on *.* to inu@localhost;
ユーザーの作成が成功し、グローバルレベルの CREATE 権限と UPDATE 権限が設定されました。
それでは設定した権限を確認してみます。
show grants for inu@localhost;
対象のユーザーにグローバルレベルで CREATE 権限と UPDATE 権限が設定されていることが確認できました。
ではこのユーザーからすべての権限を削除します。次のように実行してください。
revoke all privileges, grant option from inu@localhost;
対象のユーザーからすべての権限を削除しました。
それでは改めてユーザーに設定されている権限を確認してみます。
すべての権限が削除されていることが確認できました。
-- --
MariaDB で作成したユーザーから権限を削除する方法について解説しました。
( Written by Tatsuo Ikura )
著者 / TATSUO IKURA
これから IT 関連の知識を学ばれる方を対象に、色々な言語でのプログラミング方法や関連する技術、開発環境構築などに関する解説サイトを運営しています。