在工作中,大家都会遇到这样的场景,出于对数据库访问安全的考虑,对于某些用户我们不想让他们看到全库的表,只想给他们特定表的访问权限。那么在DM数据库中我们该如何去配置相应的权限呢? 我们下面来进行详细解析。 我们的测试环境是DM8。
SQL>create user test identified by test123456;SQL>Select grantee,granted_role from dba_role_privs where grantee=‘TEST’;默认是public角色。查看一下public角色所拥有的权限。SQL>Select grantee,privilege from dba_sys_privs where grantee=‘PUBLIC’;Public角色默认拥有当前用户下所有表的insert,update,delete,select,grant……权限
3、我们来建两个测试表。在sysdba用户下创建一个T1表,test用户下创建T2表。SQL>Create table sysdba.t1 (id int,name varchar(20));SQL>Insert into sysdba.t1 values (1,’sysdba’);SQL>Create table test.t2(id int,name varchar(20));SQL>Insert into test.t2 values(2,’test’);[dmdba@NeoKylin6-dm8 ~]$ disql test/test123456SQL> select * from sysdba.t1;Test用户只能访问本用户下的t2表,不能访问sysdba用户下的t1表。5、下面我们收回test的public权限,以sysdba用户登录执行。SQL>Revoke public from test;我们看到test用户的public权限已被收回。再以test用户登录进行查询,发现test.t2表的访问权限已经没有了,sysdba.t1表的访问权限也已经没有了。我们给test用户配置相应的表的权限,比如我们只给test用户查看sysdba.t1的权限:SQL>Grant select on sysdba.t1 to test;用test用户登录,我们可以查询sysdba.t1表的数据,但是却查询不了test.t2表的数据,因为我们没有赋给test用户,test.t2的查询权限,那怕t2表是test用户下的表。
最后修改时间:2020-06-12 18:07:09
文章转载自
达梦大数据,如果涉嫌侵权,请发送邮件至:contact@modb.pro进行举报,并提供相关证据,一经查实,墨天轮将立刻删除相关内容。