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?
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?
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 :
sudo -u postgres psql postgres
# \password postgres
Enter new password:
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 yang sudo -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.
/etc/shadow
adalah tempat kata sandi disimpan @ lzap.
Masukkan pada baris perintah:
$ sudo -u postgres psql postgres
postgres=# \password postgres
Anda akan melihat:
Enter new password:
Enter it again:
Anda memanipulasi postgres melalui pengguna postgres
, seperti:
# su - postgres
$ createdb mydb
$ psql -s mydb
# create user someuser password 'somepassword';
# GRANT ALL PRIVILEGES ON DATABASE mydb TO someuser;
su
pengguna postgres tanpa memasukkan kata sandi. Pada kebanyakan sistem, akun Postgres Unix dikunci (tidak ada kata sandi yang akan berfungsi), yang berarti hanya root su
untuk akun itu.
sudo
sebagai ganti su
.
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
.
Jika Anda mencoba mengakses shell PostgreSQL, Anda dapat mengetik:
psql -U postgres my_database
Di mana my_database
nama basis data Anda.