在 Linux 上,PgAdmin 本身不管理 PostgreSQL 权限,它只是一个管理工具。真正的“权限”是在 PostgreSQL 数据库里通过角色(role/user)来设置的,PgAdmin 只是用图形界面帮你操作。
下面按常见场景给你说明。
在 Linux 上 PostgreSQL 默认有一个超级用户:
postgres
你可以用它登录,但不建议日常使用。
在 Linux 终端执行:
sudo -u postgres psql
-- 创建用户
CREATE USER myuser WITH PASSWORD 'mypassword';
-- 创建数据库
CREATE DATABASE mydb OWNER myuser;
-- 给用户权限
GRANT ALL PRIVILEGES ON DATABASE mydb TO myuser;
localhost 或 127.0.0.15432ALTER USER myuser WITH SUPERUSER;
⚠️ 不建议给普通用户
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;
GRANT INSERT, UPDATE, DELETE ON ALL TABLES IN SCHEMA public TO myuser;
-- 表权限
GRANT SELECT, INSERT ON TABLE users TO myuser;
-- 序列权限(自增ID)
GRANT USAGE, SELECT ON SEQUENCE users_id_seq TO myuser;
在 PgAdmin 里:
检查:
sudo nano /etc/postgresql/*/main/pg_hba.conf
确保有:
host all all 127.0.0.1/32 md5
改完重启:
sudo systemctl restart postgresql
执行:
\dn
\dp
确认 schema 和表权限。
PgAdmin 权限 = PostgreSQL 用户权限
在 Linux 用psql建用户、授权,PgAdmin 只是界面。
如果你能告诉我:
我可以给你更精确的命令。