CREATE ROLE
创建新的 角色。角色是 权限 的集合。一个 用户 被分配了一个角色,就获得了该角色的所有权限。
语法
CREATE ROLE [IF NOT EXISTS | OR REPLACE] name1 [, name2 [,...]] [ON CLUSTER cluster_name]
[IN access_storage_type]
[SETTINGS variable [= value] [MIN [=] min_value] [MAX [=] max_value] [CONST|READONLY|WRITABLE|CHANGEABLE_IN_READONLY] | PROFILE 'profile_name'] [,...]
管理角色
一个用户可以被分配多个角色。用户可以通过 SET ROLE 语句以任意组合方式应用其分配的角色。最终的权限范围是所有应用角色的所有权限的组合集。如果一个用户拥有直接授予其用户帐户的权限,则这些权限也会与角色授予的权限组合在一起。
用户可以拥有在用户登录时应用的默认角色。要设置默认角色,请使用 SET DEFAULT ROLE 语句或 ALTER USER 语句。
要撤销角色,请使用 REVOKE 语句。
要删除角色,请使用 DROP ROLE 语句。删除的角色将自动从分配给它的所有用户和角色中撤销。
示例
CREATE ROLE accountant;
GRANT SELECT ON db.* TO accountant;
此查询序列创建了角色 accountant
,该角色具有从 db
数据库读取数据的权限。
将角色分配给用户 mira
GRANT accountant TO mira;
分配角色后,用户可以应用它并执行允许的查询。例如
SET ROLE accountant;
SELECT * FROM db.*;