如何创建一个pgsql只读账户给all database all scheam select 权限
这个方式行的通,但是好几个schema里面。public比较特殊,竟然能create table ,好奇怪啊
如果revoke create on schema public from public的话,别的普通用户就不能创建了,dba权限还是可以创建。
伤脑筋啊。
@虔门: 网上多搜索看看,肯定有解决方案的哈。
@KingMi: 嗯
--创建用户
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;
这种方式测过 不行的。。