达梦数据库设置用户只读

  • Post author:
  • Post category:其他



一、通过授权进行设置。


通过select * from dba_roles;可以查看达梦包含以下角色。



创建用户:

create user test identified by Dameng123;

查看默认权限:

SELECT * FROM DBA_ROLE_PRIVS WHERE GRANTEE = 'TEST';


默认创建完用户授予public、soi角色的权限。






测试默认用户建表写权限





默认角色是没有写创建对象的权限,所以只读用户可以通过角色控制。只授予public、soi角色即可。


二、通过DDL设置。


通过DDL设置只读并查询用户包含的角色。

alter user test read only;

SELECT * FROM DBA_ROLE_PRIVS WHERE GRANTEE = 'TEST';



发现DDL设置的只读用户角色没有改变,虽然具备相关角色和权限,但是用户只读,相关角色没有回收,但是此用户创建的事务属于只读事务。为此,DDL设置只读并非通过角色控制,而是控制用户事务只读进行控制。


DDL


恢复设置:

alter user test not read only;



发现之前授予的角色不变,而此用户创建的事务为可读写事务,此类方法同理oracle,亦是如此。




版权声明:本文为weixin_42018955原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接和本声明。