REVOKE
特定のデータベースオブジェクトに対する権限、ロール、および所有権を取り消します。これには以下が含まれます。
- ロールから権限を取り消す。
- ユーザーまたは他のロールからロールを削除する。
関連情報:
構文
権限の取り消し
REVOKE {
schemaObjectPrivileges | ALL [ PRIVILEGES ] ON <privileges_level>
}
FROM ROLE <role_name>
以下のとおりです。
schemaObjectPrivileges ::=
-- For TABLE
{ SELECT | INSERT }
-- For SCHEMA
{ CREATE | DROP | ALTER }
-- For USER
{ CREATE USER }
-- For ROLE
{ CREATE ROLE}
-- For STAGE
{ READ, WRITE }
-- For UDF
{ USAGE }
-- For MASKING POLICY (account-level privileges)
{ CREATE MASKING POLICY | APPLY MASKING POLICY }
-- For ROW ACCESS POLICY (account-level privileges)
{ CREATE ROW ACCESS POLICY | APPLY ROW ACCESS POLICY }
privileges_level ::=
*.*
| db_name.*
| db_name.tbl_name
| STAGE <stage_name>
| UDF <udf_name>
| MASKING POLICY <policy_name>
| ROW ACCESS POLICY <policy_name>
マスキングポリシー権限の取り消し
REVOKE APPLY ON MASKING POLICY <policy_name> FROM ROLE <role_name>
REVOKE ALL [ PRIVILEGES ] ON MASKING POLICY <policy_name> FROM ROLE <role_name>
REVOKE OWNERSHIP ON MASKING POLICY <policy_name> FROM ROLE '<role_name>'
これらの形式を使用すると、個別のマスキングポリシーへのアクセスを削除できます。グローバルな CREATE MASKING POLICY および APPLY MASKING POLICY 権限は、ON *.* を使用した標準構文で取り消します。
行アクセスポリシー権限の取り消し
REVOKE APPLY ON ROW ACCESS POLICY <policy_name> FROM ROLE <role_name>
REVOKE ALL [ PRIVILEGES ] ON ROW ACCESS POLICY <policy_name> FROM ROLE <role_name>
REVOKE OWNERSHIP ON ROW ACCESS POLICY <policy_name> FROM ROLE '<role_name>'
これらの形式を使用すると、特定の行アクセスポリシーへのアクセスを取り消せます。グローバルな CREATE ROW ACCESS POLICY および APPLY ROW ACCESS POLICY 権限は、ON *.* に対する標準構文で取り消します。
ロールの取り消し
-- Revoke a role from a user
REVOKE ROLE <role_name> FROM <user_name>
-- Revoke a role from a role
REVOKE ROLE <role_name> FROM ROLE <role_name>
例
例 1: ロールから権限を取り消す
ロールを作成します。
CREATE ROLE user1_role;
default データベース内の既存のすべてのテーブルに対する SELECT,INSERT 権限を、ロール user1_role に付与します。
GRANT SELECT,INSERT ON default.* TO ROLE user1_role;
SHOW GRANTS FOR ROLE user1_role;
+---------------------------------------------------------+
| Grants |
+---------------------------------------------------------+
| GRANT SELECT,INSERT ON 'default'.* TO ROLE 'user1_role' |
+---------------------------------------------------------+
ロール user1_role から INSERT 権限を取り消します。
REVOKE INSERT ON default.* FROM ROLE user1_role;
SHOW GRANTS FOR ROLE user1_role;
+---------------------------------------------------+
| Grants |
+---------------------------------------------------+
| GRANT SELECT ON 'default'.* TO 'user1_role' |
+---------------------------------------------------+
例 2: 別のロールから権限を取り消す
mydb データベース内の既存のすべてのテーブルに対する SELECT,INSERT 権限を、ロール role1 に付与します。
ロールを作成します。
CREATE ROLE role1;
ロールに権限を付与します。
GRANT SELECT,INSERT ON mydb.* TO ROLE role1;
ロールの付与内容を表示します。
SHOW GRANTS FOR ROLE role1;
+--------------------------------------------+
| Grants |
+--------------------------------------------+
| GRANT SELECT,INSERT ON 'mydb'.* TO 'role1' |
+--------------------------------------------+
ロール role1 から INSERT 権限を取り消します。
REVOKE INSERT ON mydb.* FROM ROLE role1;
SHOW GRANTS FOR ROLE role1;
+-------------------------------------+
| Grants |
+-------------------------------------+
| GRANT SELECT ON 'mydb'.* TO 'role1' |
+-------------------------------------+
例 3: ユーザーからロールを取り消す
REVOKE ROLE role1 FROM USER user1;
SHOW GRANTS FOR user1;
例 4: マスキングポリシー権限を取り消す
-- Remove per-policy access from a role
REVOKE APPLY ON MASKING POLICY email_mask FROM ROLE pii_readers;
-- Revoke the ability to create masking policies at the account level
REVOKE CREATE MASKING POLICY ON *.* FROM ROLE security_admin;
例 5: 行アクセスポリシー権限を取り消す
-- Remove per-policy access from a role
REVOKE APPLY ON ROW ACCESS POLICY rap_region FROM ROLE apac_only;
-- Revoke the ability to create row access policies globally
REVOKE CREATE ROW ACCESS POLICY ON *.* FROM ROLE row_policy_admin;