所以我只想在postgresql中加一些密码,而我发现的唯一一个用于postgresql的哈希解决scheme是pgcrytpo包的一部分( http://www.postgresql.org/docs/8.3/static/pgcrypto。 HTML ),应该是在postgresql-contrib( http://www.postgresql.org/docs/8.3/static/contrib.html )。
所以我安装了postgresql-contrib(sudo apt-get install postgresql-contrib),重新启动我的服务器(作为重启postgresql的简单方法)。
但是,我仍然无法访问任何应该在postgresql-contrib中进行散列的函数,例如:
ninjawars=# select crypt('global salt' || 'new password' || 'user created date', gen_salt('sha256')); ERROR: function gen_salt(unknown) does not exist ninjawars=# select digest('test', 'sha256') from players limit 1; ERROR: function digest(unknown, unknown) does not exist ninjawars=# select hmac('test', 'sha256') from players limit 1; ERROR: function hmac(unknown, unknown) does not exist
那么我怎样才能在Ubuntu的Postgresql哈希密码?
这可能是一个提示,从上面列出的网页之一:
许多模块提供新的用户定义的函数,操作符或types。 要使用这些模块之一,在安装代码之后,您需要通过在模块提供的.sql文件中运行SQL命令来将新对象注册到数据库系统中。 例如,
psql -d dbname -f SHAREDIR/contrib/module.sql
更简单只需要安装pdAdmin并从你正在工作的数据库上右键单击数据库,然后selectADD NEW OBJECTselect扩展名,然后selectpgcrypto作为名称,并将定义模式设置为public和版本1.0作为我的魅力在我的MAC OS 10.7 .5使用Postgres 9.2
安装postgresql-contrib后,您需要运行CREATE EXTENSION pgcrypto; 针对你要使用encryption函数的数据库