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

StarRocks 支持的权限

授予用户或角色的权限决定了用户或角色可以对某些对象执行哪些操作。权限可用于实现细粒度的访问控制,以保障数据安全。

本文介绍了 StarRocks 在不同对象上提供的权限及其含义。权限使用 GRANTREVOKE 进行授予和撤销。可以在对象上授予的权限特定于对象类型。例如,表权限与数据库权限不同。

注意:本主题中描述的权限仅从 v3.0 开始可用。v3.0 中的权限框架和语法与早期版本不向后兼容。升级到 v3.0 后,除了特定操作的权限外,您的大部分原始权限仍然保留。有关详细差异,请参阅本主题末尾的升级说明

权限列表

本节介绍了在不同对象上可用的权限。

SYSTEM

权限描述
NODE操作节点,例如添加、删除或退役节点。为了确保集群安全,此权限不能直接授予用户或角色。cluster_admin 角色具有此权限。
GRANT创建用户或角色,更改用户或角色,或授予用户或角色权限。此权限不能直接授予用户或角色。user_admin 角色具有此权限。
CREATE RESOURCE GROUP创建资源组。
CREATE RESOURCE为 Spark Load 作业或外部表创建资源。
CREATE EXTERNAL CATALOG创建外部 Catalog。
PLUGIN安装或卸载插件。
REPOSITORY创建、删除或查看存储库。
BLACKLIST创建、删除或显示 SQL 黑名单和 BE 黑名单。
FILE创建、删除或查看文件。
OPERATE管理副本、配置项、变量和事务。
CREATE GLOBAL FUNCTION创建全局 UDF。
CREATE STORAGE VOLUME为远程存储系统创建存储卷。

RESOURCE GROUP

权限描述
ALTER为资源组添加或删除分类器。
DROP删除资源组。
ALL具有资源组上的所有上述权限。

RESOURCE

权限描述
USAGE使用资源。
ALTER修改资源。
DROP删除资源。
ALL具有资源上的所有上述权限。

USER

权限描述
IMPERSONATE允许用户 A 以用户 B 的身份执行操作。

GLOBAL FUNCTION (全局 UDF)

权限描述
USAGE在查询中使用函数。
DROP删除函数。
ALL具有函数上的所有上述权限。

CATALOG

对象权限描述
CATALOG(内部 Catalog)USAGE使用内部 Catalog (default_catalog)。
CATALOG(内部 Catalog)CREATE DATABASE在内部 Catalog 中创建数据库。
CATALOG(内部 Catalog)ALL具有内部 Catalog 上的所有上述权限。
CATALOG(外部 Catalog)USAGE使用外部 Catalog。
CATALOG(外部 Catalog)DROP删除外部 Catalog。
CATALOG(外部 Catalog)ALL具有外部 Catalog 上的所有上述权限。

注意:StarRocks 内部 Catalog 无法删除。

DATABASE

权限描述
ALTER设置数据库的属性,重命名数据库,或设置数据库的配额。
DROP删除数据库。
CREATE TABLE在数据库中创建表。
CREATE VIEW创建视图。
CREATE FUNCTION创建函数。
CREATE MATERIALIZED VIEW创建物化视图。
ALL具有数据库上的所有上述权限。

TABLE

权限描述
ALTER修改表或刷新外部表中的元数据。
DROP删除表。
SELECT查询表中的数据。
INSERT将数据插入表中。
UPDATE更新表中的数据。
EXPORT从 StarRocks 表导出数据。
DELETE根据指定条件从表中删除数据或删除表中的所有数据。
ALL具有表上的所有上述权限。

VIEW

权限描述
SELECT查询视图中的数据。
ALTER修改视图的定义。
DROP删除逻辑视图。
ALL具有视图上的所有上述权限。

MATERIALIZED VIEW

权限描述
SELECT查询物化视图以加速查询。
ALTER更改物化视图。
REFRESH刷新物化视图。
DROP删除物化视图。
ALL具有物化视图上的所有上述权限。

FUNCTION(数据库级 UDF)

权限描述
USAGE使用函数。
DROP删除函数。
ALL具有函数上的所有上述权限。

STORAGE VOLUME

权限描述
ALTER更改存储卷的凭据属性、注释或状态(已启用)。
DROP删除存储卷。
USAGE描述存储卷并将存储卷设置为默认存储卷。
ALL具有存储卷上的所有上述权限。

升级说明

在从 v2.x 升级到 v3.0 的过程中,由于引入了新的权限系统,您的某些操作可能无法执行。下表描述了升级前后的变化。

操作涉及的命令之前之后
更改表ALTER TABLE, CANCEL ALTER TABLE对表或表所属数据库具有 LOAD_PRIV 权限的用户可以执行 ALTER TABLECANCEL ALTER TABLE 操作。您必须具有表的 ALTER 权限才能执行这两个操作。
刷新外部表REFRESH EXTERNAL TABLE对外部表具有 LOAD_PRIV 权限的用户可以刷新外部表。您必须具有外部表的 ALTER 权限才能执行此操作。
备份和恢复BACKUP, RESTORE对数据库具有 LOAD_PRIV 权限的用户可以备份和还原数据库或数据库中的任何表。升级后,管理员必须再次向用户授予备份和还原权限。
删除后恢复RECOVER对数据库和表具有 ALTER_PRIVCREATE_PRIVDROP_PRIV 权限的用户可以恢复数据库和表。您必须具有 default_catalog 的 CREATE DATABASE 权限才能恢复数据库。您必须具有数据库的 CREATE TABLE 权限和表的 DROP 权限。
创建和更改用户CREATE USER, ALTER USER对数据库具有 GRANT_PRIV 权限的用户可以创建和更改用户。您必须具有 user_admin 角色才能创建和更改用户。
授予和撤销权限GRANT, REVOKE对对象具有 GRANT_PRIV 权限的用户可以将对象的权限授予其他用户或角色。升级后,您仍然可以将您已拥有的对象的权限授予升级后的其他用户或角色。
在新的权限系统中
  • 您必须具有 user_admin 角色才能将权限授予其他用户或角色。
  • 如果您的 GRANT 语句包含 WITH GRANT OPTION,您可以将语句中涉及的权限授予其他用户或角色。

在 v2.x 中,StarRocks 没有完全实现基于角色的访问控制 (RBAC)。当您将角色分配给用户时,StarRocks 会直接将角色的所有权限授予用户,而不是角色本身。因此,用户实际上并不拥有该角色。

在 v3.0 中,StarRocks 改进了其权限系统。升级到 v3.0 后,您的原始角色将被保留,但用户和角色之间仍然没有所有权。如果您想使用新的 RBAC 系统,请执行 GRANT 操作以分配角色和权限。