达梦数据库权限管理

在对数据库权限进行分配时,对于某些人员只能给部分的访问和操作权限。那么在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用户下的表。

达梦数据库 - 新一代大型通用关系型数据库 | 达梦在线服务平台

  • 0
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值