温馨提示×

centos下pgadmin如何管理数据库用户

小樊
39
2025-12-25 12:38:31
栏目: 智能运维

在 CentOS 上使用 pgAdmin 管理 PostgreSQL 用户

一 环境准备与登录

  • 安装与启动 pgAdmin(Web 模式,推荐):
    • 添加官方仓库并安装:sudo dnf install -y https://download.postgresql.org/pub/repos/yum/reporpms/EL-$(rpm -E %{rhel})-x86_64/pgdg-redhat-repo-latest.noarch.rpm
    • 安装组件:sudo dnf install -y pgadmin4-web
    • 初始化:sudo /usr/pgadmin4/bin/pgadmin4-web-setup.sh(设置管理员邮箱与密码)
    • 启动与开机自启:sudo systemctl start pgadmin4 && sudo systemctl enable pgadmin4
    • 访问地址:http://<服务器IP>/
  • 连接目标 PostgreSQL:
    • 在 pgAdmin 左侧右键 Servers → Create → Server,填写名称、主机(IP 或域名)、端口(默认 5432)、维护数据库(如 postgres)、用户名(如 postgres)与密码,保存连接。

二 创建与编辑数据库用户

  • 创建登录角色(用户):
    • 左侧展开 Servers → 选中已连接的服务器 → 展开 Login/Group Roles → 右键 Create → Role…
    • General:填写 Name(如 newuser
    • Definition:设置 Password(建议勾选加密保存)
    • Privileges:按需勾选角色属性(如 Can loginCreate databasesCreate roles 等)
    • 保存后,该登录角色即可用于连接数据库
  • 修改用户属性与权限:
    • 在 Login/Group Roles 中右键目标用户 → Properties
    • General:可修改用户名
    • Definition:可重设密码
    • Privileges / Membership:调整数据库级权限,或将用户加入某个角色以继承权限。

三 授予与回收对象权限

  • 授予数据库权限(示例):
    • 展开目标数据库(如 mydb)→ 右键 Properties → 切换到 PrivilegesUsers 页签
    • 选择或添加目标用户,勾选需要的权限(如 CONNECTCREATE、以及对模式/表的 SELECT/INSERT/UPDATE/DELETE 等)
    • 保存生效
  • 回收权限(示例 SQL,可在 pgAdmin 的 Query Tool 执行):
    • REVOKE ALL PRIVILEGES ON DATABASE mydb FROM newuser;
  • 说明:
    • 对象级权限(表、视图、序列等)通常在具体对象上设置,也可通过角色进行批量授权与回收。

四 角色与成员管理

  • 创建角色(用于权限分组):
    • Login/Group Roles → Create → Role…,设置角色名与通用权限(如 Can loginCreate databases 等)
  • 将用户加入角色(继承权限):
    • 在目标用户 Properties → Membership → Add → 选择角色 → Save
  • 适用场景:开发组、只读组、运维组等按职责划分权限,便于统一维护。

五 安全与常见问题

  • 安全建议:
    • 遵循最小权限原则,日常业务使用普通用户,超级用户(如 postgres)仅用于管理
    • 在 Server → Properties → Connections 勾选 Use SSL 加密传输
    • 定期审查用户与角色权限,及时回收不再使用的账户
  • 远程访问与防火墙:
    • 若 pgAdmin 与 PostgreSQL 不在同一主机,需确保网络可达并开放 5432/TCP
    • 启用 firewalld 时放行 HTTP(80/443)与 PostgreSQL(5432):
      • sudo firewall-cmd --permanent --add-service=http
      • sudo firewall-cmd --permanent --add-port=5432/tcp
      • sudo firewall-cmd --reload
  • 故障排查要点:
    • 无法登录 PostgreSQL:检查 pg_hba.conf 的认证方式(常见为 md5scram-sha-256)、监听地址与端口(postgresql.conf 中 listen_addressesport
    • 修改认证方式或监听后需重启 PostgreSQL 生效
    • SELinux 环境下,必要时调整布尔值(如允许 httpd 访问网络)以排除访问受限问题。

0