有没有一种方法可以撤销用户对目录对象(即information_schema)和PostgreSQL表(即pg_catalog)的权限?我尝试了几种方法并搜索了网络,但都没有成功。我读到唯一有点帮助的是,我可能不想从系统表中删除“public”,因为用户定义的函数可能依赖于这些模式中的一个对象。以下命令只是我还没有能够成功运行的一小部分示例。
有什么想法吗?还是这不可能吗?谢谢... Leslie
REVOKE ALL PRIVILEGES ON SCHEMA pg_catalog FROM PUBLIC; -- didn't work
REVOKE ALL PRIVILEGES ON SCHEMA pg_catalog FROM public; -- didn't work
REVOKE ALL PRIVILEGES ON SCHEMA pg_catalog FROM user1; -- didn't work
REVOKE SELECT ON pg_catalog.pg_roles FROM user1; -- worked
REVOKE SELECT ON pg_catalog.pg_database FROM user1; -- didn't work
REVOKE ALL PRIVILEGES ON SCHEMA pg_catalog FROM g_users; -- didn't work
REVOKE SELECT ON pg_catalog.pg_database FROM g_users; -- didn't work
有什么想法吗?还是这不可能吗?谢谢... Leslie
SELECT version()
。pg_catalog
权限的当前状态如何?查看\dp pg_catalog.*
(无需粘贴,但如果您看到任何提到除postgres
之外的任何用户的条目,请粘贴)。粘贴\dn+ pg_catalog
的输出。在编辑问题后在此处发表评论,以便我收到通知。 - Craig Ringer