postgresql - 如何将所有用户对象分配给 db_owner 角色

标签 postgresql

数据库包含 postgres 拥有的用户对象。 要求数据库中的所有用户对象都是角色 db_owner 的所有者。

我尝试使用 将它们重新分配给 db_owner 角色

REASSIGN OWNED BY postgres TO db_owner

但出现错误

ERROR:  cannot reassign ownership of objects owned by role postgres because they are required by the database system

如何将所有用户对象分配给 db_owner 角色?

使用

“x86_64-pc-linux-gnu 上的 PostgreSQL 10.1,由 gcc (Debian 6.3.0-18) 6.3.0 20170516,64 位编译”

数据库从9.3版本恢复

最佳答案

这是不可能的,因为系统对象必须由 bootstrap super 用户(在您的情况下为 postgres)拥有。

你不应该弄乱系统对象。

如果您有 postgres 拥有的非系统对象,请识别它们并一一更改所有权。

如果只是名字打扰了你,你可以将postgres重命名为db_owner,但我认为这不是你想要的。

关于postgresql - 如何将所有用户对象分配给 db_owner 角色,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/51760748/

相关文章:

postgresql - 优化 Postgres 存储过程

sql - 将 SQL 查询转换为 ActiveRecord 查询

django - 查看执行时间很长(一分钟以上)

Django + PostgreSQL : How to reset primary key?

sql - Rails 5 - 如何使用 postgresql 查询?

linux - 使用 postgres 征服 PACS

postgresql - 查找缺失的日期 (PostgreSQL)

java - 在 java (1.5) 中从数据库读取 bytea (blob...) 时遇到问题

node.js - 格式错误的数组文字 : "1" error when updating column in postgres sequelize migration script

sql - 列出列的所有不同值及其计数