@@ -4,28 +4,81 @@ sidebar_position: 5
4
4
---
5
5
import FunctionDescription from '@site/src /components/FunctionDescription';
6
6
7
- <FunctionDescription description =" 新增或更新 :v1.2.703" />
7
+ <FunctionDescription description =" 引入或更新于 :v1.2.703" />
8
8
9
- 创建一个新的 role。
10
-
11
- 创建 role 后,您可以将对象权限授予该 role,从而为系统中的对象启用访问控制安全性。
12
-
13
- 另请参见:[ GRANT] ( 10-grant.md )
9
+ 创建一个新的角色(Role)用于访问控制。角色(Role)用于对权限进行分组,可以分配给用户或其他角色(Role),为在 Databend 中管理权限提供了一种灵活的方式。
14
10
15
11
## 语法
16
12
17
13
``` sql
18
- CREATE ROLE [ IF NOT EXISTS ] < name> [ COMMENT = ' <string_literal> ' ]
14
+ CREATE ROLE [ IF NOT EXISTS ] < name>
19
15
```
20
16
21
- - ` <name> ` 不能包含以下非法字符:
22
- - 单引号 (')
23
- - 双引号 (")
24
- - 退格 (\b)
25
- - 换页 (\f)
17
+ ** 参数:**
18
+
19
+ - ` IF NOT EXISTS ` :仅在角色(Role)不存在时创建(推荐使用以避免错误)。
20
+ - ` <name> ` :角色(Role)名称(不能包含单引号、双引号、退格符或换页符)。
26
21
27
22
## 示例
28
23
29
24
``` sql
30
- CREATE ROLE role1;
31
- ```
25
+ -- 创建一个基本角色(Role)
26
+ CREATE ROLE analyst;
27
+
28
+ -- 仅在角色(Role)不存在时创建(推荐)
29
+ CREATE ROLE IF NOT EXISTS data_viewer;
30
+ ```
31
+
32
+ ## 常用模式
33
+
34
+ ### 只读分析师角色(Role)
35
+
36
+ 为需要读取销售数据权限的数据分析师创建一个角色(Role):
37
+
38
+ ``` sql
39
+ -- 创建分析师角色(Role)
40
+ CREATE ROLE sales_analyst;
41
+
42
+ -- 授予读取权限
43
+ GRANT SELECT ON sales_db.* TO ROLE sales_analyst;
44
+
45
+ -- 分配给用户
46
+ GRANT ROLE sales_analyst TO ' alice' ;
47
+ GRANT ROLE sales_analyst TO ' bob' ;
48
+ ```
49
+
50
+ ### 数据库管理员角色(Role)
51
+
52
+ 为需要完全控制权限的管理员创建一个角色(Role):
53
+
54
+ ``` sql
55
+ -- 创建管理员角色(Role)
56
+ CREATE ROLE sales_admin;
57
+
58
+ -- 授予数据库的完全权限
59
+ GRANT ALL ON sales_db.* TO ROLE sales_admin;
60
+
61
+ -- 授予用户管理权限
62
+ GRANT CREATE USER, CREATE ROLE ON * .* TO ROLE sales_admin;
63
+
64
+ -- 分配给管理员用户
65
+ GRANT ROLE sales_admin TO ' admin_user' ;
66
+ ```
67
+
68
+ ### 验证
69
+
70
+ ``` sql
71
+ -- 检查每个角色(Role)可以执行的操作
72
+ SHOW GRANTS FOR ROLE sales_analyst;
73
+ SHOW GRANTS FOR ROLE sales_admin;
74
+
75
+ -- 检查用户权限
76
+ SHOW GRANTS FOR ' alice' ;
77
+ SHOW GRANTS FOR ' admin_user' ;
78
+ ```
79
+
80
+ ## 另请参阅
81
+
82
+ - [ GRANT] ( 10-grant.md ) - 授予权限和角色(Role)
83
+ - [ SHOW GRANTS] ( 22-show-grants.md ) - 查看已授予的权限
84
+ - [ DROP ROLE] ( 05-user-drop-role.md ) - 删除角色(Role)
0 commit comments