1
1
---
2
- title : 创建用户
2
+ title : CREATE USER
3
3
sidebar_position : 1
4
4
---
5
-
6
5
import FunctionDescription from '@site/src /components/FunctionDescription';
7
6
8
- <FunctionDescription description =" 引入或更新版本: v1.2.424 " />
7
+ <FunctionDescription description =" 引入或更新: v1.2.566 " />
9
8
10
9
创建一个 SQL 用户。
11
10
12
- 相关内容:
11
+ 另请参阅:
13
12
14
- - [ 创建密码策略 ] ( ../12-password-policy/create-password-policy.md )
15
- - [ 创建网络策略 ] ( ../12-network-policy/ddl-create-policy.md )
16
- - [ 授权 ] ( 10-grant.md )
13
+ - [ CREATE PASSWORD POLICY ] ( ../12-password-policy/create-password-policy.md )
14
+ - [ CREATE NETWORK POLICY ] ( ../12-network-policy/ddl-create-policy.md )
15
+ - [ GRANT ] ( 10-grant.md )
17
16
18
17
## 语法
19
18
20
19
``` sql
21
- CREATE [ OR REPLACE ] USER < name> IDENTIFIED [ WITH < auth_type> ] BY ' <password>'
20
+ CREATE [ OR REPLACE ] USER < name> IDENTIFIED [ WITH < auth_type> ] BY ' <password>'
21
+ [ WITH MUST_CHANGE_PASSWORD = true | false ]
22
22
[ WITH SET PASSWORD POLICY = ' <policy_name>' ] -- 设置密码策略
23
23
[ WITH SET NETWORK POLICY = ' <policy_name>' ] -- 设置网络策略
24
24
[ WITH DEFAULT_ROLE = ' <role_name>' ] -- 设置默认角色
25
- [ WITH DISABLED = true | false ] -- 用户创建时是否禁用
25
+ [ WITH DISABLED = true | false ] -- 用户创建时处于禁用状态
26
26
```
27
27
28
- - _ auth_type_ 可以是 ` double_sha1_password ` (默认)、` sha256_password ` 或 ` no_password ` 。
29
- - 当您使用 CREATE USER 或 [ ALTER USER] ( 03-user-alter-user.md ) 为用户设置默认角色时,Databend 不会验证角色的存在或自动将角色授予用户。您必须明确地将角色授予用户,该角色才会生效。
28
+ - * auth_type* 可以是 ` double_sha1_password ` (默认), ` sha256_password ` 或 ` no_password ` 。
29
+ - 当 ` MUST_CHANGE_PASSWORD ` 设置为 ` true ` 时,新用户必须在首次登录时更改密码。用户可以使用 [ ALTER USER] ( 03-user-alter-user.md ) 命令更改自己的密码。
30
+ - 当您使用 CREATE USER 或 [ ALTER USER] ( 03-user-alter-user.md ) 为用户设置默认角色时,Databend 不会验证角色的存在或自动授予角色给用户。您必须显式地将角色授予用户,角色才会生效。
30
31
- 当 ` DISABLED ` 设置为 ` true ` 时,新用户创建时处于禁用状态。处于此状态的用户无法登录 Databend,直到他们被启用。要启用或禁用已创建的用户,请使用 [ ALTER USER] ( 03-user-alter-user.md ) 命令。
31
32
32
33
## 示例
33
34
34
- ### 示例 1: 使用默认 auth_type 创建用户
35
+ ### 示例 1: 使用默认 auth_type 创建用户
35
36
36
37
``` sql
37
38
CREATE USER user1 IDENTIFIED BY ' abc123' ;
@@ -44,7 +45,7 @@ SHOW USERS;
44
45
+ -- ---------+----------+----------------------+---------------+
45
46
```
46
47
47
- ### 示例 2: 使用 sha256_password auth_type 创建用户
48
+ ### 示例 2: 使用 sha256_password auth_type 创建用户
48
49
49
50
``` sql
50
51
CREATE USER user1 IDENTIFIED WITH sha256_password BY ' abc123' ;
@@ -57,7 +58,7 @@ SHOW USERS;
57
58
+ -- ---------+----------+----------------------+---------------+
58
59
```
59
60
60
- ### 示例 3:创建带有网络策略的用户
61
+ ### 示例 3: 使用网络策略创建用户
61
62
62
63
``` sql
63
64
CREATE USER user1 IDENTIFIED BY ' abc123' WITH SET NETWORK POLICY= ' test_policy' ;
@@ -70,11 +71,11 @@ SHOW USERS;
70
71
+ -- ---------+----------+----------------------+---------------+
71
72
```
72
73
73
- ### 示例 4:创建带有默认角色的用户
74
+ ### 示例 4: 使用默认角色创建用户
74
75
75
- 1 . 创建一个名为 'user1' 的用户,其默认角色设置为 'manager':
76
+ 1 . 创建一个名为 'user1' 的用户,并将其默认角色设置为 'manager':
76
77
77
- ``` sql title='以用户 "root" 连接: '
78
+ ``` sql title='以 "root" 用户连接: '
78
79
SHOW ROLES;
79
80
80
81
┌───────────────────────────────────────────────────────────┐
@@ -91,9 +92,9 @@ CREATE USER user1 IDENTIFIED BY 'abc123' WITH DEFAULT_ROLE = 'manager';
91
92
GRANT ROLE developer TO user1;
92
93
```
93
94
94
- 2 . 使用 [ SHOW ROLES] ( 04-user-show-roles.md ) 命令验证用户 "user1" 的默认角色:
95
+ 2 . 使用 [ SHOW ROLES] ( 04-user-show-roles.md ) 命令验证 "user1" 用户的默认角色:
95
96
96
- ``` sql title='以用户 "user1" 连接: '
97
+ ``` sql title='以 "user1" 用户连接: '
97
98
eric@Erics- iMac ~ % bendsql -- user user1 --password abc123
98
99
Welcome to BendSQL 0 .9 .3 - db6b232(2023 - 10 - 26T12:36 :55 .578667000Z).
99
100
Connecting to localhost:8000 as user user1.
@@ -113,11 +114,11 @@ SHOW ROLES
113
114
2 rows read in 0 .015 sec. Processed 0 rows, 0 B (0 rows/ s, 0 B/ s)
114
115
```
115
116
116
- ### 示例 5: 创建处于禁用状态的用户
117
+ ### 示例 5: 创建处于禁用状态的用户
117
118
118
- 本示例创建一个名为 'u1' 的用户,处于禁用状态 ,阻止登录访问。使用 [ ALTER USER] ( 03-user-alter-user.md ) 命令启用用户后,登录访问恢复。
119
+ 此示例创建一个名为 'u1' 的用户,并将其置于禁用状态 ,阻止登录访问。使用 [ ALTER USER] ( 03-user-alter-user.md ) 命令启用用户后,登录访问恢复。
119
120
120
- 1 . 创建一个名为 'u1' 的用户,处于禁用状态:
121
+ 1 . 创建一个名为 'u1' 的用户,并将其置于禁用状态:
121
122
122
123
``` sql
123
124
CREATE USER u1 IDENTIFIED BY ' 123' WITH DISABLED = TRUE;
@@ -132,7 +133,7 @@ SHOW USERS;
132
133
└─────────────────────────────────────────────────────────────────────────────────────┘
133
134
```
134
135
135
- 2 . 尝试以用户 'u1' 使用 BendSQL 连接 Databend,将导致认证错误:
136
+ 2 . 尝试使用 BendSQL 以用户 'u1' 连接到 Databend,结果出现认证错误:
136
137
137
138
``` shell
138
139
➜ ~ bendsql --user u1 --password 123
@@ -141,17 +142,50 @@ Connecting to localhost:8000 as user u1.
141
142
Error: APIError: RequestError: Start Query failed with status 401 Unauthorized: {" error" :{" code" :" 401" ," message" :" AuthenticateFailure: user u1 is disabled. Not allowed to login" }}
142
143
```
143
144
144
- 3 . 使用 [ ALTER USER] ( 03-user-alter-user.md ) 命令启用用户 'u1':
145
+ 3 . 使用 [ ALTER USER] ( 03-user-alter-user.md ) 命令启用用户 'u1':
145
146
146
147
``` sql
147
148
ALTER USER u1 WITH DISABLED = FALSE;
148
149
```
149
150
150
- 4 . 重新尝试以用户 'u1' 连接 Databend,确认登录访问成功:
151
+ 4 . 重新尝试以用户 'u1' 连接到 Databend,确认登录访问成功:
151
152
152
153
``` shell
153
154
➜ ~ bendsql --user u1 --password 123
154
155
Welcome to BendSQL 0.16.0-homebrew.
155
156
Connecting to localhost:8000 as user u1.
156
157
Connected to Databend Query v1.2.424-nightly-d3a89f708d(rust-1.77.0-nightly-2024-04-17T22:11:59.304509266Z)
157
158
```
159
+
160
+ ### 示例 6: 创建带有 MUST_CHANGE_PASSWORD 选项的用户
161
+
162
+ 在此示例中,我们将创建一个带有 ` MUST_CHANGE_PASSWORD ` 选项的用户。然后,我们将以新用户身份使用 BendSQL 连接到 Databend 并更改密码。
163
+
164
+ 1 . 创建一个名为 'eric' 的新用户,并将 ` MUST_CHANGE_PASSWORD ` 选项设置为 ` TRUE ` 。
165
+
166
+ ``` sql
167
+ CREATE USER eric IDENTIFIED BY ' abc123' WITH MUST_CHANGE_PASSWORD = TRUE;
168
+ ```
169
+
170
+ 2 . 启动 BendSQL 并以新用户身份连接到 Databend。连接后,您将看到一条消息,指示需要更改密码。
171
+
172
+ ``` bash
173
+ MacBook-Air:~ eric$ bendsql -ueric -pabc123
174
+ ```
175
+
176
+ 3 . 使用 [ ALTER USER] ( 03-user-alter-user.md ) 命令更改密码。
177
+
178
+ ``` bash
179
+ eric@localhost:8000/default> ALTER USER USER () IDENTIFIED BY ' abc456' ;
180
+ ```
181
+
182
+ 4 . 退出 BendSQL 然后使用新密码重新连接。
183
+
184
+ ``` bash
185
+ MacBook-Air:~ eric$ bendsql -ueric -pabc456
186
+ Welcome to BendSQL 0.19.2-1e338e1(2024-07-17T09:02:28.323121000Z).
187
+ Connecting to localhost:8000 as user eric.
188
+ Connected to Databend Query v1.2.567-nightly-78d41aedc7(rust-1.78.0-nightly-2024-07-14T22:10:13.777450105Z)
189
+
190
+ eric@localhost:8000/default>
191
+ ```
0 commit comments