检查Postgres上的外国表所有者

时间:2016-09-28 16:09:22

标签: sql postgresql

我在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';

1 个答案:

答案 0 :(得分:2)

任何管理工具都应该能够告诉您谁拥有外部表(或任何其他数据库对象)。在pgAdmin中,当您在对象浏览器中选择外部表时,所有者将显示在“属性”选项卡中,并且psql将在您运行\dE时报告所有者。

如果您确实需要查询,请执行此操作:

SELECT
  oid::regclass,
  pg_get_userbyid(relowner)
FROM pg_class
WHERE relkind = 'f'