我有新的AWS RDS Postgres(v 11)实例。我已经安装了pgcrypto扩展,它不允许再这样做:

CREATE EXTENSION pgcrypto;
Error in query (7): ERROR: extension "pgcrypto" already exists

但我不能使用扩展函数:
select gen_salt('bf');
Error in query (7): ERROR: function gen_salt(unknown) does not exist
LINE 1: select gen_salt('bf')
HINT: No function matches the given name and argument types. You might need to add explicit type casts.

我做错什么了?

最佳答案

问题是扩展可能是在架构处于活动状态时添加的。感谢@Antti Haapala提供指向同一问题的链接:https://dba.stackexchange.com/questions/135093/in-rds-digest-function-is-undefined-after-creating-pgcrypto-extension
当未选择架构时,我已执行以下操作:

DROP EXTENSION pgcrypto;
Query executed OK, 0 rows affected. (0.031 s)

CREATE EXTENSION pgcrypto;
Query executed OK, 0 rows affected. (0.046 s)

SELECT gen_salt('bf');
gen_salt
$2a$06$kyj11fcRtpwxrqgCfZEIaO

现在一切都很好。

关于postgresql - 即使启用了pgcrypto扩展,AWS RDS Postgres Crypto函数也不起作用,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/56311405/

10-09 05:20