MiB*_*MiB 5 postgresql privileges
您能否告诉我如何使用psql控制台检查功能的权限,而又不会被源代码和描述所淹没(例如使用\ df +时)。
对于更简单的查询,请使用:
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 缺失功能:显示功能的权限。
您可以查询系统表:
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)