Ich benutze Ubuntu Server 10.10 und habe PostgreSQL 8.4 mit installiert apt-get install postgresql
. Ich möchte die eingebaute sha1()
Funktion verwenden, aber es scheint, dass ich pgcrypto
zuerst installieren muss . Aber ich weiß nicht, wie ich es installieren soll.
Es gibt keine, pgcrypto
wenn ich versuche, es mit zu installieren, apt-get install pgcrypto
und ich finde keine Dateien, die mit pgcrypto
in meinem System beginnen (ich habe es versucht find / -name "pgcrypto*"
).
Wie installiere ich pgcrypto, damit ich die digest('word-to-hash','sha1')
Funktion in meinen Datenbankabfragen verwenden kann?
Update: Ich habe Probleme, pgcrypto auf einem anderen Ubuntu-Rechner zu installieren. sudo apt-get install postgresql-contrib-8.4
Wie installiere ich das Paket nach der Installation in meine aktuelle PostgreSQL-Datenbank?
/usr/local/pgsql/share/contrib/pgcrypto.sql
Sie sicher, dass diese Datei in diesem Pfad vorhanden ist, und teilen Sie uns dies mit./usr/local/pgsql
Verzeichnis. Der einzige Ort, an dem ich*.sql
Dateien habe, ist in,/usr/share/postgresql/8.4/
aber kein kryptobezogener.Antworten:
Weitere Informationen zu neueren PG-Versionen finden Sie in der Antwort von Dustin Kirkland
Es ist ein externes Modul für Postgres. Sie sollten das
postgresql-contrib-8.4
Paket (oder Ihre pg-Version) über apt installieren :Dann finden Sie die SQL-Installationsdatei irgendwo im
/usr/share/postgresql
Ordner und müssen sie inpgcryto.sql
der Datenbank ausführen .Oder,
quelle
sudo apt-get install postgres-contrib
bekomme ichE: Unable to locate package postgres-contrib
sudo apt-get install postgresql-contrib-8.4
und dann\i <path-to-pgcrypto>
mit ausgeführtpsql
.\i /usr/share/postgresql/8.4/contrib/pgcypto.sql
PostgreSQL 9.1+
Beachten Sie, dass ich an Ubuntu 12.04 arbeite, das postgresql 9.1 verwendet.
Dort musste ich:
Und dann in meiner Datenbank:
Und jetzt kann ich die pgcrypto-Funktionalität gen_random_bytes () verwenden:
quelle
CREATE EXTENSION
(was die andere Antwort streng genommen korrekt macht.Für die neueste Version gibt es kein Dateipfadende mit pgcrypto.sql.
Erstellen Sie eine Erweiterung pgcrypto unter dem gewünschten Benutzer.
Wenn der Benutzer keine Berechtigung zum Erstellen einer Erweiterung hat, erteilen Sie dem Superuser die Berechtigung, indem Sie sich als postgres-Benutzer (Standard) anmelden, und versuchen Sie es erneut.
quelle