Pertanyaan Apa nama pengguna superuser / kata sandi superuser untuk postgres setelah instalasi 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?


347
2018-02-06 04:54




Mungkin sangat relevan - "Saya memasang PostgreSQL dan tidak tahu kata sandi untuk pengguna postgres". - Milen A. Radev


Jawaban:


PERINGATAN Jawaban tentang mengubah kata sandi UNIX untuk "postgres" melalui "postgres $ sudo passwd" tidak disukai, dan bahkan dapat BERBAHAYA!

Inilah sebabnya: Secara default, akun UNIX "postgres" terkunci, yang berarti tidak dapat masuk menggunakan kata sandi. Jika Anda menggunakan "sudo passwd postgres", akun akan langsung dibuka kuncinya. Lebih buruk lagi, jika Anda mengatur kata sandi untuk sesuatu yang lemah, seperti "postgres", maka Anda terkena bahaya keamanan yang besar. Misalnya, ada sejumlah bot di luar sana yang mencoba kombinasi nama pengguna / kata sandi "postgres / postgres" untuk masuk ke sistem UNIX Anda.

Yang harus Anda lakukan adalah mengikuti Chris Jamesjawaban:

sudo -u postgres psql postgres

# \password postgres

Enter new password: 

Untuk menjelaskannya sedikit. Biasanya ada dua cara default untuk masuk ke server PostgreSQL:

  1. Dengan menjalankan perintah "psql" sebagai pengguna UNIX (disebut otentikasi IDENT / PEER), misalnya: sudo -u postgres psql. Perhatikan itu sudo -u TIDAK membuka kunci pengguna UNIX.

  2. oleh koneksi TCP / IP menggunakan username / password yang dikelola PostgreSQL sendiri (disebut otentikasi TCP) (yaitu, TIDAK kata sandi UNIX).

Jadi kamu tak pernah ingin mengatur kata sandi untuk akun UNIX "postgres". Biarkan terkunci seperti itu secara default.

Tentu saja hal-hal dapat berubah jika Anda mengonfigurasinya secara berbeda dari pengaturan default. Misalnya, seseorang dapat menyinkronkan kata sandi PostgreSQL dengan kata sandi UNIX dan hanya mengizinkan login lokal. Itu akan berada di luar lingkup pertanyaan ini.


485
2017-10-28 06:25



jadi, bagaimana Anda mengunci postgres pengguna kembali? - ultrajohn
@ultrajohn - tergantung pada distribusi yang Anda gunakan, tetapi Anda dapat mengedit / etc / passwd dan menempatkan * sebagai ganti kata sandi - lzap
/etc/shadow adalah tempat kata sandi disimpan @lzap. - Gringo Suave
Benar, Anda dapat mengatur / sbin / nologin di / etc / passwd atau menempatkan * bukan kata sandi di / etc / shadow. - lzap
passwd - mengunci postgres - Stéphane


Masukkan pada baris perintah:

$ sudo -u postgres psql postgres
postgres=# \password postgres

Anda akan melihat:

Enter new password: 
Enter it again:

157
2018-03-16 15:39



Ini adalah apa yang diperlukan untuk menggunakan alat seperti pgadminIII (saat mengatur profil server) segera setelah Postgres itu sendiri diinstal. Terima kasih! - limist


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;

58
2018-02-06 05:02



@ThierryLam Anda harus melakukan root su ke pengguna postgres tanpa memasukkan kata sandi. Pada kebanyakan sistem, akun Postgres Unix terkunci (tidak ada kata sandi yang berfungsi), yang artinya hanya mungkin root su ke akun itu. - voretaq7
Menggunakan sudo dari pada su. - reinierpost
Saya harus lari sudo su - postgres : \ - Jim Schubert
@Jim Schubert: Anda juga bisa berlari sudo -u postgres. - reinierpost
sudo -u postgres psql - berfungsi juga sehingga Anda dapat melakukannya dalam satu langkah. - Ominus


Di Windows, lakukan yang berikut (PENTING: Gunakan Windows administrator rekening):

  1. Setelah instalasi, buka <PostgreSQL PATH>\data\pg_hba.conf.

  2. Ubah dua baris ini, dan ubah "md5" menjadi "kepercayaan":

    host all all 127.0.0.1/32 md5

    host all all ::1/128 md5

  3. Restart layanan PostgreSQL (mungkin tidak diperlukan).

  4. (Opsional) Buka prompt perintah, dan ubah halaman kode ke 1252:

    cmd.exe /c chcp 1252

  5. Masuk ke PostgreSQL. Kata sandi tidak diperlukan (perhatikan parameter huruf besar -U):

    psql -U postgres

  6. (Opsional, disarankan untuk alasan keamanan) Ubah postgres kata sandi pengguna:

    \password postgres

    dan ubah "kepercayaan" kembali ke "md5" di pg_hba.conf.


20
2017-11-18 19:25





Jika Anda mencoba mengakses shell PostgreSQL, Anda dapat mengetik:

psql -U postgres my_database

Dimana my_database adalah nama database Anda.


5
2018-03-07 13:44