Tentang Kata Sandi Default untuk PostgreSQL
Ketika menginstal PostgreSQL, salah satu hal pertama yang sering ditanyakan oleh pengguna baru adalah: “Apa kata sandi default untuk PostgreSQL?” Jawabannya sedikit lebih rumit dari yang diperkirakan, karena secara default, PostgreSQL tidak menetapkan kata sandi yang sudah ditentukan sebelumnya untuk pengguna default. Sebaliknya, ia bergantung pada metode otentikasi lokal seperti otentikasi “peer” atau “ident”, tergantung pada sistem dan konfigurasi Anda. Pengguna administratif default yang dibuat saat instalasi biasanya disebut `postgres`. Namun, pengguna ini tidak memiliki kata sandi yang ditetapkan secara default, dan akses login biasanya dibatasi untuk mesin lokal. Untuk berinteraksi dengan basis data sebagai pengguna `postgres`, Anda biasanya perlu beralih ke akun pengguna sistem `postgres` dengan menggunakan perintah seperti `sudo -i -u postgres`, dan kemudian mengakses shell PostgreSQL melalui `psql`.
Untuk mengizinkan akses jarak jauh atau login berbasis kata sandi, Anda harus secara eksplisit mengatur kata sandi untuk pengguna `postgres` menggunakan perintah SQL (mis, `ALTER USER postgres WITH PASSWORD ‘yourpassword’;`) dan memodifikasi file `pg_hba.conf` untuk mengizinkan autentikasi kata sandi. Ini adalah langkah-langkah penting ketika mengonfigurasi PostgreSQL untuk lingkungan produksi. Memahami bagaimana otentikasi bekerja di PostgreSQL sangat penting untuk fungsionalitas dan keamanan. Selalu ikuti praktik terbaik dengan menetapkan kata sandi yang kuat, membatasi akses dengan aturan firewall, dan secara teratur meninjau pengaturan otentikasi untuk melindungi basis data Anda dari akses yang tidak sah
Tidak Ada Kata Sandi Default di PostgreSQL
Tidak seperti beberapa sistem basis data, PostgreSQL tidak memberikan kata sandi default ke akun superuser basis data(postgres) selama instalasi. Sebaliknya, sistem ini mengikuti pendekatan yang aman, mengharuskan pengguna untuk membuat dan mengelola kata sandi secara eksplisit. Berikut ini adalah cara kerja penyiapan awal dan bagaimana Anda dapat memperoleh akses ke basis data
- Pengguna Super Awal: Setelah menginstal PostgreSQL, sistem akan membuat akun superuser default yang disebut postgres. Akun ini memiliki kontrol penuh atas basis data.
- Tidak ada kata sandi yang ditentukan sebelumnya: Di luar kotak, PostgreSQL tidak memiliki kata sandi yang ditetapkan untuk pengguna postgres. Tergantung pada sistem operasi Anda, Anda mungkin dapat masuk ke PostgreSQL tanpa kata sandi jika Anda menggunakan akun OS yang sama dengan yang digunakan untuk menginstal PostgreSQL (biasanya postgres atau root).
Mengakses PostgreSQL untuk Pertama Kali
Untuk mengakses basis data PostgreSQL setelah instalasi, ikuti langkah-langkah berikut
- Linux: Pada banyak sistem Linux, Anda dapat beralih ke pengguna postgres melalui baris perintah dan mengakses PostgreSQL tanpa memerlukan kata sandi
sudo -i -u postgres
psql
Setelah berada di dalam prompt PostgreSQL, Anda dapat membuat kata sandi untuk pengguna postgres
SQLALTER USER postgres PASSWORD 'yourpassword';
- Windows: Untuk Windows, proses instalasi biasanya meminta kata sandi untuk pengguna postgres selama proses setup. Jika Anda lupa atau melewatkan pengaturan kata sandi, Anda dapat mengatur ulang dengan menggunakan akun administratif.
Mengkonfigurasi Otentikasi Kata Sandi
Otentikasi PostgreSQL dikelola oleh berkas pg_hba.conf. Berkas ini mendefinisikan bagaimana pengguna melakukan autentikasi, termasuk apakah mereka perlu menggunakan kata sandi atau jika metode lain (seperti autentikasi rekan) diperbolehkan. Misalnya, jika Anda menggunakan autentikasi kata sandi dan perlu mengatur kata sandi untuk pengguna PostgreSQL, pastikan berkas pg_hba.conf memiliki baris berikut ini untuk menerapkan login kata sandi untuk koneksi lokal
local all postgres md5
Pengaturan ini mengharuskan pengguna postgres untuk memberikan kata sandi hash MD5 saat melakukan koneksi
Mengatur ulang kata sandi postgres
Jika Anda lupa kata sandi postgres, Anda dapat mengatur ulang kata sandi dengan mengikuti langkah-langkah berikut
- Ubah pg_hba.conf untuk mengizinkan autentikasi kepercayaan: Dalam berkas pg_hba.conf, ubah sementara metode yang digunakan pengguna postgres untuk mempercayai koneksi lokal. Hal ini memungkinkan Anda untuk masuk tanpa kata sandi
local all postgres trust
- Mulai ulang PostgreSQL: Setelah mengedit berkas, mulai ulang layanan PostgreSQL
sudo service postgresql restart
- Mengubah Kata Sandi: Sekarang, Anda dapat mengakses PostgreSQL tanpa kata sandi dan mengubah kata sandi postgres
psql -U postgres
ALTER USER postgres PASSWORD 'newpassword';
- Kembalikan perubahan pg_hba.conf: Setelah kata sandi ditetapkan, kembalikan perubahan pada berkas pg_hba.conf untuk memberlakukan autentikasi kata sandi lagi.
Praktik Terbaik untuk Mengelola Kata Sandi PostgreSQL
- Kata Sandi yang Kuat: Selalu buat kata sandi yang kuat untuk pengguna postgres untuk mengamankan basis data Anda.
- Manajemen Peran: Daripada menggunakan superuser postgres untuk operasi sehari-hari, buatlah peran baru dengan hak istimewa terbatas. Hal ini akan meminimalisir risiko jika kredensial dibobol.
- Perbarui Metode Otentikasi: Tinjau dan perbarui file pg_hba.conf Anda secara teratur untuk memastikan Anda menggunakan metode autentikasi yang aman (seperti scram-sha-256).
- Rotasi Kata Sandi Secara Teratur: Rotasi kata sandi secara berkala, terutama untuk akun superuser.
Kesimpulan
PostgreSQL tidak memiliki kata sandi default yang sudah ditentukan sebelumnya untuk alasan keamanan. Pada saat instalasi, Anda perlu mengatur kata sandi untuk pengguna postgres secara manual. Memahami sistem otentikasi PostgreSQL dan praktik terbaik untuk manajemen kata sandi akan membantu Anda mengamankan basis data Anda dari akses yang tidak sah



