授予用户或角色的权限决定了用户或角色可以对某些对象执行哪些操作。权限可用于实现细粒度的访问控制,以保障数据安全。
本文介绍了 StarRocks 在不同对象上提供的权限及其含义。权限使用 GRANT 和 REVOKE 进行授予和撤销。可以在对象上授予的权限特定于对象类型。例如,表权限与数据库权限不同。
注意:本主题中描述的权限仅从 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 TABLE 和 CANCEL ALTER TABLE 操作。 | 您必须具有表的 ALTER 权限才能执行这两个操作。 |
刷新外部表 | REFRESH EXTERNAL TABLE | 对外部表具有 LOAD_PRIV 权限的用户可以刷新外部表。 | 您必须具有外部表的 ALTER 权限才能执行此操作。 |
备份和恢复 | BACKUP, RESTORE | 对数据库具有 LOAD_PRIV 权限的用户可以备份和还原数据库或数据库中的任何表。 | 升级后,管理员必须再次向用户授予备份和还原权限。 |
删除后恢复 | RECOVER | 对数据库和表具有 ALTER_PRIV 、CREATE_PRIV 和 DROP_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 操作以分配角色和权限。