opengauss权限需求

编程入门 行业动态 更新时间:2024-10-23 09:31:22

opengauss<a href=https://www.elefans.com/category/jswz/34/1771295.html style=权限需求"/>

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;

更多推荐

opengauss权限需求

本文发布于:2023-11-15 21:51:00,感谢您对本站的认可!
本文链接:https://www.elefans.com/category/jswz/34/1606883.html
版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系,我们将在24小时内删除。
本文标签:权限   需求   opengauss

发布评论

评论列表 (有 0 条评论)
草根站长

>www.elefans.com

编程频道|电子爱好者 - 技术资讯及电子产品介绍!