如何授权PostgreSQL用户单库管理权限?

PostgreSQL

1 前言

一个问题,一篇文章,一出故事。
笔者今天需要给PostgreSQL创建一个只读用户,于是整理当前章节。

2 最佳实践

2.1 准备PostgreSQL环境

如何部署Oracle Linux 9.x PostgreSQL?

2.2 创建数据库并授权

2.2.1 使用超级用户登陆

su - postgres
psql

2.2.2 创建数据库

CREATE DATABASE "appDB";

2.2.3 创建应用用户

CREATE USER "appUser" WITH PASSWORD 'appUserPWD';

2.2.4 直接授予数据库超级权限(慎用)

GRANT ALL PRIVILEGES ON DATABASE "appDB" TO "appUser";

2.2.5 设置模式的权限

如何设置PostgreSQL schema权限?


需要注意的是,某些版本可能还需要增加模式的设置,否则创建表会出错。

2.2.6 设置访问控制

vim /etc/pgsql/pg_hba.conf

加入如下配置,

# IPv4 local connections:
host    all             all             127.0.0.1/32            md5
host    all             all             127.0.0.1/32            ident
# IPv6 local connections:
host    all             all             ::1/128                 md5
host    all             all             ::1/128                 ident

配置完成后,你可能需要重载服务使配置生效,

systemctl reload postgresql

2.3 验证操作

2.3.1 用户身份连接数据库

psql -U "appUser" -d "appDB" -h localhost

2.3.2 验证CREATE权限

CREATE TABLE test_table (id INT, name VARCHAR(50));

2.3.3 验证INSERT权限

INSERT INTO test_table VALUES (1, 'test');

2.3.4 验证SELECT 权限

SELECT * FROM test_table;

2.3.5 验证DELETE权限

DELETE FROM test_table WHERE id=1;
没有评论

发表回复

PostgreSQL
如何调整PostgreSQL的连接数?

1 前言 一个问题,一篇文章,一出故事。 最近有用户反馈遇到如下错误, [2026-02-02 15 …

PostgreSQL
如何设置PostgreSQL schema权限?

1 前言 一个问题,一篇文章,一出故事。 笔者今天在一个未经测试的PostgreSQL版本中创建单库 …

PostgreSQL
如何创建PostgreSQL应用数据库并授予读写权限?

1 前言 一个问题,一篇文章,一出故事。 笔者今天需要给PostgreSQL创建一个只读用户,于是整 …