Estoy usando Ubuntu Server 10.10 y he instalado PostgreSQL 8.4 usando apt-get install postgresql
. Me gustaría usar la sha1()
función incorporada, pero parece que pgcrypto
primero tengo que instalar . Pero no sé cómo instalarlo.
No existe pgcrypto
si intento instalarlo usando apt-get install pgcrypto
y no encuentro ningún archivo que comience pgcrypto
en mi sistema (lo intenté find / -name "pgcrypto*"
).
¿Cómo instalo pgcrypto para poder usar la digest('word-to-hash','sha1')
función en las consultas de mi base de datos?
Actualización: estoy luchando por instalar pgcrypto en otra máquina Ubuntu. Después de instalar el paquete usando, sudo apt-get install postgresql-contrib-8.4
¿cómo lo instalo en mi base de datos PostgreSQL actual?
/usr/local/pgsql/share/contrib/pgcrypto.sql
y háganos saber./usr/local/pgsql
directorio. El único lugar donde tengo*.sql
archivos es/usr/share/postgresql/8.4/
pero no está relacionado con criptografía.Respuestas:
Para una versión más nueva de PG, mira la respuesta a continuación por Dustin Kirkland
Es un módulo externo para Postgres. Debe instalar el
postgresql-contrib-8.4
paquete (o su versión de pg) a través de apt:Luego encontrará el archivo de instalación sql en algún lugar de la
/usr/share/postgresql
carpeta, y deberá ejecutarlopgcryto.sql
en la base de datos.O,
fuente
sudo apt-get install postgres-contrib
me saleE: Unable to locate package postgres-contrib
sudo apt-get install postgresql-contrib-8.4
y luego ejecuté\i <path-to-pgcrypto>
usandopsql
.\i /usr/share/postgresql/8.4/contrib/pgcypto.sql
PostgreSQL 9.1+
Tenga en cuenta que estoy trabajando en Ubuntu 12.04, que utiliza postgresql 9.1.
Allí, necesitaba:
Y luego en mi base de datos:
Y ahora puedo usar la funcionalidad pgcrypto, gen_random_bytes ():
fuente
CREATE EXTENSION
(lo que hace la otra respuesta correcta en sentido estricto.Para la última versión, no hay una ruta de archivo finalizada con pgcrypto.sql.
Cree una extensión pgcrypto con el usuario requerido.
Si en este caso, el usuario no tiene permiso para crear una extensión, otorgue permiso de superusuario iniciando sesión como usuario postgres (predeterminado) e intente nuevamente.
fuente