mon*_*onu 16 database postgresql
我有一个数据库rndb并创建了一个新表myname_record,默认情况下使用所有者"postgres"创建.在我的程序中,我应该将所有者更改为"rndb",但我错过了它.现在我需要在控制台中执行此操作,因此我使用命令登录
psql=>psql -Urndb
Run Code Online (Sandbox Code Playgroud)
然后使用以下查询更改所有者
rndb=>ALTER TABLE public.myname_record OWNER to rndb;
Run Code Online (Sandbox Code Playgroud)
但它说你必须是所有者来做这个改变.我可以理解,因为我通过rndb登录它给出了这个错误.但实际上如何做出这种改变.
谢谢你的帮助
Abh*_*hek 37
选择具有超级用户权限的角色,然后尝试更改表的所有者.
ALTER TABLE public.myname_record OWNER TO rndb;
Run Code Online (Sandbox Code Playgroud)
您必须以当前表所有者的身份进行连接,而不是以您希望将表所有权更改为的用户的身份进行连接。因为那是postgres:
psql -U postgres
Run Code Online (Sandbox Code Playgroud)
或者
sudo -u postgres psql
Run Code Online (Sandbox Code Playgroud)
按要求。
(此外,超级用户始终可以将表所有权从任何内容更改为任何内容)。