Skip to content

Commit 7ac3720

Browse files
authored
fix: by xiaopeng (#263)
1 parent 1a93f6e commit 7ac3720

File tree

6 files changed

+84
-32
lines changed

6 files changed

+84
-32
lines changed

zh_CN/admin/configuration-fields/server.md

Lines changed: 9 additions & 14 deletions
Original file line numberDiff line numberDiff line change
@@ -64,22 +64,17 @@ password = "public"
6464
# Default: "87113c3d906df75e9c6389fbd457d957".
6565
jwt_secret = "87212c3d906df71e9c6289fbd456d917"
6666

67-
# Password strength requirements.
68-
# weak: no requirements, simple password.
69-
# moderate: at least 8 characters, including at least three types of the following:
70-
# uppercase letters, lowercase letters, digits, and special characters.
71-
# strong: at least 14 characters, including all types of the following:
72-
# uppercase letters, lowercase letters, digits, and special characters.
73-
# Default: "weak"
67+
# 密码强度,支持三种:
68+
# weak: 弱密码,没有特殊要求;
69+
# moderate: 一般密码,至少 8 位字符,至少包含大写、小写、数字和特殊字符中的三种;
70+
# strong: 强密码,至少 14 位字符,包含大写、小写、数字和特殊字符。
71+
# 默认:weak
7472
#password_strength = "weak"
7573

76-
# Password protection against brute-force attacks.
77-
# Form as "a/b/c", means:
78-
# Account locked for "b" minutes after "a" failed password attempts,
79-
# and locked for another "c" miniutes after the each failed attempt.
80-
# The maximum of a/b/c is 10/120/120 respectively, and will be set to 3/5/5 if too big.
81-
# 0/-/- means no lockout.
82-
# Default: "0/0/0"
74+
# 防暴力破解密码
75+
# 形式为 "a/b/c",a,b,c 都是整数,含义是连续失败 a 次后,b 分钟内禁止该用户重复尝试登录,之后每再失败一次,禁止时间延长 c 分钟。
76+
# a最大值为 10,b,c 最大值为 120 分钟。
77+
# 默认:0/0/0 表示不开启防暴力破解
8378
#password_lockout = "3/5/5"
8479

8580
# The configurations of the Redis service.

zh_CN/user-security/authentication/rbac.md

Lines changed: 15 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -21,10 +21,23 @@ type = "rbac"
2121
# The provided JSON Web Token.
2222
# Default: "871b3c2d706d875e9c6389fb2457d957".
2323
jwt_secret = "871b3c2d706d875e9c6389fb2457d957"
24+
25+
# 密码强度,支持三种:
26+
# weak: 弱密码,没有特殊要求;
27+
# moderate: 一般密码,至少 8 位字符,至少包含大写、小写、数字和特殊字符中的三种;
28+
# strong: 强密码,至少 14 位字符,包含大写、小写、数字和特殊字符。
29+
# 默认:weak
30+
#password_strength = "weak"
31+
32+
# 防暴力破解密码
33+
# 形式为 "a/b/c",a,b,c 都是整数,含义是连续失败 a 次后,b 分钟内禁止该用户重复尝试登录,之后每再失败一次,禁止时间延长 c 分钟。
34+
# a最大值为 10,b,c 最大值为 120 分钟。
35+
# 默认:0/0/0 表示不开启防暴力破解
36+
#password_lockout = "3/5/5"
2437
```
2538

2639
## 初始化用户
27-
安装 Datalayers 后,首次使用 rbac认证模式启动时,系统默认没有预置管理员账户。您需要手动初始化第一个管理员账户。本文提供两种初始化方法。
40+
安装 Datalayers 后,首次使用 rbac 认证模式启动时,系统默认没有预置管理员账户。您需要手动初始化第一个管理员账户。本文提供两种初始化方法。
2841

2942
### 基于 Peer 认证初始化
3043
Peer 认证是一种基于操作系统进程间通信(IPC)的本地认证机制,它通过 Unix Domain Socket 进行身份验证,仅允许在同一台机器上运行的进程进行访问。
@@ -66,7 +79,7 @@ dlsql admin init-root --user admin@% --password public
6679
基于静态认证,通过相应的授权语句进行创建用户来初始化系统用户。
6780
- 配置为[静态认证](static.md),配置好后重启系统
6881
- 参考 `rbac` 中的[用户管理](../rbac/user.md),并创建好帐号
69-
- 创建好后将认证 `server.auth.type`修改为 `rbac` 并重启系统
82+
- 创建好后将认证 `server.auth.type` 修改为 `rbac` 并重启系统
7083
- 使用创建的帐号进行登陆
7184

7285
## 详细说明

zh_CN/user-security/authentication/static.md

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -26,6 +26,6 @@ jwt_secret = "871b3c2d706d875e9c6389fb2457d957"
2626
```
2727

2828
::: tip
29-
- 静态认证模式下,所有通过认证的用户都拥有系统完整权限
30-
- 需将配置文件中 ```server.auth.type``` 设置为 `static` 方可启用静态认证
29+
- 静态认证模式下,通过认证的用户将拥有系统完整权限
30+
- 将配置文件中 ```server.auth.type``` 设置为 `static` 或删除该配置项可启用静态认证
3131
:::

zh_CN/user-security/rbac/privilege.md

Lines changed: 37 additions & 9 deletions
Original file line numberDiff line numberDiff line change
@@ -73,8 +73,7 @@ GRANT ALL PRIVILEGES ON *.* TO 'developer'@'127.0.0.1';
7373
可以通过如下命令收回用户或角色的权限:
7474

7575
```sql
76-
REVOKE [IF EXISTS]
77-
priv_type [, priv_type] ...
76+
REVOKE priv_type [, priv_type] ...
7877
ON priv_level
7978
FROM user_or_role [, user_or_role] ...
8079
```
@@ -122,31 +121,60 @@ SHOW PRIVILEGES;
122121

123122
| 操作 | 需要的权限 |
124123
|-----------------------|------------|
124+
| SELECT | 表的 SELECT 权限 |
125+
| INSERT | 表的 INSERT 权限 |
126+
| UPDATE | 表的 UPDATE 权限 |
127+
| DELETE | 表的 DELETE 权限 |
125128
| ALTER TABLE | 表的 ALTER 权限|
126-
| ANALYZE TABLE | 表的 INSERT 和 SELECT 权限 |
127129
| COMPACT TABLE | 表的 INSERT 权限|
128130
| CREATE DATABASE | 全局 CREATE 权限 |
129-
| CREATE INDEX | 表的 INDEX 权限 |
131+
| CREATE INDEX | 表的 ALTER 权限 |
130132
| CREATE TABLE | 数据库的 CREATE 权限|
131133
| CREATE ROLE | CREATE ROLE 权限 |
132134
| CREATE USER | CREATE USER 权限 |
133135
| DESC TABLE | 表的 SELECT 权限 |
134136
| DROP DATABASE | 数据库的 DROP 权限 |
135-
| DROP INDEX | 表的 INDEX 权限 |
137+
| DROP INDEX | 表的 ALTER 权限 |
138+
| DROP NODE | SUPER 权限 |
136139
| DROP TABLE | 表的 DROP 权限 |
137140
| DROP ROLE | DROP ROLE 权限 |
138141
| DROP USER | CREATE USER 权限 |
139-
| EXCLUDE NODE | SUPER 权限 |
142+
| EXCLUDE NODE | SUPER 权限 |
140143
| EXPLAIN | 需要与 EXPLAIN 要分析的语句相同的权限 |
141-
| FLUSH | RELOAD 权限 |
144+
| EXPORT PARTITION | 表的 SELECT 权限 |
145+
| FLUSH | RELOAD 权限 |
142146
| GRANT | 如果是授予权限,需要 GRANT 权限以及 GRANT 所赋予的权限;<br> 如果是授予角色,需要满足以下条件之一:(1)具有 SUPER 权限(2)已经被授予过该角色,且 `WITH_GRANT_OPTION = true`|
143147
| INCLUDE NODE | SUPER 权限 |
144148
| REBALANCE | SUPER 权限 |
145149
| REVOKE | 如果是收回权限,需要 GRANT 权限以及 REVOKE 所撤销的权限;<br> 如果是收回角色,需要 `SUPER` 权限|
146150
| SET PASSWORD | CREATE USER 权限 |
151+
| SHOW CLUSTER | 无权限要求 |
152+
| SHOW CURRENT NODE | 无权限要求 |
153+
| SHOW CREATE DATABASE | 数据库的 SELECT 权限 |
147154
| SHOW CREATE TABLE | 表的 SELECT 权限 |
148-
| SHOW DATABASES | 能查看至少有一种权限的数据库,若具有 SHOW DATABASES 权限,则能查看所有数据库 |
149-
| SHOW GRANTS | `information_schema` 数据库的 SELECT 权限(查看当前用户则无需权限) |
155+
| SHOW DATABASES | 能查看至少有一种数据库权限或数据库内表权限,若具有 SHOW DATABASES 权限,则能查看所有数据库 |
156+
| SHOW GRANTS | SUPER 权限(查看当前用户则无需权限) |
157+
| SHOW LICENSE | SUPER 权限 |
158+
| SHOW MIGRATION | SUPER 权限 |
159+
| SHOW PARTITIONS | 如果指定了 `ON TABLE` 选项,则需要该表的 SELECT 权限;<br> 否则能够查看所有具备 `SELECT` 权限的表的 parititons |
160+
| SHOW PRIVILEGES | 无权限要求 |
150161
| SHOW TABLES | 能查看至少有一种权限的表 |
162+
| SHOW TASKS | SUPER 权限 |
163+
| SHOW VERSION | SUPER 权限 |
164+
| STOP MIGRATION | SUPER 权限 |
151165
| TRIM DATABASE | 数据库的 DROP 权限|
152166
| TRUNCATE TABLE | 表的 DROP 权限 |
167+
168+
## 特定权限
169+
170+
### INFORMATION SCHEMA 数据库的权限
171+
172+
所有用户都直接获得对 `information_schema` 数据库的 `SELECT` 权限。
173+
174+
不能通过 `REVOKE` 回收该数据库的权限。
175+
176+
访问 `information_schema` 数据库中的表数据时,会根据用户具备的权限来展示数据,以 `tables` 表为例,用户只能查看到自己有权限访问表的信息。
177+
178+
::: tip
179+
可以通过 `GRANT` 授予该数据库的权限,但授权操作没有实际作用,不建议这样做。
180+
:::

zh_CN/user-security/rbac/role.md

Lines changed: 12 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -60,20 +60,28 @@ REVOKE ALL ON content_db.articles FROM 'editor';
6060
角色的授予可以通过如下命令实现:
6161

6262
```sql
63-
GRANT user_or_role [, user_or_role] ...
64-
TO user_or_role [, user_or_role] ...
63+
GRANT role [, role] ...
64+
TO user [, user] ...
6565
[WITH ADMIN OPTION]
6666
```
6767

6868
角色授予给用户后将立即生效,用户可以直接使用角色的权限。
6969

70+
::: tip
71+
由于目前角色不支持继承,只能将角色授予给用户,而不能将角色授予给其他角色。
72+
:::
73+
7074
### 将角色从用户处收回
7175

7276
**基本语法**
7377

7478
```sql
75-
REVOKE user_or_role [, user_or_role] ...
76-
FROM user_or_role [, user_or_role] ...
79+
REVOKE role [, role] ...
80+
FROM user [, user] ...
7781
```
7882

7983
收回后,用户将无法再使用该角色的权限。
84+
85+
::: tip
86+
由于目前角色不支持继承,只能收回用户身上的角色。
87+
:::

zh_CN/user-security/rbac/user.md

Lines changed: 9 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -16,7 +16,7 @@ CREATE USER [IF NOT EXISTS] user IDENTIFIED BY 'password';
1616
```
1717
**说明**
1818
- `user`:格式为`'user_name'@'host_name'`,例如 `'alice'@'127.0.0.1'`
19-
- 主机名 `host_name` 支持使用 `%` 通配符,表示匹配任意网段。例如 `bob'@'%'` 表示允许用户 bob 从任意 IP 地址连接,`'bob'@'192.168.%'` 表示只允许从 `192.168.*.*` 网段连接
19+
- 主机名 `host_name` 支持使用 `%` 通配符,表示匹配任意网段。例如 `'bob'@'%'` 表示允许用户 bob 从任意 IP 地址连接,`'bob'@'192.168.%'` 表示只允许从 `192.168.*.*` 网段连接
2020
- `password`:账户密码,最长为32位字符。
2121

2222
**示例**
@@ -70,3 +70,11 @@ DROP USER 'alice'@'%';
7070
```sql
7171
SELECT USER();
7272
```
73+
74+
## 密码强度管理
75+
76+
通过修改 [server 配置](../../admin/configuration-fields/server.md)中的 `password_strength` 参数来设置密码强度要求。
77+
78+
## 防暴力破解密码
79+
80+
通过修改 [server 配置](../../admin/configuration-fields/server.md)中的 `password_lockout` 参数来设置防暴力破解密码的策略。

0 commit comments

Comments
 (0)