在管理用户前,需先完成pgAdmin的安装与基础配置,确保服务正常运行。
sudo apt update
sudo apt install curl gpg gnupg2 software-properties-common apt-transport-https lsb-release ca-certificates
curl -fsSL https://www.pgadmin.org/static/packages_pgadmin_org.pub | sudo gpg --dearmor -o /usr/share/keyrings/packages-pgadmin-org.gpg
echo "deb [signed-by=/usr/share/keyrings/packages-pgadmin-org.gpg] https://ftp.postgresql.org/pub/pgadmin/pgadmin4/apt/$(lsb_release -cs) pgadmin4 main" | sudo tee /etc/apt/sources.list.d/pgadmin4.list
sudo apt update
sudo apt install pgadmin4
sudo /usr/pgadmin4/bin/setup-web.sh
按提示输入邮箱(作为用户名)和密码,完成初始化。sudo systemctl start pgadmin4
sudo systemctl enable pgadmin4 # 设置开机自启
http://your_server_ip:5050(若修改过端口,替换为实际端口),使用管理员邮箱和密码登录。pgAdmin的运行与访问需依托Debian系统的用户和组权限体系,以下是常用操作:
pgadmin_user),无需登录shell:sudo adduser --system --no-create-home --shell /bin/false pgadmin_user
old_user):sudo deluser old_user
sudo passwd pgadmin_user
pgadmin组(或其他自定义组),便于统一管理权限:sudo usermod -aG pgadmin pgadmin_user
/usr/pgadmin4)及配置文件的安全性:sudo chown -R root:pgadmin /usr/pgadmin4 # 所有者设为root,所属组设为pgadmin
sudo chmod -R 750 /usr/pgadmin4 # 所有者可读写执行,组用户可读执行,其他用户无权限
sudo chmod 600 /etc/pgadmin4/pgadmin4.conf # 配置文件仅root可读写
pgAdmin通过图形界面和SQL命令实现细粒度的用户与权限管理,覆盖从Web访问到数据库操作的权限控制。
创建用户:
pgAdmin的管理员用户通过setup-web.sh脚本创建,普通用户可通过以下步骤添加:
① 登录pgAdmin后,点击顶部导航栏File → Add New Server(或直接点击左侧“Servers”节点下的“+”号);
② 在“General” tab中填写服务器名称(如“PostgreSQL-Prod”),点击“Save & Close”;
③ 右键点击左侧“Servers”下的目标服务器,选择Properties;
④ 切换至Security tab,点击Add按钮,输入用户名(如dev_user)和密码,勾选角色(如“Browser”仅查看、“Editor”可编辑),点击“Save”保存。
编辑/删除用户:
右键点击左侧“Servers”下的目标服务器,选择Properties → Security tab,选中需编辑的用户,点击Edit(修改信息)或Delete(移除用户)。
创建数据库用户:
① 展开左侧“Servers”→目标服务器→Databases,右键点击需授权的数据库(如mydb),选择Properties;
② 切换至Permissions tab,点击Add按钮,输入用户名(如db_user),勾选所需权限(如SELECT、INSERT、UPDATE、DELETE),点击“Save”。
快速分配权限:
在“Permissions” tab中,点击ACL Permissions Quick Wizard(位于页面底部),通过勾选方式批量分配权限(如“授予所有权限”“仅授予读取权限”),简化操作。
管理角色权限:
角色是一组权限的集合,可批量分配给用户。操作路径:
① 展开左侧“Servers”→目标服务器→Login/Group Roles,右键点击“Roles”节点,选择Create → Role;
② 输入角色名(如report_reader),在“Privileges” tab中勾选角色权限(如LOGIN、CREATEDB),点击“Save”;
③ 将用户添加到角色:右键点击目标用户,选择Properties → Membership tab,点击Add,选择角色(如report_reader),点击“Save”。
若需更灵活的权限设置,可通过pgAdmin的SQL Editor执行SQL命令:
CREATE USER db_user WITH PASSWORD 'strong_password';
CREATE ROLE report_reader LOGIN; -- 创建可登录的角色
GRANT CONNECT ON DATABASE mydb TO report_reader; -- 授予数据库连接权限
GRANT USAGE ON SCHEMA public TO report_reader; -- 授予模式使用权限
GRANT SELECT ON ALL TABLES IN SCHEMA public TO report_reader; -- 授予所有表的读取权限
GRANT SELECT, INSERT ON TABLE mydb.orders TO db_user;
REVOKE DELETE ON TABLE mydb.orders FROM db_user;
\du+ -- 查看所有角色及权限
SELECT table_catalog, table_schema, table_name, privilege_type
FROM information_schema.table_privileges
WHERE grantee = 'db_user'; -- 查看指定用户的表级权限
DROP权限)。ufw限制pgAdmin访问IP,仅允许可信网络访问:sudo ufw allow from trusted_ip to any port 5050/tcp
sudo ufw enable
/etc/pgadmin4/pgadmin4.conf中的ENABLE_HTTPS = True,并指定证书路径),保护数据传输安全。sudo apt update && sudo apt upgrade及时更新pgAdmin及PostgreSQL,修复安全漏洞。