Я использую Ubuntu Server 10.10, и я установил PostgreSQL 8.4, используя apt-get install postgresql
. Я хотел бы использовать встроенную sha1()
функцию, но кажется, что я должен установить в pgcrypto
первую очередь. Но я не знаю, как его установить.
Нет, pgcrypto
если я пытаюсь установить его с помощью, apt-get install pgcrypto
и я не нахожу никаких файлов, начиная с pgcrypto
моей системы (я пытался find / -name "pgcrypto*"
).
Как мне установить pgcrypto, чтобы я мог использовать эту digest('word-to-hash','sha1')
функцию в своих запросах к базе данных?
Обновление: я пытаюсь установить pgcrypto на другой компьютер с Ubuntu. После установки пакета, используя sudo apt-get install postgresql-contrib-8.4
как установить его в мою текущую базу данных PostgreSQL?
/usr/local/pgsql/share/contrib/pgcrypto.sql
и дайте нам знать./usr/local/pgsql
каталога. Единственное место, где у меня есть*.sql
файлы,/usr/share/postgresql/8.4/
но не связанные с криптографией.Ответы:
Для более новой версии PG, проверьте ответ ниже Дастином Кирклендом
Это внешний модуль для Postgres. Вы должны установить
postgresql-contrib-8.4
(или вашу версию pg) через apt:Затем вы найдете установочный файл sql где-нибудь в
/usr/share/postgresql
папке, и вам нужно будет запуститьpgcryto.sql
базу данных.Или,
источник
sudo apt-get install postgres-contrib
я получаюE: Unable to locate package postgres-contrib
sudo apt-get install postgresql-contrib-8.4
а затем запустить\i <path-to-pgcrypto>
с помощьюpsql
.\i /usr/share/postgresql/8.4/contrib/pgcypto.sql
PostgreSQL 9.1+
Обратите внимание, что я работаю над Ubuntu 12.04, которая использует postgresql 9.1.
Там мне нужно было:
И тогда в моей базе данных:
И теперь я могу использовать функциональность pgcrypto, gen_random_bytes ():
источник
CREATE EXTENSION
(что делает другой ответ , строго говоря , правильно.В последней версии путь к файлу не заканчивается на pgcrypto.sql.
Создайте расширение pgcrypto под нужным пользователем.
Если в этом случае у пользователя нет разрешения на создание расширения, дайте разрешение суперпользователя, войдя в систему как postgres (по умолчанию), и попробуйте снова.
источник