如何在psql控制台下检查对功能的权限

MiB*_*MiB 5 postgresql privileges

您能否告诉我如何使用psql控制台检查功能的权限,而又不会被源代码和描述所淹没(例如使用\ df +时)。

Ami*_*ari 6

对于更简单的查询,请使用:

SELECT proacl FROM pg_proc WHERE proname='FUNCTION-NAME';
Run Code Online (Sandbox Code Playgroud)

结果是这样的:

                           proacl                       
----------------------------------------------------
 {=X/postgres,postgres=X/postgres,test1=X/postgres}
(1 row)
Run Code Online (Sandbox Code Playgroud)

这表明test1用户也可以访问此功能。

有关更多详细信息,请参阅关于psql邮件列表的讨论:psql 缺失功能:显示功能的权限


pce*_*ent 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'
);
Run Code Online (Sandbox Code Playgroud)