pgAdmin在Ubuntu上如何进行用户管理
导读:在 Ubuntu 上使用 pgAdmin 进行用户管理 一 管理范围与准备 明确两类“用户”: pgAdmin 账户:用于登录 pgAdmin Web 界面,进行服务器与数据库的图形化管理。 PostgreSQL 角色/登录名:用于连接...
在 Ubuntu 上使用 pgAdmin 进行用户管理
一 管理范围与准备
- 明确两类“用户”:
- pgAdmin 账户:用于登录 pgAdmin Web 界面,进行服务器与数据库的图形化管理。
- PostgreSQL 角色/登录名:用于连接和操作数据库,是实际的对象权限主体。
- 准备与连接:
- 安装并初始化 pgAdmin(桌面模式或服务器模式)。服务器模式可用包 pgadmin4-web 并执行 /usr/pgadmin4/bin/setup-web.sh 完成初始化,随后通过浏览器访问如 http://服务器IP/pgadmin4 登录。
- 在 pgAdmin 左侧添加服务器连接(主机、端口 5432、维护数据库 postgres、用户名如 postgres),确保能正常连接目标 PostgreSQL。
二 在 pgAdmin 中管理 PostgreSQL 角色与登录权限
- 创建登录名(用户)
- 在左侧展开 Servers → 目标服务器 → Login/Group Roles,右键选择 Create → Login/Group Role…,在 General 填写名称,在 Definition 设置密码,在 Privileges 勾选如 Can login / Create databases / Create roles 等,保存。
- 创建角色并授予成员
- 新建一个“角色”(Group Role)用于权限分组,保存后在目标用户 Properties → Membership 中 Add 该角色,实现权限的批量授予与回收。
- 授予数据库与模式权限
- 对具体库:展开 Databases → 目标数据库 → Properties → Permissions,为用户/角色添加如 CONNECT、CREATE 等权限。
- 对模式与表:展开 Schemas → public → Tables,批量设置 SELECT/INSERT/UPDATE/DELETE 等权限(可按表/视图/序列分别设置)。
- 常用授权示例(可在 Query Tool 执行)
- 创建只读用户并授予对某库 public 模式的只读:
CREATE ROLE readonly WITH LOGIN PASSWORD 'ro_pass'; GRANT CONNECT ON DATABASE mydb 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 ROLE app_user WITH LOGIN PASSWORD 'app_pass'; GRANT CONNECT ON DATABASE mydb TO app_user; 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; - 回收权限:
REVOKE ALL PRIVILEGES ON DATABASE mydb FROM app_user; REVOKE ALL PRIVILEGES ON SCHEMA public FROM app_user; REVOKE ALL PRIVILEGES ON ALL TABLES IN SCHEMA public FROM app_user; - 说明:PostgreSQL 中“用户”与“角色”概念统一,带 LOGIN 属性的角色即可作为登录名使用。
- 创建只读用户并授予对某库 public 模式的只读:
三 在 pgAdmin 中管理多用户账户与访问控制
- 添加服务器连接供团队成员使用
- 每个成员可在其 pgAdmin 中通过 File → Add New Server 添加同一 PostgreSQL 实例的连接,填写名称、主机、端口、数据库与凭据,实现多人共享同一数据库的管理。
- 精细化访问控制建议
- 为不同成员/团队创建不同的 Login/Group Roles,通过 Membership 与对象 Permissions 实施最小权限原则;避免使用 超级用户 进行日常访问。
- 连接安全
- 在服务器属性 Connections 中启用 SSL,并使用强口令与定期轮换策略,降低凭据泄露风险。
四 常见问题与排错
- 新建用户连不上数据库
- 确认 pg_hba.conf 对相应用户/网段使用 md5 或 scram-sha-256 认证,并重启 PostgreSQL;必要时在 postgresql.conf 中设置 listen_addresses 允许远程连接。
- 权限不生效
- 区分 数据库级、模式级、表级 权限;对新建对象需设置 默认权限(ALTER DEFAULT PRIVILEGES),否则后续对象不会自动继承。
- 忘记 pgAdmin 管理员密码
- 服务器模式可通过重运行 /usr/pgadmin4/bin/setup-web.sh 重新设置;桌面模式在首选项或配置文件中按向导重置(注意备份配置)。
声明:本文内容由网友自发贡献,本站不承担相应法律责任。对本内容有异议或投诉,请联系2913721942#qq.com核实处理,我们将尽快回复您,谢谢合作!
若转载请注明出处: pgAdmin在Ubuntu上如何进行用户管理
本文地址: https://pptw.com/jishu/772728.html
