文档首页> 云数据库 RDS> 常见问题> 数据库权限> 普通用户在postgres数据库下创建对象失败
更新时间:2022-04-27 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.2.3

Pgcore13

13.2.0

Pgcore增强版

1.0.17

root提权涉及以下场景:

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

数据库权限所有常见问题

more

close