您能否告诉我如何使用 psql 控制台检查函数的权限,但又不会被源代码和描述淹没(例如使用 \df+ 时)。
问问题
9871 次
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 缺少功能:显示功能权限。
于 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 回答