首页 新闻 赞助 找找看

如何创建一个pgsql只读账户?

0
悬赏园豆:100 [已解决问题] 解决于 2021-07-21 14:40

如何创建一个pgsql只读账户给all database all scheam select 权限

一二三·的主页 一二三· | 初学一级 | 园豆:130
提问于:2021-07-20 12:23
< >
分享
最佳答案
0
收获园豆:100
KingMi | 小虾三级 |园豆:1344 | 2021-07-20 17:50

这个方式行的通,但是好几个schema里面。public比较特殊,竟然能create table ,好奇怪啊

一二三· | 园豆:130 (初学一级) | 2021-07-20 17:53

如果revoke create on schema public from public的话,别的普通用户就不能创建了,dba权限还是可以创建。
伤脑筋啊。

一二三· | 园豆:130 (初学一级) | 2021-07-21 11:14

@虔门: 网上多搜索看看,肯定有解决方案的哈。

KingMi | 园豆:1344 (小虾三级) | 2021-07-21 14:39

@KingMi: 嗯

一二三· | 园豆:130 (初学一级) | 2021-07-21 14:40
其他回答(1)
0

--创建用户
CREATE USER readonly WITH ENCRYPTED PASSWORD '123456';

--设置用户默认开启只读事务
ALTER USER readonly SET default_transaction_read_only = ON;

--将schema中usage权限赋予给readonly用户,访问所有已存在的表
GRANT usage ON SCHEMA xyh TO readonly;

--将schema中表的查询权限赋予给readonly用户,访问所有已存在的表
GRANT SELECT ON ALL tables IN SCHEMA xyh TO readonly;

--未来访问xyh模式下所有新建的表:
ALTER DEFAULT privileges IN SCHEMA xyh GRANT SELECT ON tables TO readonly;

马宗元 | 园豆:202 (菜鸟二级) | 2021-07-20 17:49

这种方式测过 不行的。。

支持(0) 反对(0) 一二三· | 园豆:130 (初学一级) | 2021-07-20 17:52
清除回答草稿
   您需要登录以后才能回答,未注册用户请先注册