注册
达梦表内数据行权限访问控制
技术分享/ 文章详情 /

达梦表内数据行权限访问控制

流水无情 2023/06/07 1775 1 0

在实际项目中,可能存在其它系统需要访问我们自己系统数据的情况,但由于安全原因我们并不能把自己表内数据全部暴漏给别人,此时需要对表内数据做权限控制。

场景模拟
数据库用户TEST有一张 employee 表,表结构、测试数据如下:
3a0bcd16aba3fcd991011a88fd48239.png
其中每条数据都有一个 department_id ,此时有其它系统想要访问 employee 表中属于自己 department_id 的数据(比如:要查找 department_id = '001' 的数据)
解决方案:
1,在 TEST 中创建视图,该视图只能查看 department_id = '001' 的数据
2,创建一个新用户 SUBTEST ,授予该用户查看步骤1中新建视图的权限
3,新用户 SUBTEST 新建同义词 employee 指向步骤1中新建视图

实际操作
1,在 TEST 中创建视图 v_employee
7c0eb4092121d985cf4e9e8c6541057.png
查询看看

image.png
此时该视图已经满足了其它用户的数据访问需求

2,创建一个新用户 SUBTEST 并授权

grant SELECT on "TEST"."v_employee" to "SUBTEST";
grant CREATE SYNONYM to "SUBTEST";

SUBTEST 用户查询TEST 中视图 v_employee
image.png
此时 SUBTEST 已经可以查看到视图中的数据

3,新用户 SUBTEST 新建同义词 employee
5bb03af807d1642b171f6f4f7b2185a.png

4,测试结果
912d9300e86ccb1d58cb8407d98387e.png
此时 SUBTEST 可以直接使用原表名查询数据,这个时候我们只需要将新建的 SUBTEST 用户和密码告诉其它系统,其它系统可以使用原表名查询自己需要的数据。

评论
后发表回复

作者

文章

阅读量

获赞

扫一扫
联系客服