Saya baru saja menginstal postgres 8.4 di Ubuntu 9.10 dan tidak pernah meminta saya untuk membuat superuser. Apakah ada superuser default dan kata sandinya? Jika tidak, bagaimana cara membuat yang baru?
postgresql
user-management
Thierry Lam
sumber
sumber
Jawaban:
PERHATIAN Jawaban tentang mengubah kata sandi UNIX untuk "postgres" melalui "$ sudo passwd postgres" tidak disukai, dan bahkan bisa BERBAHAYA !
Inilah sebabnya: Secara default, "postgres" akun UNIX terkunci, yang berarti tidak dapat masuk menggunakan kata sandi. Jika Anda menggunakan "sudo passwd postgres", akun itu langsung tidak dikunci. Lebih buruk lagi, jika Anda mengatur kata sandi ke sesuatu yang lemah, seperti "postgres", maka Anda terkena bahaya keamanan yang besar. Sebagai contoh, ada sejumlah bot di luar sana yang mencoba nama pengguna / kata sandi kombo "postgres / postgres" untuk masuk ke sistem UNIX Anda.
Yang harus Anda lakukan adalah mengikuti jawaban Chris James :
Untuk menjelaskannya sedikit. Biasanya ada dua cara default untuk masuk ke server PostgreSQL:
Dengan menjalankan "psql" perintah sebagai pengguna UNIX (yang disebut-IDENT / PEER otentikasi), misalnya:
sudo -u postgres psql
. Catatan yangsudo -u
TIDAK membuka kunci pengguna UNIX.oleh koneksi TCP / IP menggunakan username / password PostgreSQL yang dikelola sendiri (disebut otentikasi TCP) (yaitu, BUKAN kata sandi UNIX).
Jadi, Anda tidak pernah ingin mengatur kata sandi untuk akun "postgres" UNIX. Biarkan terkunci karena sudah diatur sebelumnya.
Tentu saja hal-hal dapat berubah jika Anda mengonfigurasinya secara berbeda dari pengaturan default. Sebagai contoh, seseorang dapat menyinkronkan kata sandi PostgreSQL dengan kata sandi UNIX dan hanya mengizinkan masuk lokal. Itu akan berada di luar cakupan pertanyaan ini.
sumber
/etc/shadow
adalah tempat kata sandi disimpan @ lzap.Masukkan pada baris perintah:
Anda akan melihat:
sumber
Anda memanipulasi postgres melalui pengguna
postgres
, seperti:sumber
su
pengguna postgres tanpa memasukkan kata sandi. Pada kebanyakan sistem, akun Postgres Unix dikunci (tidak ada kata sandi yang akan berfungsi), yang berarti hanya rootsu
untuk akun itu.sudo
sebagai gantisu
.sudo su - postgres
: \sudo -u postgres
.Di Windows, lakukan hal berikut (PENTING: Gunakan akun administrator Windows ):
Setelah instalasi, buka
<PostgreSQL PATH>\data\pg_hba.conf
.Ubah dua baris ini, dan ubah "md5" menjadi "trust":
host all all 127.0.0.1/32 md5
host all all ::1/128 md5
Mulai ulang layanan PostgreSQL (mungkin tidak perlu).
(Opsional) Buka prompt perintah, dan ubah halaman kode menjadi 1252:
cmd.exe /c chcp 1252
Masuk ke PostgreSQL. Akan diperlukan kata sandi (perhatikan parameter huruf besar -U):
psql -U postgres
(Opsional, disarankan karena alasan keamanan) Ubah
postgres
kata sandi pengguna:\password postgres
dan ubah "trust" kembali ke "md5" di
pg_hba.conf
.sumber
Jika Anda mencoba mengakses shell PostgreSQL, Anda dapat mengetik:
psql -U postgres my_database
Di mana
my_database
nama basis data Anda.sumber