grant
我需要给当前用户(" userA ")以允许他更改由另一个用户(" userC ")所属的对象所有者的选项/技巧是什么?
更确切地说,联系表由userC拥有,当我执行以下查询以将所有者更改为userB时,与userA连接:
alter table contact owner to userB;
Run Code Online (Sandbox Code Playgroud)
我收到此错误:
ERROR: must be owner of relation contact
Run Code Online (Sandbox Code Playgroud)
但是userA通常都需要权限(" 在模式上创建 "授权选项应该足够了):
grant select,insert,update,delete on all tables in schema public to userA;
grant select,usage,update on all sequences in schema public to userA;
grant execute on all functions in schema public to userA;
grant references, trigger on all tables in schema public to userA;
grant create on schema public to userA;
grant usage on schema public to userA;
Run Code Online (Sandbox Code Playgroud)
THKS
命令行输出:
root@server:~# psql -U userA myDatabase
myDataBase=>\dt contact
List of relations
Schema | Name | Type | Owner
-------+---------+----------+---------
public | contact | table | userC
(1 row)
myDataBase=>
myDataBase=>alter table contact owner to userB;
ERROR: must be owner of relation public.contact
myDataBase=>
Run Code Online (Sandbox Code Playgroud)
gud*_*ier 85
感谢Mike的评论,我重新阅读了文档,并且我意识到我当前的用户(也就是已经拥有创建权限的userA )并不是新拥有角色的直接/间接成员 ......
所以解决方案非常简单,我刚刚完成了这笔补助:
grant userB to userA;
Run Code Online (Sandbox Code Playgroud)
那是所有人;-)
另一个要求是在更改对象之前,对象必须由用户userA拥有...
dob*_*oje 12
这解决了我的问题:更改所有权的示例更改表语句。
ALTER TABLE databasechangelog OWNER TO arwin_ash;
ALTER TABLE databasechangeloglock OWNER TO arwin_ash;
Run Code Online (Sandbox Code Playgroud)
归档时间: |
|
查看次数: |
79317 次 |
最近记录: |