Debian 上 pgAdmin 权限设置
一 权限模型与前置准备
二 操作系统层访问控制
sudo adduser pgadminsudo passwd pgadminsudo usermod -aG pgadmin your_userlocation / { proxy_pass http://127.0.0.1:5050; proxy_set_header Host $host; proxy_set_header X-Real-IP $remote_addr; proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for; proxy_set_header X-Forwarded-Proto $scheme; }三 PostgreSQL 层权限设置
CREATE ROLE readonly WITH LOGIN PASSWORD 'ro_pass';CREATE ROLE app_rw WITH LOGIN PASSWORD 'rw_pass';CREATE DATABASE appdb OWNER app_rw;CREATE SCHEMA app AUTHORIZATION app_rw;ALTER DEFAULT PRIVILEGES IN SCHEMA app GRANT SELECT ON TABLES TO readonly;ALTER DEFAULT PRIVILEGES IN SCHEMA app GRANT ALL ON TABLES TO app_rw;ALTER DEFAULT PRIVILEGES IN SCHEMA app GRANT USAGE, CREATE ON SCHEMAS TO app_rw;GRANT CONNECT ON DATABASE appdb TO readonly, app_rw;GRANT USAGE ON SCHEMA app TO readonly, app_rw;GRANT SELECT, INSERT, UPDATE, DELETE ON ALL TABLES IN SCHEMA app TO app_rw;GRANT USAGE, SELECT ON ALL SEQUENCES IN SCHEMA app TO app_rw;REVOKE SELECT ON ALL TABLES IN SCHEMA public FROM user1;\du+SELECT table_catalog, table_schema, table_name, privilege_type FROM information_schema.table_privileges WHERE grantee = 'user1';REASSIGN OWNED BY user1 TO new_role;DROP OWNED BY user1;四 常见场景与最小权限示例
readonly;USAGE 与对表的 SELECT;对序列的 USAGE, SELECT;必要时对视图 SELECT。app_rw;USAGE, CREATE;对表的 SELECT, INSERT, UPDATE, DELETE;对序列的 USAGE, SELECT, UPDATE。REASSIGN OWNED 转移其名下对象,再 DROP OWNED 清理残留权限,最后删除角色。五 安全加固与运维建议
\du+、表级权限查询;