7

psql コンソールを使用して関数へのアクセス許可を確認する方法を教えてください。

4

2 に答える 2

6

より単純なクエリの場合は、次を使用します。

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のディスカッションを参照してください。

于 2015-08-19T10:43:05.240 に答える
1

システム テーブルをクエリできます。

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'
);
于 2010-06-11T12:46:43.690 に答える