在 CentOS 上“设置 pgAdmin 权限”通常分为 两个层面:
下面按常见场景说明。
在 CentOS 上通常以:
httpd + pgadmin4(系统包)python venv + gunicornpgAdmin 4 本身有「管理员账号」:
# 初始化管理员账号
pgadmin4-setup.sh
# 或
python setup.py
✅ 权限隔离通过 pgAdmin 用户实现,不是 Linux 用户
如果多人共用服务器:
# pgAdmin 配置目录
/var/lib/pgadmin
/var/log/pgadmin
chown -R apache:apache /var/lib/pgadmin
chmod 700 /var/lib/pgadmin
pgAdmin 只是 PostgreSQL 的客户端,真正权限在 PostgreSQL。
CREATE ROLE appuser LOGIN PASSWORD 'pwd';
GRANT CONNECT ON DATABASE mydb TO appuser;
GRANT USAGE ON SCHEMA public TO appuser;
GRANT SELECT ON ALL TABLES IN SCHEMA public TO appuser;
ALTER ROLE appuser NOSUPERUSER NOCREATEDB NOCREATEROLE;
在 pgAdmin 中:
appuser 登录pg_hba.conf:
host mydb appuser 192.168.1.0/24 md5
firewall-cmd --add-port=5432/tcp --permanent
firewall-cmd --reload
REVOKE DELETE ON ALL TABLES IN SCHEMA public FROM appuser;
GRANT SELECT ON ALL TABLES IN SCHEMA public TO readonly;
CentOS 上 pgAdmin 的“权限” = pgAdmin 登录账号 + PostgreSQL 角色权限
如果你能告诉我:
我可以给你更精确的步骤。