一、通过授权进行设置。
通过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 版权协议,转载请附上原文出处链接和本声明。