我如何在 PostgreSQL (10-15) 上找到不属于特定用户的所有序列(以及更广泛的 - 给定模式中的所有对象)?
我发现这样的查询:
SELECT relname, relacl
FROM pg_class pgc
WHERE relkind = 'S'
AND relacl is not null
AND relnamespace IN (
SELECT oid
FROM pg_namespace
WHERE nspname NOT LIKE 'pg_%'
AND nspname != 'information_schema'
)
and relname = 'my_table_id_seq';
但是任何进一步尝试使用relacl
列都会失败并出现错误,fe:
array_to_string(array(relacl))
给出错误:
[42601] ERROR: syntax error at or near "relacl"
我还找到了一个explodeacl
函数,它返回 rowset of aclitem[]
,但我不知道如何使用它。
提前致谢!
relacl
存储对象的访问控制列表,而不是所有者。中一行的所有者pg_class
存储在 中relowner
。因此,要查找不属于特定用户的所有序列,请使用: