PostgreSQL 8.4 已过时。查看versioning policy 了解详情。但由于它是 SQL 的标准行为(正如 Tom Lane 在您提供的链接讨论中所述),它不太可能发生变化。
权限与相应对象一起存储在系统目录中。例如,对于一个表:
SELECT n.nspname, c.relname, c.relacl
FROM pg_catalog.pg_class c
JOIN pg_catalog.pg_namespace n ON n.oid = c.relnamespace
WHERE c.oid = 'myschema.mytbl'::regclass -- your tablename here
会产生类似的东西:
nspname | relname | relacl
----------+---------+---------------------------------------------
myschema | mytbl | {postgres=arwdDxt/postgres,fuser=r/fadmin}
斜杠后面的角色名是授予者。要撤销,作为用户 fadmin(或任何超级用户):
REVOKE SELECT ON TABLE myschema.mytbl FROM fuser;
其他系统表中有类似的*acl 列。 pg_namespace 用于架构等。请参阅list of system tables in the manual.
更简单的方法是使用 pgAdmin 并在左侧的对象浏览器中选择一个对象。 ACL 将显示在右上角的属性窗格中。