PostgreSQL atau Postgres adalah sistem manajemen basis data relasional open source. PostgreSQL memiliki banyak fitur canggih yang memungkinkan Anda membuat aplikasi web yang kompleks.
Dalam tutorial ini, kami akan menunjukkan kepada Anda bagaimana menginstal PostgreSQL di Debian 9 dan menjelajahi dasar-dasar administrasi database.
Sebelum melanjutkan dengan tutorial ini, pastikan Anda masuk sebagai user dengan hak istimewa sudo.
Install PostgreSQL di Debian 9
Pada saat penulisan artikel ini, versi terbaru PostgreSQL yang tersedia dari repositori resmi Debian adalah PostgreSQL versi 10.4.
Untuk menginstal PostgreSQL di server Debian, ikuti langkah-langkah di bawah ini:
- Pertama, kita akan refresh indeks paket lokal
sudo apt update
- Instal server PostgreSQL bersama dengan paket PostgreSQL contrib yang menyediakan beberapa fitur tambahan untuk database PostgreSQL:
sudo apt install postgresql postgresql-contrib
- Setelah instalasi selesai, layanan PostgreSQL akan mulai secara otomatis. Untuk memverifikasi instalasi, kita akan mencoba untuk menyambung ke server database PostgreSQL menggunakan
psql
dan mencetak versi postgresql :sudo -u postgres psql -c "SELECT version();"
psql
adalah utilitas baris perintah interaktif yang memungkinkan kita untuk berinteraksi dengan server PostgreSQL.
Outputnya akan terlihat seperti ini:version ----------------------------------------------------------------------------------------------------------- PostgreSQL 9.6.10 on x86_64-pc-linux-gnu, compiled by gcc (Debian 6.3.0-18+deb9u1) 6.3.0 20170516, 64-bit (1 row)
PostgreSQL Role dan Metode Otentikasi
Izin akses basis data dalam PostgreSQL ditangani dengan konsep Role. Role (peran) dapat mewakili pengguna basis data atau sekelompok pengguna database.
PostgreSQL mendukung banyak metode otentikasi. Yang paling umum digunakan adalah:
- Trust – Dengan metode ini, peran dapat terhubung tanpa kata sandi, selama kriteria yang ditentukan dalam
pg_hba.conf
terpenuhi. - Password – Peran dapat terhubung dengan memberikan kata sandi. Kata sandi dapat disimpan sebagai
scram-sha-256md5
danpassword
(clear-text) - Ident – Metode ini hanya didukung pada koneksi TCP / IP. Bekerja dengan mendapatkan nama pengguna sistem operasi klien, dengan pemetaan nama pengguna opsional.
- Peer – Sama seperti Ident tetapi hanya didukung pada koneksi lokal.
Otentikasi klien PostgreSQL didefinisikan dalam file konfigurasi bernama pg_hba.conf
. Secara default untuk koneksi lokal, PostgreSQL diatur untuk menggunakan metode otentikasi peer.
Pengguna postgres
dibuat secara otomatis ketika menginstal PostgreSQL. Pengguna ini adalah superuser
untuk instance PostgreSQL dan itu setara dengan root di MySQL.
Untuk masuk ke server PostgreSQL sebagai postgres
, terlebih dahulu Anda harus beralih ke user postgres
dan kemudian Anda dapat mengakses prompt PostgreSQL menggunakan utilitas psql
:
sudo su - postgres psql
Dari sini Anda dapat berinteraksi dengan instance PostgreSQL Anda. Untuk keluar dari shell PostgreSQL ketik perintah berikut:
\q
Anda juga dapat mengakses prompt PostgreSQL tanpa mengalihkan pengguna menggunakan perintah sudo
:
sudo -u postgres psql
Pengguna postgres
biasanya hanya digunakan dari host lokal dan disarankan untuk tidak mengatur password untuk pengguna postgres
ini.
Membuat Role dan Database PostgreSQL
Anda dapat membuat peran baru dari baris perintah menggunakan perintah createuser
. Hanya superusers dan user dengan hak istimewa CREATEROLE
yang dapat membuat peran baru.
Dalam contoh berikut, kita akan membuat peran baru bernama dona
sebuah database bernama donadb
dan memberikan hak istimewa pada database.
- Perintah berikut akan membuat peran baru bernama dona:
sudo su - postgres -c "createuser dona"
- Buat Database PostgreSQL baru. Buat database baru bernama donadb menggunakan perintah
createdb
:sudo su - postgres -c "createdb donadb"
- Untuk memberikan izin kepada pengguna
dona
pada database yang telah kita buat di langkah sebelumnya, sambungkan ke shell PostgreSQL:sudo -u postgres psql
dan jalankan kueri berikut :
grant all privileges on database donadb to dona;
Aktifkan remote access ke server PostgreSQL
Secara default, server PostgreSQL hanya listen pada antarmuka lokal 127.0.0.1
. Untuk mengaktifkan akses jarak jauh ke server PostgreSQL, buka file konfigurasi postgresql.conf
dan tambahkan listen_addresses = '*'
di bagian CONNECTIONS AND AUTHENTICATION.
sudo nano /etc/postgresql/10/main/postgresql.conf
#------------------------------------------------------------------------------ # CONNECTIONS AND AUTHENTICATION #------------------------------------------------------------------------------ # - Connection Settings - listen_addresses = '*' # what IP address(es) to listen on;
simpan file dan restart layanan PostgreSQL dengan:
sudo service postgresql restart
Verifikasi perubahan dengan utilitas ss
ss -nlt | grep 5432
LISTEN 0 128 0.0.0.0:5432 0.0.0.0:* LISTEN 0 128 [::]:5432 [::]:*
Seperti yang Anda lihat dari output di atas, server PostgreSQL listen pada semua interface(0.0.0.0)
.
Langkah terakhir adalah mengkonfigurasi server untuk menerima koneksi jarak jauh dengan mengedit file pg_hba.conf
.
Berikut adalah beberapa contoh yang menunjukkan berbagai kasus penggunaan:
sudo nano /etc/postgresql/10/main/pg_hba.conf
TYPE DATABASE USER ADDRESS METHOD
# "local" is for Unix domain socket connections only
local all all md5
# IPv4 local connections:
host all all 0.0.0.0/0 md5
# IPv6 local connections:
host all all ::0/0 md5
# All IPs
host all dona all trust
Kesimpulan
Anda telah belajar cara menginstal dan mengkonfigurasi PostgreSQL di server Debian 9.