Używam Ubuntu Server 10.10 i zainstalowałem PostgreSQL 8.4 apt-get install postgresql
. Chciałbym skorzystać z wbudowanej sha1()
funkcji, ale wygląda na to, że pgcrypto
najpierw muszę zainstalować . Ale nie wiem jak to zainstalować.
Nie ma opcji, pgcrypto
jeśli spróbuję go zainstalować przy użyciu apt-get install pgcrypto
i nie znajdę żadnych plików zaczynających się pgcrypto
w moim systemie (próbowałem find / -name "pgcrypto*"
).
Jak zainstalować pgcrypto, aby móc korzystać z digest('word-to-hash','sha1')
funkcji w zapytaniach do bazy danych?
Aktualizacja: Mam problem z zainstalowaniem pgcrypto na innym komputerze Ubuntu. Po zainstalowaniu pakietu przy użyciu sudo apt-get install postgresql-contrib-8.4
tego, jak zainstalować go w mojej bieżącej bazie danych PostgreSQL?
/usr/local/pgsql/share/contrib/pgcrypto.sql
i daj nam znać./usr/local/pgsql
katalogu. Jedyne miejsce, w którym mam*.sql
pliki,/usr/share/postgresql/8.4/
nie jest związane z kryptografią.Odpowiedzi:
W przypadku nowszej wersji PG sprawdź odpowiedź Dustina Kirklanda poniżej
To zewnętrzny moduł dla Postgres. Powinieneś zainstalować
postgresql-contrib-8.4
pakiet (lub swoją wersję pg) poprzez apt:Następnie znajdziesz gdzieś w
/usr/share/postgresql
folderze plik instalacyjny sql i będziesz musiał uruchomićpgcryto.sql
go w bazie danych.Lub,
źródło
sudo apt-get install postgres-contrib
, dostajęE: Unable to locate package postgres-contrib
sudo apt-get install postgresql-contrib-8.4
a następnie uruchomiłem\i <path-to-pgcrypto>
za pomocąpsql
.\i /usr/share/postgresql/8.4/contrib/pgcypto.sql
PostgreSQL 9.1+
Zauważ, że pracuję na Ubuntu 12.04, który używa Postgresql 9.1.
Tam musiałem:
A potem w mojej bazie danych:
A teraz mogę korzystać z funkcji pgcrypto, gen_random_bytes ():
źródło
CREATE EXTENSION
(co sprawia, że druga odpowiedź jest ściśle mówiąc poprawna.W najnowszej wersji ścieżka do pliku nie ma końca pgcrypto.sql.
Utwórz rozszerzenie pgcrypto pod wymaganym użytkownikiem.
Jeśli w takim przypadku użytkownik nie ma uprawnień do utworzenia rozszerzenia, udziel uprawnienia administratora, logując się jako użytkownik postgres (domyślny) i spróbuj ponownie.
źródło