Logo
权限控制

权限控制 #

权限配置 #

适用场景

权限引擎根据 server.yaml 中配置的权限规则来执行系统的初始化工作。

数据规划

  • users 用于指定初始用户,如这里将 root@% 设置为初始用户;
  • privilege 中的 type 用于指定选用的服务提供者,如这里配置了企业级的权限提供者 SphereEx:PERMITTED

注意事项

  1. 初始用户默认具备 SUPER 权限。
  2. 若通过 DistSQL 对初始用户显示赋予非 SUPER 权限,则该初始用户将失去 SUPER 授权。
  3. 需再次赋予 SUPER 授权,需要使用 GRANT DIST SUPER TO user 语句。

操作步骤

配置格式如下:

authority:
  users:
    - user: root@%
      password: root
  privilege:
    type: SphereEx:PERMITTED

不使用角色管理 #

适用场景

某应用系统为开发和运维人员提供了不同级别的 DBPlusEngine 账户,其中开发人员仅可以执行 DML 指令,运维人员则可以执行 DML + DDL 指令,另有一个 root 用户作为最高管理者。

数据规划

全部账号需求如下:

用户名使用人员所需权限
root最高管理员SUPER
zhangsan开发-张三DML
wangwu开发-王五DML
develop_test开发测试DML
operator_1运维人员-1DML + DDL
operator_2运维人员-2DML + DDL

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

操作步骤

  1. 依次创建各个开发和运维用户,密码根据实际情况进行设置。
-- 不限制登录主机,省略 host 配置
CREATE DIST USER zhangsan IDENTIFIED BY '123456';
CREATE DIST USER wangwu IDENTIFIED BY '123456';
CREATE DIST USER develop_test IDENTIFIED BY '123456';
CREATE DIST USER operator_1 IDENTIFIED BY '123456';
CREATE DIST USER operator_2 IDENTIFIED BY '123456';
  1. 为开发用户授权。
GRANT DIST INSERT,SELECT,UPDATE,DELETE TO zhangsan;
GRANT DIST INSERT,SELECT,UPDATE,DELETE TO wangwu;
GRANT DIST INSERT,SELECT,UPDATE,DELETE TO develop_test;
  1. 为运维用户授权。
GRANT DIST INSERT,SELECT,UPDATE,DELETE,CREATE,ALTER,DROP,TRUNCATE TO operator_1;
GRANT DIST INSERT,SELECT,UPDATE,DELETE,CREATE,ALTER,DROP,TRUNCATE TO operator_2;
  1. 若需新增开发用户,则重复以下两步。
-- 新建用户
CREATE DIST USER new_developer IDENTIFIED BY '123456';
-- 授权
GRANT DIST INSERT,SELECT,UPDATE,DELETE TO new_developer;
  1. 若需新增运维用户,则重复以下两步。
-- 新建用户
CREATE DIST USER new_operator IDENTIFIED BY '123456';
-- 授权
GRANT DIST INSERT,SELECT,UPDATE,DELETE,CREATE,ALTER,DROP,TRUNCATE TO new_operator;

使用角色管理 #

适用场景

某应用系统为开发和运维人员提供了不同级别的 DBPlusEngine 账户,其中开发人员仅可以执行 DML 指令,运维人员则可以执行 DML + DDL 指令,另有一个 root 用户作为最高管理者。

数据规划

全部账号需求如下:

用户名使用人员所需权限
root最高管理员SUPER
zhangsan开发-张三DML
wangwu开发-王五DML
develop_test开发测试DML
operator_1运维人员-1DML + DDL
operator_2运维人员-2DML + DDL

操作步骤

  1. 依次创建各个开发和运维用户,密码根据实际情况进行设置。
-- 不限制登录主机,省略 host 配置
CREATE DIST USER zhangsan IDENTIFIED BY '123456';
CREATE DIST USER wangwu IDENTIFIED BY '123456';
CREATE DIST USER develop_test IDENTIFIED BY '123456';
CREATE DIST USER operator_1 IDENTIFIED BY '123456';
CREATE DIST USER operator_2 IDENTIFIED BY '123456';
  1. 创建两个角色,develop_dml 和 operate_ddl。
CREATE DIST ROLE develop_dml;
CREATE DIST ROLE operate_ddl;
  1. 为角色授权。
GRANT DIST INSERT,SELECT,UPDATE,DELETE TO develop_dml;
GRANT DIST INSERT,SELECT,UPDATE,DELETE,CREATE,ALTER,DROP,TRUNCATE TO operate_ddl;
  1. 将开发角色赋予用户,这样用户就具有了角色所拥有的权限。
GRANT DIST develop_dml TO zhangsan;
GRANT DIST develop_dml TO wangwu;
GRANT DIST develop_dml TO develop_test;
  1. 为运维角色赋予用户。
GRANT DIST operate_ddl TO operator_1;
GRANT DIST operate_ddl TO operator_2;
  1. 若需新增开发用户,则重复以下两步。
-- 新建用户
CREATE DIST USER new_developer IDENTIFIED BY '123456';
-- 授权
GRANT DIST develop_dml TO new_developer;
  1. 若需新增运维用户,则重复以下两步。
-- 新建用户
CREATE DIST USER new_operator IDENTIFIED BY '123456';
-- 授权
GRANT DIST operate_ddl TO new_operator;