REVOKE <privileges> ... FROM USER

从用户移除对安全对象的一项或多项权限。可撤销的权限是特定于对象的。

另请参阅:

语法

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 权限;不过,可以将该权限授予自定义角色。

托管访问架构 <label-managed_access_schemas>`(使用 :samp:`CREATE SCHEMA ... WITH MANAGED ACCESS 创建的架构)语法中,只有架构所有者(对架构具有 OWNERSHIP 权限的角色)、具有全局 MANAGE GRANTS 权限的角色或用户或者更高级别的角色可以撤销对架构中对象的权限。

示例

要撤销特定用户 joe 对 Streamlit 应用程序的 USAGE 权限,请执行以下操作:

REVOKE USAGE ON STREAMLIT streamlit_db.streamlit_schema.streamlit_app FROM USER joe;
Copy

要撤销特定用户 user1 对过程的 USAGE 权限,请执行以下操作:

REVOKE USAGE ON PROCEDURE mydb.myschema.myprocedure(number) FROM USER user1;
Copy
语言: 中文