温馨提示×

linux pgadmin权限怎么设

小樊
38
2026-09-18 13:42:43
栏目: 智能运维

在 Linux 上,PgAdmin 本身不管理 PostgreSQL 权限,它只是一个管理工具。真正的“权限”是在 PostgreSQL 数据库里通过角色(role/user)来设置的,PgAdmin 只是用图形界面帮你操作。

下面按常见场景给你说明。


一、PgAdmin 登录权限(连接数据库)

1. PostgreSQL 用户(角色)

在 Linux 上 PostgreSQL 默认有一个超级用户:

postgres

你可以用它登录,但不建议日常使用

2. 创建新用户并授权

在 Linux 终端执行:

sudo -u postgres psql
-- 创建用户
CREATE USER myuser WITH PASSWORD 'mypassword';

-- 创建数据库
CREATE DATABASE mydb OWNER myuser;

-- 给用户权限
GRANT ALL PRIVILEGES ON DATABASE mydb TO myuser;

3. 在 PgAdmin 中添加连接

  • 打开 PgAdmin
  • 右键 Servers → Create → Server
  • 填:
    • Host: localhost127.0.0.1
    • Port: 5432
    • Username / Password:上面创建的用户

二、PgAdmin 看到的权限(来自 PostgreSQL)

1. 超级用户(superuser)

ALTER USER myuser WITH SUPERUSER;

⚠️ 不建议给普通用户

2. 只读用户(常见)

CREATE USER readonly WITH PASSWORD '123456';
GRANT CONNECT ON DATABASE mydb TO readonly;
GRANT USAGE ON SCHEMA public TO readonly;
GRANT SELECT ON ALL TABLES IN SCHEMA public TO readonly;

3. 只写 / 读写用户

GRANT INSERT, UPDATE, DELETE ON ALL TABLES IN SCHEMA public TO myuser;

三、Schema / 表级权限

-- 表权限
GRANT SELECT, INSERT ON TABLE users TO myuser;

-- 序列权限(自增ID)
GRANT USAGE, SELECT ON SEQUENCE users_id_seq TO myuser;

四、PgAdmin 中查看/修改权限

在 PgAdmin 里:

  • 数据库 → 右键 → Properties → Privileges
  • 表 → 右键 → Properties → Privileges
  • 角色 → 右键 → Properties → Privileges / Role

五、常见问题

1. PgAdmin 连不上

检查:

sudo nano /etc/postgresql/*/main/pg_hba.conf

确保有:

host    all    all    127.0.0.1/32    md5

改完重启:

sudo systemctl restart postgresql

2. 权限不生效

执行:

\dn
\dp

确认 schema 和表权限。


六、一句话总结

PgAdmin 权限 = PostgreSQL 用户权限
在 Linux 用 psql 建用户、授权,PgAdmin 只是界面。

如果你能告诉我:

  • 你是 服务器权限问题 还是 数据库用户权限
  • 用的是 PgAdmin 4 还是老版本

我可以给你更精确的命令。

0