一、通过授权进行设置。

通过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,亦是如此。 

 

Logo

一站式 AI 云服务平台

更多推荐