Logo
DistSQL 权限控制

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 账户。

数据规划

全部账号需求如下:

用户名所需权限
rootSUPER
zhangsan分片特性所有权限
wangwu全局查询权限
zhaoliuRAL 语法权限

其中,root 用户为初始用户。

操作步骤

  1. 依次创建各个开发和运维用户,密码根据实际情况进行设置。
-- 不限制登录主机,省略 host 配置
CREATE DIST USER zhangsan IDENTIFIED BY '123456';
CREATE DIST USER wangwu IDENTIFIED BY '123456';
CREATE DIST USER zhaoliu IDENTIFIED BY '123456';
  1. 为用户授权。
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测试全局查询权限

操作步骤

  1. 依次创建各个开发和运维用户,密码根据实际情况进行设置。
-- 不限制登录主机,省略 host 配置
CREATE DIST USER zhangsan IDENTIFIED BY '123456';
CREATE DIST USER wangwu IDENTIFIED BY '123456';
  1. 创建两个角色,develop_sharding 和 operate_show。
CREATE DIST ROLE develop_sharding;
CREATE DIST ROLE operate_show;
  1. 为角色授权。
GRANT DIST CREATE SHARDING, ALTER SHARDING, ALTER SHARDING, SHOW SHARDING TO develop_sharding;
GRANT DIST RQL SHOW TO operate_show;
  1. 将角色赋予用户,这样用户就具有了角色所拥有的权限。
GRANT DIST develop_sharding TO zhangsan;
GRANT DIST operate_show TO wangwu;
  1. 为运维角色赋予用户。
GRANT DIST operate_ddl TO operator_1;
GRANT DIST operate_ddl TO operator_2;