pgAdmin在Linux中的权限管理
一 管理层次与总体思路
二 系统层安全与访问控制
sudo adduser --system --no-create-home --group pgadmin_svcsudo groupadd pgadmin && sudo usermod -aG pgadmin webadminsudo chown -R root:pgadmin /usr/pgadmin4sudo chmod -R 750 /usr/pgadmin4sudo chmod 600 /etc/pgadmin4/pgadmin4.conf && sudo chown root:root /etc/pgadmin4/pgadmin4.confsudo firewall-cmd --permanent --add-port=5050/tcp && sudo firewall-cmd --reload三 pgAdmin应用层账户与角色
sudo /usr/pgadmin4/bin/setup-web.sh 设置 主密码 完成初始化。四 PostgreSQL数据库层权限配置
CREATE USER app_user WITH PASSWORD 'StrongPass!';CREATE ROLE data_reader NOINHERIT;GRANT SELECT ON ALL TABLES IN SCHEMA public TO data_reader;CREATE ROLE report_user INHERIT;GRANT data_reader TO report_user;GRANT EXECUTE ON ALL FUNCTIONS IN SCHEMA public TO report_user;GRANT SELECT, INSERT ON table_name TO role_name;GRANT SELECT(column_name) ON table_name TO role_name;GRANT USAGE ON SCHEMA public TO role_name;五 常见场景与命令示例
CREATE ROLE readonly NOINHERIT;GRANT CONNECT ON DATABASE target_db TO readonly;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;CREATE USER report_user WITH PASSWORD 'pwd'; GRANT readonly TO report_user;CREATE USER app_user WITH PASSWORD 'pwd';CREATE DATABASE app_db OWNER app_user;(或仅授予 CONNECT/CREATE/USAGE 等)REVOKE ALL PRIVILEGES ON DATABASE target_db FROM app_user;、DROP USER app_user;pg_hba.conf 与防火墙对应用网段放行,并在 pgAdmin 新建服务器连接时使用正确的主机与端口。