在对数据库权限进行分配时,对于某些人员只能给部分的访问和操作权限。那么在DM数据库中我们该如何去配置相应的权限呢? 我们下面来进行详细解析。 我们的测试环境是DM8。
1、我们首先来建立一个测试用户test;
SQL>create user test identified by test123456;
2、接下来看一下TEST用户相应的角色和权限。
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>Commit;
SQL>Create table test.t2(id int,name varchar(20));
SQL>Insert into test.t2 values(2,’test’);
SQL>Commit;
4、使用test用户登录数据库,访问相应的表。
[dmdba@NeoKylin6-dm8 ~]$ disql test/test123456
SQL> select * from sysdba.t1;
SQL> select * from t2;
Test用户只能访问本用户下的t2表,不能访问sysdba用户下的t1表。
5、下面我们收回test的public权限,以sysdba用户登录执行。
SQL>Revoke public from test;
我们再查询一下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用户下的表。
文章来源:https://www.toymoban.com/news/detail-489655.html
达梦数据库 - 新一代大型通用关系型数据库 | 达梦在线服务平台文章来源地址https://www.toymoban.com/news/detail-489655.html
到了这里,关于达梦数据库权限管理的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!