Aliyun Rds Pgsql Permission Best Practise

建议点击 查看原文 查看最新内容。

原文链接: https://typonotes.com/posts/2023/07/14/aliyun-rds-pgsql-permission-best-practise/

注意: 在 PgSQL 中, 用户是基于 实例 的, 权限是基于 数据表/数据库 的。 换句话说, 创建的用户是可以看见所有数据库和数据表的, 但是看不到其具体内容。

创建只读用户

0. 登陆/切换 目标数据库

直接登陆目标数据库

1
2
## login
psql -u root -d dbname ;

或者登陆后切换到目标数据库

1
2
3
## 切换

sql> \c dbname;

1. 创建用户

必须要切换到目标数据库后, 才能进行授权。 授权行为只在当前数据库空间下执行。

1
CREATE USER app_user_ro with password 'app_user_pass_123'; 

2. 授权用户权限

1
2
3
4
5
-- 授权用户访问 SELECT 只读权限
GRANT SELECT ON ALL TABLES IN SCHEMA public TO app_user_ro;

-- 授予将来新表读取权限
ALTER DEFAULT PRIVILEGES IN SCHEMA public GRANT SELECT ON TABLES TO app_user_ro;

https://help.aliyun.com/document_detail/352149.html?spm=a2c4g.257684.0.i0#task-2143299