错误:无法删除角色,因为某些对象依赖于它

Posted

技术标签:

【中文标题】错误:无法删除角色,因为某些对象依赖于它【英文标题】:ERROR: role cannot be dropped because some objects depend on it 【发布时间】:2021-05-27 17:37:42 【问题描述】:

我正在尝试放弃一个角色,但得到了这个: 错误:无法删除角色“xyz”,因为某些对象依赖于它 它显示了哪些对象,它们是服务器上不同数据库上不同模式的表。 有没有一种简单的方法可以删除角色,而不必对所有数据库上的所有表/模式逐个撤销权限?

当我在某处阅读时,我不想放弃拥有,只是放弃角色

谢谢!

【问题讨论】:

见这里Drop role 这有帮助,但是,我正在寻找一种方法来一次删除所有分配给角色的授权,而不是在每个表/模式上逐个删除。 “重新分配拥有”是否会从您尝试删除的角色中删除分配? 【参考方案1】:

没有简单的方法。

一些命令可以节省您的工作:REASSIGN OWNEDREVOKE ALL ON ALL ... IN SCHEMA ...。 但最终,您必须先删除所有这些依赖项,然后才能删除该角色。

不要忘记单个角色可以拥有对象/在许多数据库中拥有权限。

【讨论】:

谢谢,这很有帮助。有没有办法说这样的话:REVOKE ALL PRIVILEGES ON ALL TABLES on all SCHEMA foo FROM someone 不 - 我会告诉你的。

以上是关于错误:无法删除角色,因为某些对象依赖于它的主要内容,如果未能解决你的问题,请参考以下文章

在 PostgresQL 中删除角色

Django,Sqlalchemy:无法删除表 ganalytics_article,因为其他对象依赖于它

无法完成保存。日食错误

PostgreSQL表依赖性跟踪

SQL Server:使用 FK 删除表

无法删除该对象,因为它在 ObjectStateManager 中找不到