普通用户在postgres数据库下创建对象失败
问题描述
- 普通用户创建schema失败
命令:CREATE SCHEMA my_schema;
报错:ERROR: permission denied for database postgres

- 普通用户创建表失败
命令:CREATE TABLE my_table(id int PRIMARY KEY,name VARCHAR(30));
ERROR: permission denied for schema public

解决方法
云数据库TaurusDB for PostgreSQL禁止普通用户在postgres数据库创建对象,您可以使用root用户在postgres数据库下创建对象。
root用户权限说明
TaurusDB for PostgreSQL开放了root用户权限。为了便于用户使用TaurusDB for PostgreSQL并保证在无操作风险的前提下,为root用户在特定场景进行了提权。
各个版本root用户提权情况见下表。
|
版本 |
是否提权 |
提权起始版本 |
|---|---|---|
|
pgcore16 |
是 |
16.4 |
root提权涉及以下场景:
- 创建事件触发器
- 创建包装器
- 创建逻辑复制-发布
- 创建逻辑复制-订阅
- 查询和维护复制源
- 创建replication用户
- 创建全文索引模板以及Parser
- 对系统表执行vacuum
- 对系统表执行analyze
- 创建插件
- 授予用户某个对象的权限
