跳到主要内容
版本: 最新版本-3.5

REVOKE

使用 REVOKE 移除用户或角色的特定权限或角色。有关 StarRocks 支持的权限,请参阅StarRocks 支持的权限

提示
  • 普通用户只能撤销其他用户和角色拥有的带有 WITH GRANT OPTION 关键字的权限。有关 WITH GRANT OPTION 的信息,请参阅GRANT
  • 只有具有 user_admin 角色的用户才有权撤销其他用户的权限。

语法

撤销权限

可以撤销的权限是特定于对象的。以下部分描述基于对象的语法。

系统

REVOKE
{ CREATE RESOURCE GROUP | CREATE RESOURCE | CREATE EXTERNAL CATALOG | REPOSITORY | BLACKLIST | FILE | OPERATE }
ON SYSTEM
FROM { ROLE | USER} {<role_name>|<user_identity>}

资源组

REVOKE
{ ALTER | DROP | ALL [PRIVILEGES] }
ON { RESOURCE GROUP <resourcegroup_name> [, <resourcegroup_name>,...]ALL RESOURCE GROUPS}
FROM { ROLE | USER} {<role_name>|<user_identity>}

资源

REVOKE
{ USAGE | ALTER | DROP | ALL [PRIVILEGES] }
ON { RESOURCE <resource_name> [, <resource_name>,...]ALL RESOURCES}
FROM { ROLE | USER} {<role_name>|<user_identity>}

用户

REVOKE IMPERSONATE ON USER <user_identity> FROM USER <user_identity>;

全局 UDF

REVOKE
{ USAGE | DROP | ALL [PRIVILEGES]}
ON { GLOBAL FUNCTION <function_name>(input_data_type) [, <function_name>(input_data_type),...]
| ALL GLOBAL FUNCTIONS }
FROM { ROLE | USER} {<role_name>|<user_identity>}

内部 Catalog

REVOKE 
{ USAGE | CREATE DATABASE | ALL [PRIVILEGES]}
ON CATALOG default_catalog
FROM { ROLE | USER} {<role_name>|<user_identity>}

外部 Catalog

REVOKE  
{ USAGE | DROP | ALL [PRIVILEGES] }
ON { CATALOG <catalog_name> [, <catalog_name>,...] | ALL CATALOGS}
FROM { ROLE | USER} {<role_name>|<user_identity>}

数据库

REVOKE 
{ ALTER | DROP | CREATE TABLE | CREATE VIEW | CREATE FUNCTION | CREATE MATERIALIZED VIEW | ALL [PRIVILEGES] }
ON {{ DATABASE <database_name> [, <database_name>,...]} | ALL DATABASES }
FROM { ROLE | USER} {<role_name>|<user_identity>}
  • 您必须先运行 SET CATALOG 才能运行此命令。

REVOKE  
{ ALTER | DROP | SELECT | INSERT | EXPORT | UPDATE | DELETE | ALL [PRIVILEGES]}
ON { TABLE <table_name> [, < table_name >,...]
| ALL TABLES} IN
{ { DATABASE <database_name> [, <database_name>,...]} | ALL DATABASES }
FROM { ROLE | USER} {<role_name>|<user_identity>}
  • 您必须先运行 SET CATALOG 才能运行此命令。

  • 您还可以使用 db.tbl 来表示表。

    REVOKE <priv> ON TABLE db.tbl FROM {ROLE <role_name> | USER <user_identity>}

视图

REVOKE  
{ ALTER | DROP | SELECT | ALL [PRIVILEGES]}
ON { VIEW <view_name> [, < view_name >,...]
ALL VIEWS} IN
{ { DATABASE <database_name> [, <database_name>,...]} | ALL DATABASES }
FROM { ROLE | USER} {<role_name>|<user_identity>}
  • 您必须先运行 SET CATALOG 才能运行此命令。

  • 您还可以使用 db.view 来表示视图。

    REVOKE <priv> ON VIEW db.view FROM {ROLE <role_name> | USER <user_identity>}

物化视图

REVOKE
{ SELECT | ALTER | REFRESH | DROP | ALL [PRIVILEGES]}
ON { MATERIALIZED VIEW <mv_name> [, < mv_name >,...]
ALL MATERIALIZED VIEWS} IN
{ { DATABASE <database_name> [, <database_name>,...] } | ALL [DATABASES] }
FROM { ROLE | USER} {<role_name>|<user_identity>}
  • 您必须先运行 SET CATALOG 才能运行此命令。

  • 您还可以使用 db.mv 来表示物化视图。

    REVOKE <priv> ON MATERIALIZED VIEW db.mv FROM {ROLE <role_name> | USER <user_identity>}

函数

REVOKE
{ USAGE | DROP | ALL [PRIVILEGES]}
ON { FUNCTION <function_name>(input_data_type) [, <function_name>(input_data_type),...]
ALL FUNCTIONS} IN
{ { DATABASE <database_name> [, <database_name>,...] } | ALL DATABASES }
FROM { ROLE | USER} {<role_name>|<user_identity>}
  • 您必须先运行 SET CATALOG 才能运行此命令。

  • 您还可以使用 db.function 来表示函数。

    REVOKE <priv> ON FUNCTION <db_name>.<function_name>(input_data_type) FROM {ROLE <role_name> | USER <user_identity>}

存储卷

REVOKE
CREATE STORAGE VOLUME
ON SYSTEM
FROM { ROLE | USER} {<role_name>|<user_identity>}

REVOKE
{ USAGE | ALTER | DROP | ALL [PRIVILEGES] }
ON { STORAGE VOLUME < name > [, < name >,...]ALL STORAGE VOLUME}
FROM { ROLE | USER} {<role_name>|<user_identity>}

撤销角色

REVOKE <role_name> [,<role_name>, ...] FROM ROLE <role_name>
REVOKE <role_name> [,<role_name>, ...] FROM USER <user_identity>

参数

参数描述
role_name角色名称。
user_identity用户身份,例如 'jack'@'192.%'。
resourcegroup_name资源组名称
resource_name资源名称。
function_name函数名称。
catalog_name外部 Catalog 的名称。
database_name数据库名称。
table_name表名。
view_name视图名称。
mv_name物化视图的名称。

示例

撤销权限

撤销用户 jack 对表 sr_member 的 SELECT 权限

REVOKE SELECT ON TABLE sr_member FROM USER 'jack'@'192.%'

撤销角色 test_role 对资源 spark_resource 的 USAGE 权限

REVOKE USAGE ON RESOURCE 'spark_resource' FROM ROLE 'test_role';

撤销角色

撤销用户 jack 的角色 example_role

REVOKE example_role FROM 'jack'@'%';

撤销角色 test_role 的角色 example_role

REVOKE example_role FROM ROLE 'test_role';

参考

GRANT