postgresql - 有没有办法继承当前用户不拥有的表

标签 postgresql database-permissions

我在我的 PostgreSQL 数据库中创建了两个用户。比方说 migrationdev

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

ERROR:  must be owner of relation A

如果我不想更改表所有者,是否有其他方法可以让它工作?

最佳答案

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

CREATE ROLE tab_owner NOLOGIN NOINHERIT;

GRANT tab_owner TO dev, migration;

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

SET ROLE tab_owner;

然后该表由该角色拥有。

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

关于postgresql - 有没有办法继承当前用户不拥有的表,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/55155080/

相关文章:

postgresql - Postgres 中的不变性

sql - 在 View 列中包含一组行

sql - 在sql中保留=左边的列有什么区别

postgresql - 如何使用 pg :psql in heroku?

sql-server - Sql服务器执行权限;申请权限失败

sql-server - SQL Server 存储过程可以以比其调用者更高的权限执行吗?

sql - Postgres : COPY TO error

sql - 如何在 postgresql 中更新表

database - 在 Docker 中启动和填充 Postgres 容器

postgresql - super 用户 nologin 角色?