达梦数据库如何对模式赋予权限

        考虑一个使用场景,建立五个用户 (USER01~USER05) 分别对应五个模式 (TEST01~TEST05),并且只拥有对应模式的权限,每个模式给不同的业务系统使用。查询SQL文档得知,DM不支持直接对模式授权。那么该如何设计?

方案一

        DM数据库创建用户默认会创建为这个用户创建同名的模式。可以把这个模式作为业务系统使用的模式。当然前提是用户名与模式名相同。

        如果用户名和模式不相同呢?创建模式时可以指定模式所属用户,这样用户就有这个模式的权限了。

CREATE SCHEMA TEST01 AUTHORIZATION USER01;
CREATE SCHEMA TEST01 AUTHORIZATION USER02;
CREATE SCHEMA TEST03 AUTHORIZATION USER03;
CREATE SCHEMA TEST04 AUTHORIZATION USER04;
CREATE SCHEMA TEST05 AUTHORIZATION USER05;

方案二

        分别建立用户和模式,然后将模式下对象的权限赋给用户。

--建立用户
CREATE USER USER01 IDENTIFIED BY 123456789;
CREATE USER USER02 IDENTIFIED BY 123456789;
CREATE USER USER03 IDENTIFIED BY 123456789;
CREATE USER USER04 IDENTIFIED BY 123456789;
CREATE USER USER05 IDENTIFIED BY 123456789;
--建立模式
CREATE SCHEMA TEST01;
CREATE SCHEMA TEST01;
CREATE SCHEMA TEST03;
CREATE SCHEMA TEST04;
CREATE SCHEMA TEST05;
--将模式下的对象权限赋给用户
--1.拼写查询得到SQL语句
SELECT 'GRANT ALL PRIVILEGES ON '||OWNER||'.'||TABLE_NAME||' TO USER01;'
FROM DBA_TABLES
WHERE OWNER IN ('TEST01');
--2.执行授权语句
GRANT ALL PRIVILEGES ON TEST01.T_TEST TO USER01;

不同数据库的模式权限

数据库关于模式权限
ORACLE模式和用户一对一,没有模式级别的授权
DM模式和用户一对多,同ORACLE一样没有模式级别的授权
PostgreSQL模式和用户多对多,可以对模式整体授权
MySQL没有模式的概念

 更多技术文章参见达梦社区:https://eco.dameng.com

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值