使用 PostgreSQL 9.6
我使用 postgres 用户使用创建扩展 pgcrypto 启用了 pgcrypto。现在我想向我的其他数据库用户授予执行权限。不幸的是我做不到。这是可能的还是您必须是超级用户才能使用 pgcrypto 的摘要功能。
postgres=# GRANT EXECUTE ON FUNCTION digest TO another_user;
ERROR: syntax error at or near "digest"
LINE 1: GRANT EXECUTE ON FUNCTION digest TO another_user;
使用下面的答案,我能够成功授予执行该功能的权限。但是 another_user 无法执行该功能。为了使用另一个用户执行此功能,我还需要其他权限吗?
another_user=> SELECT digest('whatisgoingon'::text, 'sha256'::text);
ERROR: function digest(text, text) does not exist
LINE 1: SELECT digest('whatisgoingon'::text, 'sha256'::text);
^
HINT: No function matches the given name and argument types. You might need to add explicit type casts.
即使当我检查用户的权限时,我也会返回我拥有权限。
postgres=# select has_function_privilege('another_user', 'digest(text, text)', 'execute');
has_function_privilege
------------------------
t
(1 row)
谢谢