Logo
用户管理
语法描述类型
CREATE DIST USER ‘user’@‘host’ IDENTIFIED BY ‘password’;创建用户RAL
ALTER DIST USER ‘user’@‘host’ IDENTIFIED BY ‘password’;修改用户密码RAL
DROP DIST USER ‘user’@‘host’;删除用户RAL
SHOW DIST USERS查看用户RAL
select current_user()查看当前用户RAL

1. 创建用户 #

初始用户由管理员在 DBPlusEngine 启动前指定。在server.yaml文件中配置,用于配置登录计算节点的初始用户和存储节点数据授权。

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

CREATE DIST USER 语句用于创建带有指定密码的新用户。

CREATE DIST USER 'user'@'host' IDENTIFIED BY 'password';

参数说明

在 DBPlusEngine 中,用户是由用户名和用户名所连接主机的组合。

示例

创建一个名为 ‘sharding’ 的用户,密码为 ‘123456’,’%’ 表示不限制登录主机。

CREATE DIST USER 'sharding'@'%' IDENTIFIED BY '123456';

创建一个只能在 127.0.0.1 登录的用户。

CREATE DIST USER 'sharding'@'127.0.0.1' IDENTIFIED BY '123456';

2. 修改用户密码 #

ALTER DIST USER 语句用于修改已有用户,目前只支持修改密码。

ALTER DIST USER 'user'@'host' IDENTIFIED BY 'password';

示例

将 ‘sharding’@’%’ 的用户的密码改为 ‘sharding’。

ALTER DIST USER 'sharding'@'%' IDENTIFIED BY 'sharding';

3. 删除用户密码 #

DROP DIST USER 语句用于删除用户。

DROP DIST USER 'user'@'host';

示例

将 ‘sharding’@’%’ 的用户从系统中移除。

4. 查看用户 #

SHOW DIST USERS 语句用于查看用户列表。

SHOW DIST USERS

参数说明

示例

查看全部用户,仅查询授权主机和用户名,不展示用户密码。

SHOW DIST USERS;

5. 查看当前用户 #

Sselect current_user() 语句用于查看当前用户。

select current_user()  

参数说明

示例

查看当前用户,仅查询授权主机和用户名,不展示用户密码。

mysql>  select current_user() ;
+----------------+
| current_user() |
+----------------+
| encrypt1@%     |
+----------------+
1 row in set (0.01 sec)

角色管理 #

语法描述类型
CREATE DIST ROLE roleName;创建角色RAL
DROP DIST ROLE roleName;删除角色RAL
GRANT DIST role TO ‘user’@‘host’;赋予用户角色RAL
REVOKE DIST role FROM ‘user’@‘host’;取消用户角色RAL
SHOW DIST ROLES;查看角色RAL

1. 创建角色示例 #

CREATE DIST ROLE 语句用于创建角色。

CREATE DIST ROLE roleName;

示例

创建一个名为 ‘dml_only’ 的角色。

CREATE DIST ROLE dml_only;

2. 删除角色示例 #

DROP DIST ROLE 语句用于删除角色。

DROP DIST ROLE roleName;

示例

将 ‘dml_only’ 的用户从系统中移除。

DROP DIST ROLE dml_only;

3. 赋予用户角色 #

GRANT DIST role TO 'user'@'host';

示例

将角色 dml_only 赋予给用户 ‘sharding’@’%’。

GRANT DIST dml_only TO 'sharding'@'%';

将全局 SELECT、INSERT、UPDATE 和 DELETE 权限赋予给角色 dml_only。

GRANT DIST INSERT,SELECT,UPDATE,DELETE TO dml_only;

4. 取消用户角色 #

REVOKE DIST role FROM 'user'@'host';

示例

撤销赋予用户 ‘sharding’@’%’ 的 dml_only 角色。

REVOKE DIST dml_only FROM 'sharding'@'%';

5. 查看角色列表 #

SHOW DIST ROLES 语句用于查看角色列表。

SHOW DIST ROLES;

参数说明

示例

查看已创建的全部角色名称。

SHOW DIST ROLES;

赋予与撤销权限 #

语法描述类型
GRANT DIST SELECT to ‘user’@‘host’;赋予全局权限RAL
GRANT DIST privileges ON . to ‘user’@‘host’;赋予权限(所有对象)RAL
GRANT DIST privileges ON schema.* to ‘user’@‘host’;赋予权限(库级)RAL
GRANT DIST privileges ON schema.table to ‘user’@‘host’;赋予权限(表级)RAL
GRANT DIST privileges(column name) ON schema.table to ‘user’@‘host’;赋予权限(列级)RAL
REVOKE DIST ALL FROM ‘user’@‘host’;撤销所有权限RAL
REVOKE DIST privileges FROM ‘user’@‘host’;撤销全局权限RAL
REVOKE DIST privileges ON . FROM ‘user’@‘host’;撤销权限(所有对象)RAL
REVOKE DIST privileges ON schema.* FROM ‘user’@‘host’;撤销权限(库级)RAL
REVOKE DIST privileges ON schema.table FROM ‘user’@‘host’;撤销权限(表级)RAL
REVOKE DIST privileges(column name) ON schema.table FROM ‘user’@‘host’;撤销权限(列级)RAL
SHOW DIST GRANTS FOR ‘user’@‘host’;查看用户权限RAL

1. 赋予全局权限 #

GRANT DIST privileges 语句用于向用户或角色授权。

GRANT DIST SELECT to 'user'@'host';

示例

将全局 SELECT 权限授予用户 ‘sharding’@’%’。

GRANT DIST SELECT to 'sharding'@'%';

2. 赋予权限(所有对象)示例 #

GRANT DIST privileges ON *.* to 'user'@'host';

示例

将所有逻辑库的 SELECT 和 INSERT 权限授予用户 ‘sharding’@’%’。

GRANT DIST SELECT, INSERT ON *.* TO 'sharding'@'%';

3. 赋予权限(库级) #

GRANT DIST privileges ON schema.* to 'user'@'host';

示例

将逻辑库 sharding_db 的 SELECT 和 INSERT 权限授予用户 ‘sharding’@’%’。

GRANT DIST SELECT, INSERT ON sharding_db.* TO 'sharding'@'%';

4. 赋予权限(表级) #

GRANT DIST privileges ON schema.table to 'user'@'host';

示例

将逻辑表 sharding_db.t_order 的 SELECT 和 INSERT 权限授予用户 ‘sharding’@’%’。

GRANT DIST SELECT, INSERT ON sharding_db.t_order TO 'sharding'@'%';

5. 赋予权限(列级) #

GRANT DIST privileges(column name)  ON schema.table to 'user'@'host';

示例

将逻辑表 sharding_db.t_order 中指定列的 SELECT 权限授予用户 ‘sharding’@’%’。

GRANT DIST SELECT (order_id), SELECT (user_id, status) ON sharding_db.t_order TO 'sharding'@'%';

6. 撤销所有权限 #

REVOKE DIST privileges 语句用于撤销对用户或角色的授权。

REVOKE DIST ALL FROM 'user'@'host';

示例

撤销用户 ‘sharding’@’%’ 的全局 SELECT 授权。

REVOKE DIST ALL FROM 'sharding'@'%';

7. 撤销全局权限 #

REVOKE DIST privileges FROM 'user'@'host';

示例

撤销用户 ‘sharding’@’%’ 的全局 SELECT 授权。

REVOKE DIST SELECT FROM 'sharding'@'%';

撤销角色 dml_only 的全局 SELECT、INSERT、UPDATE 和 DELETE 授权。

REVOKE DIST INSERT,SELECT,UPDATE,DELETE FROM dml_only;

8. 撤销权限(所有对象) #

REVOKE DIST privileges ON *.* FROM 'user'@'host';

示例

撤销用户 ‘sharding’@’%’ 在逻辑库 sharding_db 的 SELECT 和 INSERT 授权。

REVOKE DIST SELECT, INSERT ON *.* FROM 'sharding'@'%';

9. 撤销权限(库级) #

REVOKE DIST privileges ON schema.* FROM 'user'@'host';

示例

撤销用户 ‘sharding’@’%’ 在逻辑库 sharding_db 的 SELECT 和 INSERT 授权。

REVOKE DIST SELECT, INSERT ON sharding_db.* FROM 'sharding'@'%';

10. 撤销权限(表级) #

REVOKE DIST privileges ON schema.table FROM 'user'@'host';

示例

撤销用户 ‘sharding’@’%’ 在逻辑辑表 sharding_db.t_order 的 SELECT 和 INSERT 授权。

REVOKE DIST SELECT, INSERT ON sharding_db.t_order FROM 'sharding'@'%';

11. 撤销权限(列级) #

REVOKE DIST privileges(column name)  ON schema.table FROM 'user'@'host';

示例

撤销用户 ‘sharding’@’%’ 在逻辑表 sharding_db.t_order 中指定列的 SELECT 授权。

REVOKE DIST SELECT (order_id), SELECT (user_id, status) ON sharding_db.t_order FROM 'sharding'@'%';

12. 查看用户权限 #

SHOW DIST GRANTS FOR 'user'@'host';

示例

查看用户 ‘sharding’@’%’ 的权限

SHOW DIST GRANTS FOR 'sharding'@'%' ;