Linux下 pgAdmin 权限管理实操指南
一 概念与准备
二 在 pgAdmin 中管理登录用户与角色
三 在 PostgreSQL 中授予数据库对象权限
-- 创建角色(可登录)与数据库
CREATE ROLE app_user WITH LOGIN PASSWORD 'StrongPass!';
CREATE DATABASE app_db OWNER app_user;
-- 连接至目标库后授予 schema 与对象权限
\c app_db
-- 常用:授予 public schema 下现有与未来表的读写
GRANT USAGE ON SCHEMA public TO app_user;
GRANT SELECT, INSERT, UPDATE, DELETE ON ALL TABLES IN SCHEMA public TO app_user;
ALTER DEFAULT PRIVILEGES IN SCHEMA public
GRANT SELECT, INSERT, UPDATE, DELETE ON TABLES TO app_user;
-- 如涉及自增,授予序列权限
GRANT USAGE, SELECT ON ALL SEQUENCES IN SCHEMA public TO app_user;
ALTER DEFAULT PRIVILEGES IN SCHEMA public
GRANT USAGE, SELECT ON SEQUENCES TO app_user;
-- 只读示例(只读角色 + 用户加入角色)
CREATE ROLE readonly NOLOGIN;
GRANT USAGE ON SCHEMA public TO readonly;
GRANT SELECT ON ALL TABLES IN SCHEMA public TO readonly;
ALTER DEFAULT PRIVILEGES IN SCHEMA public GRANT SELECT ON TABLES TO readonly;
GRANT readonly TO app_user;
四 系统层面安全与访问控制
sudo adduser --system --no-create-home --group pgadmin_svc
sudo chown -R root:pgadmin /usr/pgadmin4
sudo chmod -R 750 /usr/pgadmin4
sudo chmod 600 /etc/pgadmin4/pgadmin4.conf
sudo chown root:root /etc/pgadmin4/pgadmin4.conf
sudo firewall-cmd --permanent --add-port=5050/tcp
sudo firewall-cmd --reload
五 验证与常见问题