我在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';
答案 0 :(得分:2)
任何管理工具都应该能够告诉您谁拥有外部表(或任何其他数据库对象)。在pgAdmin中,当您在对象浏览器中选择外部表时,所有者将显示在“属性”选项卡中,并且psql将在您运行\dE
时报告所有者。
如果您确实需要查询,请执行此操作:
SELECT
oid::regclass,
pg_get_userbyid(relowner)
FROM pg_class
WHERE relkind = 'f'