メインコンテンツまでスキップ
メインコンテンツまでスキップ

REVOKEステートメント

ユーザーまたはロールから権限を取り消します。

構文

ユーザーからの権限の取り消し

REVOKE [ON CLUSTER cluster_name] privilege[(column_name [,...])] [,...] ON {db.table|db.*|*.*|table|*} FROM {user | CURRENT_USER} [,...] | ALL | ALL EXCEPT {user | CURRENT_USER} [,...]

ユーザーからのロールの取り消し

REVOKE [ON CLUSTER cluster_name] [ADMIN OPTION FOR] role [,...] FROM {user | role | CURRENT_USER} [,...] | ALL | ALL EXCEPT {user_name | role_name | CURRENT_USER} [,...]

説明

いくつかの権限を取り消すには、取り消そうとする権限よりも広い範囲の権限を使用できます。たとえば、ユーザーが SELECT (x,y) 権限を持っている場合、管理者は REVOKE SELECT(x,y) ...、または REVOKE SELECT * ...、さらには REVOKE ALL PRIVILEGES ... クエリを実行してこの権限を取り消すことができます。

部分的な取り消し

権限の一部を取り消すことができます。たとえば、ユーザーが SELECT *.* 権限を持っている場合、その権限から特定のテーブルまたはデータベースのデータを読み取る権限を取り消すことができます。

johnユーザーアカウントに accounts データベース以外のすべてのデータベースから選択する権限を付与します。

GRANT SELECT ON *.* TO john;
REVOKE SELECT ON accounts.* FROM john;

miraユーザーアカウントに accounts.staff テーブルのすべてのカラムから選択する権限を付与しますが、wage カラムは除外します。

GRANT SELECT ON accounts.staff TO mira;
REVOKE SELECT(wage) ON accounts.staff FROM mira;

元の記事