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