Saya menggunakan Ubuntu Server 10.10 dan saya telah menginstal PostgreSQL 8.4 menggunakan apt-get install postgresql
. Saya ingin menggunakan sha1()
fungsi bawaan, tetapi sepertinya saya harus menginstal pgcrypto
terlebih dahulu. Tapi saya tidak tahu cara menginstalnya.
Tidak ada pgcrypto
jika saya mencoba menginstalnya menggunakan apt-get install pgcrypto
dan saya tidak menemukan file yang dimulai dengan pgcrypto
sistem saya (saya mencoba find / -name "pgcrypto*"
).
Bagaimana cara menginstal pgcrypto sehingga saya dapat menggunakan digest('word-to-hash','sha1')
fungsi ini dalam permintaan basis data saya?
Pembaruan: Saya kesulitan untuk menginstal pgcrypto di mesin Ubuntu lain. Setelah menginstal paket menggunakan sudo apt-get install postgresql-contrib-8.4
bagaimana cara menginstalnya ke database PostgreSQL saya saat ini?
/usr/local/pgsql/share/contrib/pgcrypto.sql
dan beri tahu kami./usr/local/pgsql
direktori. Satu-satunya tempat di mana saya memiliki*.sql
file/usr/share/postgresql/8.4/
tapi tidak ada yang berhubungan dengan cryptoJawaban:
Untuk versi PG yang lebih baru, lihat jawaban di bawah ini oleh Dustin Kirkland
Ini adalah modul eksternal untuk Postgres. Anda harus menginstal paket
postgresql-contrib-8.4
(atau versi pg Anda) melalui apt:Kemudian Anda menemukan file instal sql di suatu tempat di
/usr/share/postgresql
folder, dan Anda harus menjalankannyapgcryto.sql
di database.Atau,
sumber
sudo apt-get install postgres-contrib
saya mendapatkanE: Unable to locate package postgres-contrib
sudo apt-get install postgresql-contrib-8.4
dan kemudian menjalankan\i <path-to-pgcrypto>
menggunakanpsql
.\i /usr/share/postgresql/8.4/contrib/pgcypto.sql
PostgreSQL 9.1+
Perhatikan bahwa saya sedang bekerja di Ubuntu 12.04, yang menggunakan postgresql 9.1.
Di sana, saya perlu:
Dan kemudian di basis data saya:
Dan sekarang saya dapat menggunakan fungsionalitas pgcrypto, gen_random_bytes ():
sumber
CREATE EXTENSION
(yang membuat jawaban yang lain benar-benar benar.Untuk versi terbaru, tidak ada akhir jalur file dengan pgcrypto.sql.
Buat pgcrypto ekstensi di bawah pengguna yang diperlukan.
Jika seandainya, pengguna tidak memiliki izin untuk membuat ekstensi, berikan izin superuser dengan login sebagai pengguna postgres (default) dan coba lagi.
sumber