我在PostgreSQL数据库中创建了两个用户。假设migration
和dev
。
我与用户A
创建了一个表migration
。然后,我创建表B
,该表以用户A
的身份继承表dev
,但是失败。
ERROR: must be owner of relation A
如果我不想更改表所有者,还有另一种方法可以使它起作用吗?
答案 0 :(得分:1)
一种方法是使用两个用户都是成员的角色:
CREATE ROLE tab_owner NOLOGIN NOINHERIT;
GRANT tab_owner TO dev, migration;
现在migration
创建表时,它首先运行:
SET ROLE tab_owner;
然后表归角色所有。
用户dev
在创建表的继承子项之前执行相同的操作。