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
的模式等見
更簡單的方法是使用pgAdmin的和對象瀏覽器左側選擇一個對象。 ACL將顯示在右上角的屬性窗格中。