Bagaimana cara mengubah kata sandi untuk pengguna PostgreSQL?
996
Bagaimana cara mengubah kata sandi untuk pengguna PostgreSQL?
Untuk kata sandi login lebih sedikit:
sudo -u user_name psql db_name
Untuk mengatur ulang kata sandi jika Anda lupa:
ALTER USER user_name WITH PASSWORD 'new_password';
rm ~/.psql_history
ALTER USER myuser RENAME TO newname;
... untuk beberapa alasan google menunjuk saya di sini ketika saya googling itu :)Kemudian ketik:
Kemudian:
Lalu untuk berhenti
psql
:Jika itu tidak berhasil, konfigurasikan ulang otentikasi.
Edit
/etc/postgresql/9.1/main/pg_hba.conf
(jalur akan berbeda) dan ubah:untuk:
Kemudian restart server:
sumber
\p
, itu memberi saya kata sandi; jika saya mengetiknya\password postgres
berikan kata sandi dan kemudian peringatan\p extra argument "assword" ignored; \p extra argument "postgres" ignored
sudo passwd postgres
Anda dapat dan harus membuat kata sandi pengguna dienkripsi:
sumber
The password is always stored encrypted in the system catalogs. The ENCRYPTED keyword has no effect, but is accepted for backwards compatibility.
Saya percaya cara terbaik untuk mengubah kata sandi adalah dengan menggunakan:
di konsol Postgres.
Sumber:
dari https://www.postgresql.org/docs/9.0/static/sql-alterrole.html .
sumber
\password username
Untuk mengubah kata sandi menggunakan baris perintah Linux, gunakan:
sumber
Untuk Mengubah Kata Sandi
kemudian
sekarang masukkan Kata Sandi Baru dan Konfirmasikan
lalu
\q
keluarsumber
Buka Postgresql Config Anda dan Edit pg_hba.conf
sudo vim /etc/postgresql/9.3/main/pg_hba.conf
Kemudian Ubah Baris ini:
untuk:
kemudian Restart layanan PostgreSQL melalui perintah SUDO
Anda sekarang akan dimasukkan dan akan melihat terminal Postgresql
lalu masuk
dan masukkan Kata Sandi BARU untuk pengguna default Postgres, Setelah Berhasil mengubah Kata Sandi lagi pergi ke pg_hba.conf dan kembalikan perubahan ke "md5"
sekarang Anda akan masuk sebagai
dengan kata sandi baru Anda.
Beri tahu saya jika Anda semua menemukan masalah di dalamnya.
sumber
user@user-NC10:~$ psql -U postgres psql: FATAL: Peer authentication failed for user "postgres"
$version,' /usr/bin/psql: psql: line 26:
my ($ version, $ cluster, $ db, $ port , $ host); ' terima kasih atas bantuan Anda!Untuk meminta kata sandi baru untuk pengguna postgres (tanpa menunjukkannya dalam perintah):
sumber
Konfigurasi yang saya dapatkan di server saya telah disesuaikan banyak dan saya berhasil mengubah kata sandi hanya setelah saya menetapkan otentikasi trust dalam
pg_hba.conf
file :Jangan lupa untuk mengubah ini kembali ke kata sandi atau md5
sumber
sudo systemctl restart postgresql.service
Ini adalah hasil pertama di google, ketika saya mencari cara mengubah nama pengguna, jadi:
Beberapa perintah lain yang membantu manajemen pengguna:
Pindahkan pengguna ke grup lain
sumber
Untuk kasus saya di Ubuntu 14,04 diinstal dengan postgres 10.3. Saya perlu mengikuti langkah-langkah berikut
su - postgres
untuk mengalihkan pengguna kepostgres
psql
untuk masuk ke shell postgres\password
lalu masukkan kata sandi Anda\q
untuk keluar dari sesi shellKemudian Anda beralih kembali ke root dengan mengeksekusi
exit
dan mengkonfigurasipg_hba.conf
(milik saya/etc/postgresql/10/main/pg_hba.conf
) dengan memastikan Anda memiliki baris berikutlocal all postgres md5
service postgresql restart
postgres
pengguna dan masukkan shell postgres lagi. Ini akan meminta Anda dengan kata sandi.sumber
Gunakan ini:
masukkan kata sandi baru yang Anda inginkan untuk pengguna itu dan kemudian konfirmasikan. Jika Anda tidak mengingat kata sandi dan ingin mengubahnya, Anda dapat masuk sebagai postgres dan kemudian gunakan ini:
sumber
Mirip dengan jawaban lain dalam sintaks tetapi harus diketahui bahwa Anda juga dapat melewati md5 kata sandi sehingga Anda tidak mengirimkan kata sandi teks biasa.
Berikut adalah beberapa skenario konsekuensi yang tidak diinginkan dari mengubah kata sandi pengguna dalam teks biasa.
log_statement = ddl
atau lebih tinggi, kata sandi teks biasa Anda akan muncul di log kesalahan Anda.Yang mengatakan di sini adalah bagaimana kita dapat mengubah kata sandi pengguna dengan membangun md5 kata sandi.
Dalam bash:
ALTER USER
perintah kita akan terlihat sepertisumber
Secara umum, cukup gunakan pg admin UI untuk melakukan aktivitas terkait db.
Jika sebaliknya Anda lebih fokus dalam mengotomatisasi pengaturan basis data untuk pengembangan lokal Anda, atau CI dll ...
Misalnya, Anda dapat menggunakan kombo sederhana seperti ini.
(a) Buat pengguna super dummy melalui jenkins dengan perintah yang mirip dengan ini:
ini akan membuat super user bernama experiment001 di postgres db Anda.
(B) Berikan pengguna ini beberapa kata sandi dengan menjalankan perintah SQL NON-Interaktif.
Postgres mungkin adalah database terbaik di luar sana untuk tooling baris perintah (non-interaktif). Membuat pengguna, menjalankan SQL, membuat cadangan database dll ... Secara umum semuanya cukup mendasar dengan postgres dan secara keseluruhan cukup sepele untuk mengintegrasikan ini ke dalam skrip pengaturan pengembangan Anda atau ke dalam konfigurasi CI otomatis.
sumber
dan cara yang sepenuhnya otomatis dengan bash dan expect ( dalam contoh ini kami menyediakan admin postgres baru dengan postgres yang baru disediakan baik pada OS dan level run-time postgres)
sumber
TLDR:
Pada banyak sistem, akun pengguna sering berisi titik, atau semacam punction (pengguna: john.smith, horise.johnson). Dalam hal ini, modifikasi harus dilakukan terhadap jawaban yang diterima di atas. Perubahan ini mengharuskan nama pengguna dikutip dua kali lipat.
Rasional:
Postgres cukup pilih-pilih kapan harus menggunakan 'penawaran ganda' dan kapan harus menggunakan 'penawaran tunggal'. Biasanya saat memberikan string, Anda akan menggunakan kutipan tunggal.
sumber