无法删除PostgreSQL角色

时间:2017-12-09 00:58:02

标签: postgresql roles privileges

昨天我创建了一个用户从PostgreSQL进行备份。我向这个用户授予了select,然后我注意到这个名字并没有写好。问题是我试图使用命令行擦除用户并且响应是,因为我做了一些补助:

ERROR:  role "dump_user" cannot be dropped because some objects depend on it

长话短说,我使用pgadmin擦除了这个用户,现在我遇到了问题,因为当我想创建一个新表时,它会告诉:

ERROR:  role 313898229 was concurrently dropped

我谢谢,313898229是pg_authid表中dump_user的oid,我试图创建一个新用户并分配这个oid,但是postgres说我无法修改系统ID" oid&#34 ;

有没有办法可以永久删除此用户?

1 个答案:

答案 0 :(得分:0)

如果你想要的只是a different name

ALTER ROLE dump_user RENAME TO better_name;

现在太迟了。在删除角色之前,您应该运行:

REASSIGN OWNED BY pg_dump TO postgres; -- postgres being default superuser role

在此处阅读详细信息:

您的错误消息:

  

错误:角色313898229被同时删除

定义为in the source code here。看起来像两个交易之间的竞争条件。但是你省略了相关的细节。