如何设置PostgreSQL schema权限?

PostgreSQL

1 前言

一个问题,一篇文章,一出故事。
笔者今天在一个未经测试的PostgreSQL版本中创建单库管理员权限,但是发现用户创建表时报错。

appDB=> CREATE TABLE test_table (id INT, name VARCHAR(50));
ERROR:  permission denied for schema public
LINE 1: CREATE TABLE test_table (id INT, name VARCHAR(50));
                     ^
appDB=>

2 最佳实践

2.1 测试环境

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

2.2 操作步骤

2.2.1 切换到需要授权的数据库

\c "appDB";

2.2.2 授予用户对public模式的创建权限和所有表的操作权限

GRANT CREATE, USAGE ON SCHEMA public TO "appUser";

2.2.3 授予如果后续操作已存在的表的表级权限

GRANT ALL PRIVILEGES ON ALL TABLES IN SCHEMA public TO "appUser";

2.2.4 授予序列权限(如果表有自增字段会用到)

GRANT ALL PRIVILEGES ON ALL SEQUENCES IN SCHEMA public TO "appUser";
没有评论

发表回复

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

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

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

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

PostgreSQL
如何授予PostgreSQL应用数据库所有者权限?

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