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 ]
Copy

条件:

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
  }
  [ , ... ]
Copy
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 } [ , ... ]
Copy
schemaPrivileges ::=

    ADD SEARCH OPTIMIZATION | APPLYBUDGET
   | MODIFY | MONITOR | USAGE
   [ , ... ]
Copy
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 } [ , ... ]
Copy

各オブジェクトタイプでサポートされている権限の詳細については、 アクセス制御権限 をご参照ください。

必須パラメーター

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 の複数形(例: TABLESVIEWS)。

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;
Copy

特定のユーザーからプロシージャの USAGE 権限を取り消すには、 user1

REVOKE USAGE ON PROCEDURE mydb.myschema.myprocedure(number) FROM USER user1;
Copy