Postgresql创建只读用户权限

阅读 96

2022-04-22

在pg数据库中创建只读用户可以采用如下方法。大体实现就是将特定schema的相关权限赋予只读用户。

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

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

--设置用户登录权限

ALTER USER readonly WITH login;

--将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;

 

--查数据库

select * from pg_database;

--查模式

select exists(select 1 from pg_namespace where nspname='xyh');

精彩评论(0)

0 0 举报