DistSQL 权限控制 #
权限配置 #
适用场景
权限引擎根据 server.yaml 中配置的权限规则来执行系统的初始化工作。
数据规划
- users 用于指定初始用户,如这里将 root@% 设置为初始用户;
- privilege 中的 type 用于指定选用的服务提供者,如这里配置了企业级的权限提供者
SphereEx:PERMITTED
。
注意事项
- 初始用户默认具备 SUPER 权限。
- 若通过 DistSQL 对初始用户显示赋予非 SUPER 权限,则该初始用户将失去 SUPER 授权。
- 需再次赋予 SUPER 授权,需要使用 GRANT DIST SUPER TO user 语句。
操作步骤
配置格式如下:
authority:
users:
- user: root@%
password: root
privilege:
type: SphereEx:PERMITTED
不使用角色管理 #
适用场景
某应用系统为不同人员提供了不同权限的 DBPlusEngine 账户。
数据规划
全部账号需求如下:
用户名 | 所需权限 |
---|---|
root | SUPER |
zhangsan | 分片特性所有权限 |
wangwu | 全局查询权限 |
zhaoliu | RAL 语法权限 |
其中,root 用户为初始用户。
操作步骤
- 依次创建各个开发和运维用户,密码根据实际情况进行设置。
-- 不限制登录主机,省略 host 配置
CREATE DIST USER zhangsan IDENTIFIED BY '123456';
CREATE DIST USER wangwu IDENTIFIED BY '123456';
CREATE DIST USER zhaoliu IDENTIFIED BY '123456';
- 为用户授权。
GRANT DIST CREATE SHARDING, ALTER SHARDING, ALTER SHARDING, SHOW SHARDING TO zhangsan;
GRANT DIST RQL SHOW TO wangwu;
GRANT DIST RAL TO zhaoliu;
使用角色管理 #
适用场景
某应用系统为不同用户提供了不同角色的 DBPlusEngine 账户。
数据规划
全部账号需求如下:
用户名 | 使用人员 | 所需权限 |
---|---|---|
root | 最高管理员 | SUPER |
zhangsan | 开发 | 分片特性所有权限 |
wangwu | 测试 | 全局查询权限 |
操作步骤
- 依次创建各个开发和运维用户,密码根据实际情况进行设置。
-- 不限制登录主机,省略 host 配置
CREATE DIST USER zhangsan IDENTIFIED BY '123456';
CREATE DIST USER wangwu IDENTIFIED BY '123456';
- 创建两个角色,develop_sharding 和 operate_show。
CREATE DIST ROLE develop_sharding;
CREATE DIST ROLE operate_show;
- 为角色授权。
GRANT DIST CREATE SHARDING, ALTER SHARDING, ALTER SHARDING, SHOW SHARDING TO develop_sharding;
GRANT DIST RQL SHOW TO operate_show;
- 将角色赋予用户,这样用户就具有了角色所拥有的权限。
GRANT DIST develop_sharding TO zhangsan;
GRANT DIST operate_show TO wangwu;
- 为运维角色赋予用户。
GRANT DIST operate_ddl TO operator_1;
GRANT DIST operate_ddl TO operator_2;