更新时间:2025-08-19 GMT+08:00
创建只读用户最佳实践
RDS for PostgreSQL中没有创建只读用户的语法,可以通过用户权限以及角色属性设置来达到只读用户的效果,本章节提供创建只读用户的方法。
操作步骤
- 创建一个用户名为readonly,密码为readonlypasswd的用户。
CREATE USER readonly WITH ENCRYPTED PASSWORD 'readonlypasswd';
- 使用root用户执行以下SQL,设置readonly用户默认事务为只读。
ALTER USER readonly SET default_transaction_read_only=on;
- 使用root用户执行以下SQL,将schema(以public为例)的USAGE的权限赋予readonly用户。
GRANT USAGE ON SCHEMA public to readonly;
- 使用root用户执行以下SQL,将public下所有表的SELECT权限赋予readonly用户。
GRANT SELECT ON ALL TABLES IN SCHEMA public TO readonly;
- 将public这个schema下新创建的表的SELECT权限默认赋给readonly用户。
- 如果需要在某个数据库下设置只读用户readonly,则需要对该数据库下所有的schema重复执行3~5。
- 如果需要对某个实例设置全局的只读用户readonly,则需要分别连接每个数据库,执行步骤6。