温馨提示×

linux pgadmin如何设权限

小樊
40
2026-09-30 14:28:38
栏目: 智能运维

在 Linux 上,PgAdmin 本身不管理 PostgreSQL 权限,它只是一个管理工具。真正的“权限”是在 PostgreSQL 数据库里通过角色(Role)和权限(GRANT)来控制 的。

下面分 两种常见场景 说明。


一、PgAdmin 登录权限(谁能连 PgAdmin / 连哪个库)

1. 创建 PostgreSQL 用户(角色)

sudo -u postgres psql
CREATE ROLE dev_user WITH LOGIN PASSWORD '123456';

2. 限制只能连某个数据库

GRANT CONNECT ON DATABASE mydb TO dev_user;

3. 限制只能从某个 IP 登录(pg_hba.conf)

编辑:

/etc/postgresql/15/main/pg_hba.conf

示例(只允许 192.168.1.100):

host    mydb    dev_user    192.168.1.100/32    md5

重启:

sudo systemctl restart postgresql

二、数据库对象权限(表 / schema / 函数)

1. 授权数据库

GRANT ALL PRIVILEGES ON DATABASE mydb TO dev_user;

2. 授权 schema

GRANT USAGE ON SCHEMA public TO dev_user;

3. 授权表

GRANT SELECT, INSERT, UPDATE ON ALL TABLES IN SCHEMA public TO dev_user;

4. 以后新建表也自动有权限

ALTER DEFAULT PRIVILEGES IN SCHEMA public
GRANT SELECT, INSERT ON TABLES TO dev_user;

5. 只读用户示例

CREATE ROLE readonly LOGIN PASSWORD 'ro123';
GRANT CONNECT ON DATABASE mydb TO readonly;
GRANT USAGE ON SCHEMA public TO readonly;
GRANT SELECT ON ALL TABLES IN SCHEMA public TO readonly;

三、PgAdmin 自身“登录账号”(PgAdmin 4)

如果你说的是 PgAdmin 4 Web 版:

1. 管理员登录

sudo /usr/pgadmin4/bin/setup-web.sh

2. 普通用户

  • 登录 PgAdmin
  • 右上角 → Change Password
  • 管理员可在 Login/Group Roles 里创建用户

⚠️ 注意:
PgAdmin 用户 ≠ PostgreSQL 用户
PgAdmin 用户只是“界面账号”,真正权限还是 PostgreSQL 控制的。


四、常见权限组合示例

需求 做法
只读 SELECT
读写 SELECT, INSERT, UPDATE
DBA SUPERUSER
禁止删表 不授予 DROP
禁止改结构 不授予 CREATE

五、总结一句话

PgAdmin 只是客户端,权限全部在 PostgreSQL 里用 Role + GRANT 控制。

如果你能告诉我:

  • 用的是 PgAdmin 4 桌面版还是 Web 版
  • 想给 开发 / 只读 / 运维 什么权限

我可以直接给你一套可复制的 SQL。

0 踩