我在 Postgres 上有一个外部表,链接到另一个服务器。我试图在此表上进行选择,但出现此错误:
ERROR: permission denied for relation whitelist
有谁知道如何检查外部表的所有权吗? 我已经试过了,但它只返回有关本地表的信息...
select t.table_name, t.table_type, c.relname, c.relowner, u.usename
from information_schema.tables t
join pg_catalog.pg_class c on (t.table_name = c.relname)
join pg_catalog.pg_user u on (c.relowner = u.usesysid)
where t.table_schema='schema_name';
最佳答案
任何管理工具都应该能够告诉您谁拥有外部表(或任何其他数据库对象)。在 pgAdmin 中,当您在对象浏览器中选择外部表时,所有者会出现在“属性”选项卡中,当您运行 \dE
时,psql 将报告所有者。
如果您真的需要查询,应该这样做:
SELECT
oid::regclass,
pg_get_userbyid(relowner)
FROM pg_class
WHERE relkind = 'f'
关于sql - 检查 Postgres 上的外部表所有者,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/39752625/