Linux中pgAdmin的权限管理如何操作
导读:Linux下 pgAdmin 权限管理实操指南 一 概念与准备 权限分为两层: pgAdmin Web 界面的登录与授权(决定谁能登录 pgAdmin、能管理哪些服务器); PostgreSQL 数据库的对象权限(决定登录到数据库后能执...
Linux下 pgAdmin 权限管理实操指南
一 概念与准备
- 权限分为两层:
- pgAdmin Web 界面的登录与授权(决定谁能登录 pgAdmin、能管理哪些服务器);
- PostgreSQL 数据库的对象权限(决定登录到数据库后能执行哪些操作,如 SELECT/INSERT/UPDATE/DELETE 等)。
- 在 Debian/Ubuntu 上,安装后可运行 /usr/pgadmin4/bin/setup-web.sh 设置 pgAdmin 主密码,随后通过 http://服务器IP/pgadmin4 访问;在 CentOS/RHEL 上可用 yum/dnf 安装 pgAdmin4。以上完成后即可在浏览器登录 pgAdmin 进行管理。
二 在 pgAdmin 中管理登录用户与角色
- 登录 pgAdmin 后,展开左侧 Servers,右键目标服务器 → Properties → Security,点击 Add 新建登录账号,设置用户名、密码,并选择角色(如 Administrator/Editor/Viewer),保存后生效。
- 在对象树中右键数据库/模式/表/视图等 → Properties → Permissions,点击 Add,选择用户或角色,分配 SELECT/INSERT/UPDATE/DELETE/ALL 等权限并保存。
- 权限变更通常即时生效;如需批量或回滚,可在 SQL 编辑器中执行相应 GRANT/REVOKE 语句。
三 在 PostgreSQL 中授予数据库对象权限
- 通过 psql 以 postgres 用户登录,创建用户/角色并授予权限(示例):
-- 创建角色(可登录)与数据库 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; - 要点:PostgreSQL 的最终访问权限由数据库侧 ACL 决定,pgAdmin 只是便捷入口;必要时在 SQL 中精确授予与回收。
四 系统层面安全与访问控制
- 运行与文件权限:为降低风险,可使用系统服务账户运行 pgAdmin,并收紧目录权限,例如:
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 - 网络访问:若启用了防火墙,放行 pgAdmin 端口(默认 5050):
sudo firewall-cmd --permanent --add-port=5050/tcp sudo firewall-cmd --reload - 安全建议:仅在内网开放访问或限制来源 IP,遵循 最小权限原则,并定期审计与备份配置。
五 验证与常见问题
- 验证步骤:
- 使用新建的数据库账号登录 pgAdmin 并尝试连接目标库;
- 在对象树中执行只读/写入操作,确认是否按授权生效;
- 若异常,打开 SQL 编辑器执行相应 GRANT/REVOKE 并复核对象 Permissions 页签。
- 常见问题:
- 新建账号连不上:检查 pg_hba.conf 的认证方式(如 md5/peer/scram-sha-256)与客户端 IP/网段是否允许;
- 看不到表或无权限:确认已对目标 schema 授予 USAGE,并对表/序列授予相应权限,且设置了 ALTER DEFAULT PRIVILEGES 以覆盖后续新建对象;
- 权限不生效:以对象所有者或超级用户复核 ACL,并在 SQL 中直接验证。
声明:本文内容由网友自发贡献,本站不承担相应法律责任。对本内容有异议或投诉,请联系2913721942#qq.com核实处理,我们将尽快回复您,谢谢合作!
若转载请注明出处: Linux中pgAdmin的权限管理如何操作
本文地址: https://pptw.com/jishu/768344.html
