GRANT 命令用于赋予指定用户或角色指定的权限
privilege_list 是需要赋予的权限列表,以逗号分隔。当前 Doris 支持如下权限:
ADMIN_PRIV:除 NODE_PRIV 以外的所有权限。
GRANT_PRIV: 操作权限的权限。包括创建删除用户、角色,授权和撤权,设置密码等。
SELECT_PRIV:对指定的库或表的读取权限
LOAD_PRIV:对指定的库或表的导入权限
ALTER_PRIV:对指定的库或表的schema变更权限
CREATE_PRIV:对指定的库或表的创建权限
USAGE_PRIV: 对指定资源的使用权限
旧版权限中的 ALL 和 READ_WRITE 会被转换成:SELECT_PRIV,LOAD_PRIV,ALTER_PRIV,CREATE_PRIV,DROP_PRIV;
READ_ONLY 会被转换为 SELECT_PRIV。
权限分类:
1. 节点权限:NODE_PRIV
2. 库表权限:SELECT_PRIV,LOAD_PRIV,ALTER_PRIV,CREATE_PRIV,DROP_PRIV
3. 资源权限:USAGE_PRIV
1. *.*.* 权限可以应用于所有catalog及其中的所有库表
2. ctl.*.* 权限可以应用于指定catalog中的所有库表
3. ctl.db.* 权限可以应用于指定库下的所有表
resource_name 支持以下两种形式:
user_identity:
这里的 user_identity 语法同 CREATE USER。且必须为使用 CREATE USER 创建过的 user_identity。user_identity 中的host可以是域名,如果是域名的话,权限的生效时间可能会有1分钟左右的延迟。
也可以将权限赋予指定的 ROLE,如果指定的 ROLE 不存在,则会自动创建。
授予所有catalog和库表的权限给用户
GRANT SELECT_PRIV ON *.*.* TO 'jack'@'%';
-
GRANT SELECT_PRIV,ALTER_PRIV,LOAD_PRIV ON ctl1.db1.tbl1 TO 'jack'@'192.8.%';
授予指定库表的权限给角色
授予所有资源的使用权限给用户
GRANT USAGE_PRIV ON RESOURCE * TO 'jack'@'%';
授予指定资源的使用权限给用户