在 CentOS 上设置 pgAdmin 的权限,需要先明确你说的是哪种场景,因为 pgAdmin 本身只是 PostgreSQL 的管理工具,真正的权限是在 PostgreSQL 里控制的,pgAdmin 只是界面。
下面按常见情况给你说明。
如果你用的是 pgAdmin 4 Web 版(CentOS 常见):
添加用户:
sudo /usr/pgadmin4/bin/setup-web.sh
或在 Web 界面:
File → Preferences → User Management
⚠️ pgAdmin 用户 ≠ 数据库用户
pgAdmin 看到的权限,其实是 PostgreSQL 的权限。
CREATE ROLE dev_user WITH LOGIN PASSWORD '123456';
GRANT CONNECT ON DATABASE mydb TO dev_user;
GRANT USAGE ON SCHEMA public TO dev_user;
GRANT SELECT, INSERT, UPDATE ON ALL TABLES IN SCHEMA public TO dev_user;
CREATE ROLE readonly LOGIN PASSWORD 'pwd';
GRANT CONNECT ON DATABASE mydb TO readonly;
GRANT USAGE ON SCHEMA public TO readonly;
GRANT SELECT ON ALL TABLES IN SCHEMA public TO readonly;
Servers → 数据库 → 角色 / 表
编辑:
vi /var/lib/pgsql/15/data/pg_hba.conf
添加:
host all all 0.0.0.0/0 md5
vi /var/lib/pgsql/15/data/postgresql.conf
listen_addresses = '*'
重启:
systemctl restart postgresql-15
pgAdmin 不存权限,PostgreSQL 才有权限
pgAdmin 只是“看”和“点”
如果你能告诉我:
我可以给你更精确的操作步骤。