文档首页/ 云数据库 RDS_云数据库 RDS for PostgreSQL/ 常见问题/ 数据库权限/ 普通用户在postgres数据库下创建对象失败
更新时间:2025-11-03 GMT+08:00
分享

普通用户在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

解决方法

云数据库 RDS for PostgreSQL禁止普通用户在postgres数据库创建对象,您可以使用root用户在postgres数据库下创建对象。

root用户可在postgres数据库下创建对象需要内核版本为支持root提权的版本,具体请参见root用户权限说明

root用户权限说明

RDS for PostgreSQL开放了root用户权限。为了便于用户使用RDS for PostgreSQL并保证在无操作风险的前提下,为root用户在特定场景进行了提权。

各个版本root用户提权情况见下表。

表1 root用户权限说明

版本

是否提权

提权起始版本

pgcore9

不涉及

pgcore10

不涉及

pgcore11

11.11

pgcore12

12.6

pgcore13

13.2

pgcore14

14.4

pgcore15

15.4

pgcore16

16.2

pgcore17及以上

不涉及

root提权涉及以下场景:

  • 创建事件触发器
  • 创建包装器
  • 创建逻辑复制-发布
  • 创建逻辑复制-订阅
  • 查询和维护复制源
  • 创建replication用户
  • 创建全文索引模板以及Parser
  • 对系统表执行vacuum
  • 对系统表执行analyze
  • 创建插件
  • 授予用户某个对象的权限

相关文档