Amazon redshift 红移-用户“;xyz";无法删除,因为用户拥有某些对象

Amazon redshift 红移-用户“;xyz";无法删除,因为用户拥有某些对象,amazon-redshift,Amazon Redshift,尝试将用户“xyz”放入红移数据库时,我收到错误消息: 无法删除用户“xyz”,因为该用户拥有某些对象 根据报告: 如果用户拥有某个对象,请先删除该对象或将其所有权更改为其他用户,然后再删除原始用户 我如何知道用户拥有哪些对象(模式、表、视图、UDF?,…) 您可以在pgu表中看到特定用户拥有的表和视图 和pgu视图系统表。 (还有pg_udf,但它不包含任何对特定用户的引用) ) 在我的例子中,用户没有任何表、视图或我能找到的任何其他东西。我正确地猜测,被授予特权意味着用户“拥有”某些东西,因

尝试将用户“xyz”放入红移数据库时,我收到错误消息:

无法删除用户“xyz”,因为该用户拥有某些对象

根据报告:

如果用户拥有某个对象,请先删除该对象或将其所有权更改为其他用户,然后再删除原始用户


我如何知道用户拥有哪些对象(模式、表、视图、UDF?,…)

您可以在pgu表中看到特定用户拥有的表和视图pgu视图系统表。 (还有pg_udf,但它不包含任何对特定用户的引用)


)

在我的例子中,用户没有任何表、视图或我能找到的任何其他东西。我正确地猜测,被授予特权意味着用户“拥有”某些东西,因为我解决了以下问题:

revoke all privileges on database <database> from '<username>'
从“”撤消数据库上的所有权限

在这之后,
drop user
命令开始工作。

由于以下内容以非常简单的方式解决了问题,因此我也将此响应复制到此线程中:


在尝试了无数帖子和帖子的建议后,AWSlab的以视图的形式提供了缓解。它立即识别了剩余的依赖项,从而可以删除有问题的用户。

以下AWS的博文非常清楚地解释了如何解决此问题:


他们的脚本
v\u find\u dropuser\u objs.sql
返回一个包含对象类型、对象所有者、用户id、架构名称、对象名称、ddl等的好表。

用户名不能用单引号括起来(双引号或不加引号都可以)。奇怪。。我在“'someusername'”或其附近得到
ERROR:syntax ERROR,
第1行:从'someusername'撤销对数据库mydatabase的所有权限带插入符号,指向开头的单引号。如果没有单引号或双引号,它可以正常工作。在macOS High Sierra上使用
psql
登录到Redshift CLI(如果这在上下文中有任何区别的话)。
revoke all privileges on database <database> from '<username>'