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 PROXY ON user
FROM user [, user] ...
REVOKE
ステートメントを使用すると、システム管理者は MySQL アカウントから権限を取り消すことができます。各アカウント名には、セクション6.2.3「アカウント名の指定」で説明されている形式が使用されます。例:
REVOKE INSERT ON *.* FROM 'jeffrey'@'localhost';
アカウント名のユーザー名の部分のみを指定した場合は、'%'
のホスト名の部分が使用されます。
各権限が存在するレベル、priv_type
と priv_level
の許可される値、およびユーザーとパスワードを指定するための構文の詳細は、セクション13.7.1.4「GRANT 構文」を参照してください。
最初の REVOKE
構文を使用するには、GRANT OPTION
権限が必要であり、かつ取り消そうとしている権限を持っている必要があります。
すべての権限を取り消すには、2 番目の構文を使用します。これにより、指定された 1 人または複数のユーザーのすべてのグローバル、データベース、テーブル、カラム、およびルーチン権限が削除されます。
REVOKE ALL PRIVILEGES, GRANT OPTION FROM user [, user] ...
この REVOKE
構文を使用するには、mysql
データベースに対するグローバルな CREATE USER
権限または UPDATE
権限が必要です。
REVOKE
は権限を削除しますが、mysql.user
テーブルエントリは削除しません。ユーザーアカウントを完全に削除するには、DROP USER
(セクション13.7.1.3「DROP USER 構文」を参照してください) または DELETE
を使用します。
付与テーブルに、大文字と小文字が混在したデータベースまたはテーブル名を含む権限行が保持されており、かつ lower_case_table_names
システム変数が 0 以外の値に設定されている場合は、REVOKE
を使用してこれらの権限を取り消すことはできません。付与テーブルを直接操作することが必要になります。(lower_case_table_names
が設定されているとき、GRANT
はこのような行を作成しませんが、その変数が設定される前にこのような行が作成されていた可能性があります。)
mysql プログラムから正常に実行された場合、REVOKE
は Query OK, 0 rows affected
で応答します。この操作によってどのような権限が付与されたかを判定するには、SHOW GRANTS
を使用します。セクション13.7.5.22「SHOW GRANTS 構文」を参照してください。