基于角色的访问控制

TiDB 的基于角色的访问控制 (RBAC) 系统的实现类似于 MySQL 8.0 的 RBAC 系统。TiDB 兼容大部分 MySQL RBAC 系统的语法。

本文档主要介绍 TiDB 基于角色的访问控制相关操作及实现。

角色访问控制相关操作

角色是一系列权限的集合。用户可以创建角色、删除角色、将权限赋予角色;也可以将角色授予给其他用户,被授予的用户在启用角色后,可以得到角色所包含的权限。

创建角色

创建角色 app_developer,app_read 和 app_write:

 

CREATE ROLE 'app_developer', 'app_read', 'app_write';

角色名的格式和规范可以参考 TiDB 用户账户管理

角色会被保存在 mysql.user 表中,角色名称的主机名部分(如果省略)默认为 '%'。如果表中有同名角色或用户,角色会创建失败并报错。创建角色的用户需要拥有 CREATE ROLE 或 CREATE USER 权限。

授予角色权限

为角色授予权限和为用户授予权限操作相同,可参考 TiDB 权限管理

为 app_read 角色授予数据库 app_db 的读权限:

 

GRANT SELECT ON app_db.* TO 'app_read'@'%';

为 app_write 角色授予数据库 app_db 的写权限:

 

GRANT INSERT, UPDATE, DELETE ON app_db.* TO 'app_write'@'%';

为 app_developer 角色授予 app_db 数据库的全部权限:

 

GRANT ALL ON app_db.* TO 'app_developer';

将角色授予给用户

假设有一个用户拥有开发者角色,可以对 app_db 的所有操作权限;另外有两个用户拥有 app_db 的只读权限;还有一个用户拥有 app_db 的读写权限。

首先用 CREATE USER 来创建用户。

 

CREATE USER 'dev1'@'localhost' IDENTIFIED BY 'dev1pass'; CREATE USER 'read_user1'@'localhost' IDENTIFIED BY 'read_user1pass'; CREATE USER 'read_user2'@'localhost' IDENTIFIED BY 'read_user2pass'; CREATE USER 'rw_user1'@'localhost' IDENTIFIED BY 'rw_user1pass';

然后使用 GRANT 授予用户对应的角色。

 

GRANT

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

每天读点书学堂

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值