opengauss权限需求

创建角色 "u_rts" 并授予对数据库 "rts_opsdb" 的只读权限:

CREATE ROLE u_rts LOGIN PASSWORD 'Cloud@1234';
GRANT CONNECT ON DATABASE rts_opsdb TO u_rts;
GRANT USAGE ON SCHEMA public TO u_rts;
GRANT SELECT ON ALL TABLES IN SCHEMA public TO u_rts;

创建四个用户并使其继承角色 "u_rts" 的权限,并设置密码:

CREATE USER rts_ops PASSWORD 'ops@1234';
CREATE USER rts_eod PASSWORD 'eod@1234';
CREATE USER rts_rctp PASSWORD 'rctp@1234';

GRANT u_rts TO rts_ops;
GRANT u_rts TO rts_eod;
GRANT u_rts TO rts_rctp;

 在opengauss上不需要执行这一步骤,但是在pg上需要执行。

opengauss特性,在哪个数据库下创建用户名,默认会生成和用户名一样的schema,所以这里opengauss不需要再重复创建同样的schema。

需要去掉该步骤

创建对应的模式(schema)并分配相应的权限:
CREATE SCHEMA rts_rms;
CREATE SCHEMA rts_rtp;
CREATE SCHEMA rts_ris;
CREATE SCHEMA rts_des;

需求是这样的,rts_all用户拥有rts_des,rts_ris,rts_rtp,rts_rms所有用户下rts_des,rts_ris,rts_rtp,rts_rms模式的create权限,整理需要注意的是,rts_des用户必须给schema rts_des 可读可写的权限,并且rts_all必须是超级用户,不然rts_all也无法拥有对schema rts_des的可读可写的权限。

总结如下:

1、不是超级用户rts_all, 同时授予rts_ris和rts_all用户create权限,rts_all也无法在schema rts_ris创建对象 。
2、超级用户rts_all,必须授予rts_ris用户create权限(但是可以不用授予rts_all用户create权限),rts_all才能在schema rts_ris创建对象 。

如下所示截图,对于超级用户rts_all,不给create权限,也能在schema rts_ris创建对象

如下图所示,在schema rts_ris创建对象。

需求如下:

-- rts_rms 只能访问 rts_des 模式的对象,并拥有只读权限

切换到rts_des用户下为rts_rms授予访问权限
rtsdb=> \c - rts_des

GRANT USAGE on SCHEMA rts_des to rts_rms;
GRANT SELECT ON ALL TABLES IN SCHEMA rts_rms to rts_rms;
alter default privileges for role rts_des in schema rts_des grant select on tables to rts_rms;

-- rts_rtp 只能访问 rts_des 模式的对象,并拥有只读权限

切换到rts_des用户下为rts_rtp授予访问权限
rtsdb=> \c - rts_des

GRANT USAGE on SCHEMA rts_des to rts_rtp;
GRANT SELECT ON ALL TABLES IN SCHEMA rts_des to rts_rtp;
alter default privileges for role rts_des in schema rts_des grant select on tables to rts_rtp;

-- rts_ris 只能访问 rts_des 和 rts_rtp 模式的对象,并拥有只读权限

切换到rts_des用户下为rts_ris授予访问权限
rtsdb=> \c - rts_des

GRANT USAGE on SCHEMA rts_des to rts_ris;
GRANT SELECT ON ALL TABLES IN SCHEMA rts_des to rts_ris;
alter default privileges for role rts_des in schema rts_des grant select on tables to rts_ris;

切换到rts_des用户下为rts_rtp授予访问权限
rtsdb=> \c - rts_des

GRANT USAGE on SCHEMA rts_des to rts_rtp;
GRANT SELECT ON ALL TABLES IN SCHEMA rts_des to rts_rtp;
alter default privileges for role rts_des in schema rts_des grant select on tables to rts_rtp;

-- rts_des 只能访问 rts_ris、rts_rtp 和 rts_rms 模式的对象,并拥有只读权限

切换到rts_ris用户下为rts_des授予访问权限
rtsdb=> \c - rts_ris

GRANT USAGE on SCHEMA rts_ris to rts_des;
GRANT SELECT ON ALL TABLES IN SCHEMA rts_ris to rts_des;
alter default privileges for role rts_ris in schema rts_ris grant select on tables to rts_des;

切换到rts_rtp用户下为rts_des授予访问权限
rtsdb=> \c - rts_rtp

GRANT USAGE on SCHEMA rts_rtp to rts_des;
GRANT SELECT ON ALL TABLES IN SCHEMA rts_rtp to rts_des;
alter default privileges for role rts_rtp in schema rts_rtp grant select on tables to rts_des;

切换到rts_rms用户下为rts_des授予访问权限
rtsdb=> \c - rts_rms

GRANT USAGE on SCHEMA rts_rms to rts_des;
GRANT SELECT ON ALL TABLES IN SCHEMA rts_rms to rts_des;
alter default privileges for role rts_rms in schema rts_rms grant select on tables to rts_des;

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值