达梦角色权限管理

本文详细介绍了达梦数据库中角色权限的管理,包括如何创建角色、赋予系统权限、测试权限生效、回收权限以及对象权限的管理。通过实例演示了权限的授予、回收和传播效果,有助于理解数据库权限控制机制。
部署运行你感兴趣的模型镜像

角色权限

  1. 创建角色

--设置用创建角色role1

create role role1;

 

select * from dba_roles where role = 'ROLE1';可以查到刚增加的角色role1

 

  1. 赋予系统权限给角色

--给角色role1赋予创建表权限并可以将自己拥有的权限转授给别的用户,自身没有拥有的权限无法授权给别的用户

grant create table to role1 with admin option;

 

select * from dba_sys_privs where grantee = 'ROLE1';可以查到刚赋予的系统权限create table

 

  1. 系统权限测试

我们可以测试一下把这个角色赋予之前创建的用户看是否生效。如下操作

    1. 执行:grant role1 to ryh with admin option;

 

select a.grantee name,b.grantee role,b.privilege from dba_role_privs a,dba_sys_privs b where a.grantee = 'RYH' and b.grantee = 'ROLE1';可以查到ryh用户赋予了role1角色拥有对应的两个系统权限。

    1. 执行:insert into test_1(id,name) values(1,'abcd');

 

如图可以看到建表成功。

 

    1. 执行:insert into test_1(id,name) values(2,'cccc');

 

如图所示报没有test_1对象插入权限。因为ryh用户赋予的是role1角色,而role1角色没有插入权限因此报错。

 

    1. 赋予插入权限grant insert table to role1;

 

select a.grantee name,b.grantee role,b.privilege from dba_role_privs a,dba_sys_privs b where a.grantee = 'RYH' and b.grantee = 'ROLE1';可以查到ryh用户赋予了role1角色,而role1新增了insert table系统权限。

 

    1. 重新插入刚才的数据insert into test_1(id,name) values(2,'cccc');

 

此时可以成功插入进去

 

  1. 回收系统权限
    1. 回收用户角色

--回收用户ryh01的vti角色权限

revoke vti from ryh01;

 

 

原本ryh01用户有vit,resource两个角色,执行回收语句后回收vti以后系只剩下resource角色。

 

    1. 回收用户系统权限

--回收用户ryh的insert table系统权限

revoke insert table from ryh01;

    1. 回收角色系统权限

revoke insert table from role1;

 

 

原本角色role1有insert table系统权限,执行回收语句后insert table系统权限就没有了。

 

  1. 查看用户角色

--回查看当前用户角色

select * from dba_role_privs where grantee = 'RYH01';

 

 

  1. 查看角色系统权限

select * from dba_sys_privs where grantee = 'ROLE1';

 

  1. 查询当前视图权限

select * from dba_tab_privs;

 

  1. 查看系统权限编号

select * from sysgrants;

 

  1. 赋予对象权限

--赋予ryh用户下test_1表查询权限并可以将该权限赋予其它用户

grant select on ryh.test_1 to ryh01 with grant option;

 

  1. 回收对象权限

--回收ryh用户下test_1表查询权限

revoke select on ryh.test_1 from ryh01 cascade;

这里赋予的时候如果使用了grant则回收的时候必须使用cascade。否则回收无效。如图所示:

 

 

会报回收权限无效。因为with grant option用于对象授权时,被授予的用户也可把此对象权限授予其他用户或角色,不同的是当管理员收回用with grant option授权的用户对象权限时,权限会因传播而失效,如:grant select on 表名 to A with grant option;,A用户把此权限授予B,但管理员收回A的权限时,B的权限也会失效,但管理员不可以直接收回B的SELECT ON TABLE 权限。

给一个用户授予系统权限带上with admin option 时,此用户可把此系统权限授予其他用户或角色,但收回这个用户的系统权限时,这个用户已经授予其他用户或角色的此系统权限不会因传播无效,如授予A系统权限create session with admin option,然后A又把create session权限授予B,但管理员收回A的create session权限时,B依然拥有create session的权限,但管理员可以显式收回B create session的权限,即直接revoke create session from B.

 

您可能感兴趣的与本文相关的镜像

Stable-Diffusion-3.5

Stable-Diffusion-3.5

图片生成
Stable-Diffusion

Stable Diffusion 3.5 (SD 3.5) 是由 Stability AI 推出的新一代文本到图像生成模型,相比 3.0 版本,它提升了图像质量、运行速度和硬件效率

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值