REVOKE <権限> ... FROM USER¶
セキュリティ保護可能なオブジェクトの1つ以上の権限をユーザーから削除します。取り消すことができる権限はオブジェクト固有です。
こちらもご参照ください。
構文¶
REVOKE [ GRANT OPTION FOR ]
{
{ globalPrivileges | ALL [ PRIVILEGES ] } ON ACCOUNT
| { accountObjectPrivileges | ALL [ PRIVILEGES ] } ON { RESOURCE MONITOR | WAREHOUSE | COMPUTE POOL | DATABASE | INTEGRATION | CONNECTION | FAILOVER GROUP | REPLICATION GROUP | EXTERNAL VOLUME } <object_name>
| { schemaPrivileges | ALL [ PRIVILEGES ] } ON { SCHEMA <schema_name> | ALL SCHEMAS IN DATABASE <db_name> }
| { schemaObjectPrivileges | ALL [ PRIVILEGES ] } ON { <object_type> <object_name> | ALL <object_type_plural> IN SCHEMA <schema_name> }
}
FROM [ USER ] <user_name> [ RESTRICT | CASCADE ]
条件:
globalPrivileges ::=
{
| ATTACH POLICY | AUDIT | BIND SERVICE ENDPOINT
| APPLY {
{ AGGREGATION | AUTHENTICATION | JOIN | MASKING | PACKAGES | PASSWORD
| PROJECTION | ROW ACCESS | SESSION } POLICY
| TAG }
| EXECUTE { ALERT | DATA METRIC FUNCTION | MANAGED ALERT | MANAGED TASK | TASK }
| IMPORT SHARE
| MANAGE { ACCOUNT SUPPORT CASES | EVENT SHARING | GRANTS | LISTING AUTO FULFILLMENT | ORGANIZATION SUPPORT CASES | USER SUPPORT CASES | WAREHOUSES }
| MODIFY { LOG LEVEL | TRACE LEVEL | SESSION LOG LEVEL | SESSION TRACE LEVEL }
| MONITOR { EXECUTION | SECURITY | USAGE }
| OVERRIDE SHARE RESTRICTIONS | PURCHASE DATA EXCHANGE LISTING | RESOLVE ALL
| READ SESSION
}
[ , ... ]
accountObjectPrivileges ::=
-- For COMPUTE POOL
{ MODIFY | MONITOR | OPERATE | USAGE } [ , ... ]
-- For CONNECTION
{ FAILOVER } [ , ... ]
-- For DATABASE
{ APPLYBUDGET
| IMPORTED PRIVILEGES | MODIFY | MONITOR | USAGE } [ , ... ]
-- For EXTERNAL VOLUME
{ USAGE } [ , ... ]
-- For FAILOVER GROUP
{ FAILOVER | MODIFY | MONITOR | REPLICATE } [ , ... ]
-- For INTEGRATION
{ USAGE | USE_ANY_ROLE } [ , ... ]
-- For REPLICATION GROUP
{ MODIFY | MONITOR | REPLICATE } [ , ... ]
-- For RESOURCE MONITOR
{ MODIFY | MONITOR } [ , ... ]
-- For USER
{ MONITOR } [ , ... ]
-- For WAREHOUSE
{ APPLYBUDGET | MODIFY | MONITOR | USAGE | OPERATE } [ , ... ]
schemaPrivileges ::=
ADD SEARCH OPTIMIZATION | APPLYBUDGET
| MODIFY | MONITOR | USAGE
[ , ... ]
schemaObjectPrivileges ::=
-- For ALERT
{ MONITOR | OPERATE } [ , ... ]
-- For DATA METRIC FUNCTION
USAGE [ , ... ]
-- For DYNAMIC TABLE
MONITOR, OPERATE, SELECT [ , ...]
-- For EVENT TABLE
{ APPLYBUDGET | DELETE | REFERENCES | SELECT | TRUNCATE } [ , ... ]
-- For FILE FORMAT, FUNCTION (UDF or external function), MODEL, PROCEDURE, SECRET, SEQUENCE, or SNAPSHOT
USAGE [ , ... ]
-- For GIT REPOSITORY
{ READ, WRITE } [ , ... ]
-- For HYBRID TABLE
{ APPLYBUDGET | DELETE | INSERT | REFERENCES | SELECT | TRUNCATE | UPDATE } [ , ... ]
-- For IMAGE REPOSITORY
{ READ, WRITE } [ , ... ]
-- For ICEBERG TABLE
{ APPLYBUDGET | DELETE | INSERT | REFERENCES | SELECT | TRUNCATE | UPDATE } [ , ... ]
-- For MATERIALIZED VIEW
{ APPLYBUDGET | REFERENCES | SELECT } [ , ... ]
-- For PIPE
{ APPLYBUDGET | MONITOR | OPERATE } [ , ... ]
-- For { AGGREGATION | AUTHENTICATION | MASKING | JOIN | PACKAGES | PASSWORD | PRIVACY | PROJECTION | ROW ACCESS | SESSION } POLICY or TAG
APPLY [ , ... ]
-- For SECRET
{ READ | USAGE } [ , ... ]
-- For SEMANTIC VIEW
REFERENCES [ , ... ]
-- For SERVICE
{ MONITOR | OPERATE } [ , ... ]
-- For external STAGE
USAGE [ , ... ]
-- For internal STAGE
READ [ , WRITE ] [ , ... ]
-- For STREAM
SELECT [ , ... ]
-- For STREAMLIT
USAGE [ , ... ]
-- For TABLE
{ APPLYBUDGET | DELETE | EVOLVE SCHEMA | INSERT | REFERENCES | SELECT | TRUNCATE | UPDATE } [ , ... ]
-- For TAG
READ
-- For TASK
{ APPLYBUDGET | MONITOR | OPERATE } [ , ... ]
-- For VIEW
{ REFERENCES | SELECT } [ , ... ]
各オブジェクトタイプでサポートされている権限の詳細については、 アクセス制御権限 をご参照ください。
必須パラメーター¶
object_name
権限が取り消されるオブジェクトの識別子を指定します。
object_type
スキーマレベルオブジェクトの型を指定します。
AGGREGATION POLICY
ALERT
AUTHENTICATION POLICY
CORTEX SEARCH SERVICE
DATA METRIC FUNCTION
DATASET
DYNAMIC TABLE
EVENT TABLE
EXTERNAL TABLE
FILE FORMAT
FUNCTION
GIT REPOSITORY
IMAGE REPOSITORY
ICEBERG TABLE
JOIN POLICY
MASKING POLICY
MATERIALIZED VIEW
MODEL
MODEL MONITOR
NETWORK RULE
NOTEBOOK
PACKAGES POLICY
PASSWORD POLICY
PIPE
PRIVACY POLICY
PROCEDURE
PROJECTION POLICY
ROW ACCESS POLICY
SECRET
SEMANTIC VIEW
SERVICE
SESSION POLICY
SEQUENCE
SNAPSHOT
STAGE
STREAM
STREAMLIT
TABLE
TAG
TASK
VIEW
object_type_plural
object_type
の複数形(例:TABLES
、VIEWS
)。user_name
受信者ユーザー(権限を取り消すユーザー)の識別子を指定します。
オプションのパラメーター¶
GRANT OPTION FOR
指定した場合、受信者ユーザーが別のロールに権限を付与する機能を削除します。
デフォルト: 値なし
RESTRICT | CASCADE
指定した場合、権限が別のロールまたはユーザーに再付与されたかどうかに基づいて、権限の取り消し操作が成功するか失敗するかを決定します。
RESTRICT
: 取り消す権限が別のロールまたはユーザーに再割り当てされている場合、 REVOKE コマンドは失敗します。CASCADE
:取り消される権限が再度付与された場合、 REVOKE コマンドはこれらの依存する付与を再帰的に取り消します。オブジェクトに対する同じ権限が別の付与者によってターゲットユーザーに付与されている場合(並列付与)、その付与は影響を受けず、ターゲットユーザーはその権限を保持します。
デフォルト:
RESTRICT
使用上の注意¶
どのクラスに対しても、権限を直接付与したり、取り消したりすることはできません。
権限は、異なる付与者によってユーザーに複数回付与できます。
REVOKE privilege
ステートメントは、ユーザーが付与者である付与のみを取り消します。他の付与者による指定された権限の追加の付与は無視されます。また、
REVOKE privilege
ステートメントは、権限が取り消されていなくても成功することに注意してください。REVOKE privilege
は、指定された権限に依存関係があり、 CASCADE 句がステートメントから省略されている場合にのみエラーを返します。単一の GRANT ステートメントで同じオブジェクトタイプに複数の権限を指定できます(各権限をコンマで区切る)か、特別な
ALL [ PRIVILEGES ]
キーワードを使用して、指定したオブジェクトタイプにすべての適用可能な権限を付与できます。ただし、 GRANT コマンドを実行するロールまたはユーザーによって保持され、付与可能な権限のみが、ターゲットユーザーに実際に付与されることに注意してください。付与できなかった権限については、警告メッセージが返されます。タグに
ALL [ PRIVILEGES ]
キーワードを指定することはできません。
ステージの場合:
USAGE 外部ステージにのみ適用されます。
READ | WRITE は内部ステージにのみ適用されます。さらに、内部ステージで WRITE 権限を付与するには、まずステージで READ 権限を付与する必要があります。
外部ステージと内部ステージの詳細情報については、 CREATE STAGE をご参照ください。
ストレージ統合の場合、
ストレージ統合に依存する外部ステージを使用して以下のコマンドを実行するには、ストレージ統合の USAGE 権限をユーザーに直接付与するか、その権限を持つか継承したロールを使用する必要があります。
ユーザーから USAGE 権限を取り消すと、そのユーザーはこれらのコマンドを実行できなくなります。詳細については、 ステージ権限 をご参照ください。
ストレージ統合の USAGE 権限を取り消ししても、ユーザーがストレージ統合に関連する外部テーブルをクエリすることはブロック されません。外部テーブルへのクエリには、その基になるストレージ統合に対する USAGE 権限は必要 ありません。
アクセス制御の要件¶
- 個々のオブジェクトに対する権限の取り消し:
アクティブなロール または以下のいずれかの条件を満たすユーザー、あるいは より上位のロール を使用して、ユーザーからオブジェクトの権限を取り消すことができます。
ロールまたはユーザーは、 SHOW GRANTS 出力の GRANTED_BY 列で権限の 付与者 として識別されます。
指定されたオブジェクトに対して権限の複数のインスタンスが付与されている場合は、アクティブな付与者ロールによって付与されたインスタンスのみが取り消されます。
ロールまたはユーザーはグローバル MANAGE GRANTS 権限を持っています。
指定されたオブジェクトに対して権限の複数のインスタンスが付与されている場合は、 すべて のインスタンスが取り消されます。
SECURITYADMIN 以上のシステムロールのみがデフォルトで MANAGE GRANTS 権限を持っていることに注意してください。ただし、この権限はカスタムロールに付与できます。
管理アクセススキーマ (
CREATE SCHEMA ... WITH MANAGED ACCESS
を使用して作成されたスキーマ)構文では、スキーマ所有者(スキーマの OWNERSHIP 権限を持つロール)、グローバル MANAGE GRANTS 権限を持つロールまたはユーザー、またはそれより上位のロールのみが、スキーマ内のオブジェクトに対する権限を取り消すことができます。
例¶
Streamlitアプリケーションの USAGE 権限を特定のユーザーから取り消すには、 joe
。
REVOKE USAGE ON STREAMLIT streamlit_db.streamlit_schema.streamlit_app FROM USER joe;
特定のユーザーからプロシージャの USAGE 権限を取り消すには、 user1
。
REVOKE USAGE ON PROCEDURE mydb.myschema.myprocedure(number) FROM USER user1;