2010-06-11 17 views

回答

0

你可以查詢系統表:

SELECT proname, rolname 
    FROM pg_proc pr, 
     pg_type tp, 
     pg_authid id 
WHERE proowner = id.oid 
    AND tp.oid = pr.prorettype 
    AND pr.proisagg = FALSE 
    AND tp.typname <> 'trigger' 
    AND pr.pronamespace IN (
     SELECT oid 
     FROM pg_namespace 
     WHERE nspname NOT LIKE 'pg_%' 
      AND nspname != 'information_schema' 
); 
1

對於一個簡單的查詢,使用:

SELECT proacl FROM pg_proc WHERE proname='FUNCTION-NAME'; 

結果是這樣的:

      proacl      
---------------------------------------------------- 
{=X/postgres,postgres=X/postgres,test1=X/postgres} 
(1 row) 

這表明test1用戶也有權訪問此功能。

欲瞭解更多詳情,請參閱關於psql的郵件列表:psql missing feature: show permissions for functions的討論。