昨天我创建了一个用户从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 ;
有没有办法可以永久删除此用户?
答案 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。看起来像两个交易之间的竞争条件。但是你省略了相关的细节。