语法 | 描述 | 类型 |
---|---|---|
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'@'%' ;