有没有办法继承不属于当前用户的 table

Is there a way to inherits table which is not owned by current user

我在我的 PostgreSQL 数据库中创建了两个用户。假设 migrationdev.

我创建了一个 table A 用户 migration。然后我创建 table B 作为用户 dev 继承 table A,但是失败了。

ERROR:  must be owner of relation A

如果我不想更改 table 所有者,是否有其他方法可以使它生效?

一种方法是使用两个用户都是其成员的角色:

CREATE ROLE tab_owner NOLOGIN NOINHERIT;

GRANT tab_owner TO dev, migration;

现在当 migration 创建一个 table 时,它首先运行:

SET ROLE tab_owner;

然后 table 归该角色所有。

用户 dev 在创建 table 的继承子项之前执行相同的操作。