KESR6强制访问控制

测试数据库是否支持强制访问控制

修改kingbase.conf参数

shared_preload_libraries值里添加sysmac

sysmac.enable_mac=on

重启数据库

1、SYSTEM创建用户

Drop user u1;

Drop user u2;

Drop user u3;

CREATE USER U1 WITH SUPERUSER PASSWORD '12345678ab';

CREATE USER U2 WITH SUPERUSER PASSWORD '12345678ab';

CREATE USER U3 WITH SUPERUSER PASSWORD '12345678ab';

2、SYSTEM 创建测试表,授予权限

CREATE TABLE TU_INFO(ID INT, NAME CHAR(10));

GRANT ALL ON TU_INFO TO U1;

GRANT ALL ON TU_INFO TO U2;

GRANT ALL ON TU_INFO TO U3;

3、以SSO创建策略

CALL SYSMAC.CREATE_POLICY ('P1','P1_COLUMN',FALSE);

4、以SSO创建等级

CALL SYSMAC.CREATE_LEVEL('P1','L1',10);

CALL SYSMAC.CREATE_LEVEL('P1','L2',20);

CALL SYSMAC.CREATE_LEVEL('P1','L3',30);

5、创建策略名

CALL SYSMAC.CREATE_LABEL('P1','L1:',100);

CALL SYSMAC.CREATE_LABEL('P1','L2:',200);

CALL SYSMAC.CREATE_LABEL('P1','L3:',300);

6、SSO对表应用策略

CALL SYSMAC.APPLY_TABLE_POLICY('P1', 'PUBLIC','TU_INFO');

7、SSO设置用户表级范围

CALL SYSMAC.SET_USER_LABELS('P1','U1', 'l1:', 'l1:','l1:', 'l1:', 'l1:');

CALL SYSMAC.SET_USER_LABELS('P1','U2', 'l3:', 'l3:','l2:', 'l2:', 'l2:');

CALL SYSMAC.SET_USER_LABELS('P1','U3', 'l3', 'l3','l3', 'l3', 'l3');

8、U1、U2、U3用户分别登录插入数据

U1:

INSERT INTO TU_INFO values(1);

INSERT INTO TU_INFO values(2);

INSERT INTO TU_INFO values(3);

U2:

INSERT INTO TU_INFO values(4);

INSERT INTO TU_INFO values(5);

INSERT INTO TU_INFO values(6);

U3:

INSERT INTO TU_INFO values(7);

INSERT INTO TU_INFO values(8);

INSERT INTO TU_INFO values(9);

9、分别打开三个终端

查询 select * from TU_INFO;

U1更新 update TU_INFO SET ID=2 where id=1;

U1会话查询:

U2会话查询:

U3会话查询:

U2更新 update TU_INFO SET ID=10 where id=5;

用户U1只能查询和修改自已插入的元组。

用户U2可以查询U1和U2的元组,不能修改U1的元组,可以修改U2和U3的元组。

用户U3可以查询U1、U2、U3的元组,不能修改U1和U2的元组。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值