各システム関数に対して、どのユーザーにどのような権限があるのかを確認する方法について説明します。
システムテーブルpg_procのカラムproaclを参照してください。
例)
postgres=# SELECT proname,proacl FROM pg_proc WHERE proname = 'pg_stat_statements_reset'; proname | proacl -------------------------+--------------------------------- pg_stat_statements_reset | {admin=X/adminr} (1 row)
表示される内容については、以下のように解釈してください。なお、“rolename”は、上記の例では“admin”を指します。
rolename=xxxx -- ロールに与えられた権限を示します。
=xxxx -- PUBLICに与えられた権限を示します。
r -- SELECT(読み取り(read))
w -- UPDATE(書き込み(write))
a -- INSERT(追加(append))
d -- DELETE
D -- TRUNCATE
x -- REFERENCES
t -- TRIGGER
X -- EXECUTE
U -- USAGE
C -- CREATE
c -- CONNECT
T -- TEMPORARY
arwdDxt -- すべての権限 (テーブル用。ほかのオブジェクトでは異なります。)
* -- 直前の権限に関するグラントオプション
/yyyy -- この権限を付与したロールを示します。