网站论坛 备案,网站建设商务,wordpress支付插件,珠海网站建设熊掌号什么是基于角色的用户管理#xff1f; 基于角色的用户管理(Role-Based Access Control#xff0c;简称RBAC)是通过为角色赋予权限#xff0c;用户通过成为适当的角色而得到这些角色的权限。 角色是一组权限的抽象。 使用RBAC可以极大简化对权限的管理。
什么是RBAC模型 基于角色的用户管理(Role-Based Access Control简称RBAC)是通过为角色赋予权限用户通过成为适当的角色而得到这些角色的权限。 角色是一组权限的抽象。 使用RBAC可以极大简化对权限的管理。
什么是RBAC模型
为角色赋予适当的权限。
指定用户为相应的角色。 场景介绍
假设有两个SCHEMAs1, s2。
有两组用户
一组用户包括u1, u2可以在s1中查询所有表在s2中更新所有表。另一组用户包括u3, u4可以在s2中查询所有表在s1中更新所有表。 1.使用系统管理员dbadmin连接DWS数据库。
2.复制以下语句在窗口1中执行创建本用例的SCHEMA s1和s2用户u1~u4。
说明
示例中{password}请替换成实际密码。
CREATE SCHEMA s1;
CREATE SCHEMA s2;
CREATE USER u1 PASSWORD {password};
CREATE USER u2 PASSWORD {password};
CREATE USER u3 PASSWORD {password};
CREATE USER u4 PASSWORD {password};3.复制以下语句在窗口1中执行创建对应的s1.t1s2.t1表。
CREATE TABLE s1.t1 (c1 int, c2 int);
CREATE TABLE s2.t1 (c1 int, c2 int);4.复制以下语句在窗口1中执行为表插入数据。
INSERT INTO s1.t1 VALUES (1,2);
INSERT INTO s2.t1 VALUES (1,2);5.复制以下语句在窗口1中执行创建4个角色。分别对应s1的查询权限、s1的更新权限、s2的查询权限、s2的更新权限。
CREATE ROLE rs1_select PASSWORD disable; --s1的查询权限
CREATE ROLE rs1_update PASSWORD disable; --s1的更新权限
CREATE ROLE rs2_select PASSWORD disable; --s2的查询权限
CREATE ROLE rs2_update PASSWORD disable; --s2的更新权限6.复制以下语句在窗口1中执行将SCHEMA s1和s2的访问权限先授予这些角色。
GRANT USAGE ON SCHEMA s1, s2 TO rs1_select, rs1_update,rs2_select, rs2_update;7.复制以下语句在窗口1中执行将具体的权限授予这些角色。
GRANT SELECT ON ALL TABLES IN SCHEMA s1 TO rs1_select; --将s1下的所有表的查询权限授予角色rs1_select
GRANT SELECT,UPDATE ON ALL TABLES IN SCHEMA s1 TO rs1_update; --将s1下的所有表的查询、更新权限授予角色rs1_update
GRANT SELECT ON ALL TABLES IN SCHEMA s2 TO rs2_select; --将s2下的所有表的查询权限授予角色rs2_select
GRANT SELECT,UPDATE ON ALL TABLES IN SCHEMA s2 TO rs2_update; --将s2下的所有表的查询、更新权限授予角色rs2_update8.复制以下语句在窗口1中执行将对应的角色授予对应的用户实现将一组权限授予用户。
GRANT rs1_select, rs2_update TO u1, u2; --u1u2可以对s1的查询权限、对s2的更新权限。
GRANT rs2_select, rs1_update TO u3, u4; --u3u4可以对s2的查询权限、对s1的更新权限。9.复制以下语句在窗口1中执行可以查看指定用户绑定的角色。
\du u1;10.重新打开一个会话窗口2以用户u1连接DWS数据库。
gsql -d gaussdb -h DWS的公网IP -U u1 -p 8000 -r -W {password};11.复制以下语句在窗口2中执行验证用户u1对s1.t1有查询权限而没有更新权限。
SELECT * FROM s1.t1;
UPDATE s1.t1 SET c2 3 WHERE c1 1;12.复制以下语句在窗口2中执行验证用户u1对s2.t1有更新权限。
SELECT * FROM s2.t1;
UPDATE s2.t1 SET c2 3 WHERE c1 1;