PostgreSQL adalah database open-source yang didukung di seluruh dunia. Dengan layanan lebih dari 30 tahun, PostgreSQL, berkat berbagai add-on yang tersedia, terkenal dengan ketangguhan, skalabilitas, dan kinerjanya.
Pertama, sambungkan ke server Anda melalui koneksi SSH. Jika Anda belum melakukannya, ikuti panduan kami disarankan untuk terhubung secara aman dengan SSH. Untuk server lokal, lanjutkan ke langkah berikutnya dan buka terminal server Anda.
Instalasi PostgreSQL
Untuk melanjutkan instalasi PostgreSQL, gunakan manajer paket apt. Pastikan untuk memperbarui cache:
$ sudo apt update && sudo apt install postgresql postgresql-contrib
Setelah instalasi selesai, layanan akan segera tersedia. Periksa file log di /var/log/postgresql/postgresql-10-main.log hanya untuk memastikan
# tail /var/log/postgresql/postgresql-10-main.log
...LOG: database system is ready to accept connections
...
Jika semuanya bekerja dengan benar, teks di atas akan berada di baris terakhir file log.
Memverifikasi pemasangan
Untuk memverifikasi instalasi PostgreSQL yang berhasil, gunakan klien baris perintah yang disebut psql. Pertama, gunakan pengguna default yang diinstal oleh layanan. Untuk mengakses database, proses otentikasi konfigurasi default PostgreSQL menggunakan pengguna sistem yang sama.
Untuk masuk dengan pengguna default , dari baris perintah, jalankan
$ sudo -i -u postgres
Sekarang, jalankan klien dan gunakan perintah \l untuk melihat daftar database yang tersedia :
$ sudo -i -u postgres
$ psql
postgres=# \l
List of databases
Name | Owner | Encoding | Collate | Ctype | Access privileges
-----------+----------+----------+-------------+-------------+-----------------------
postgres | postgres | UTF8 | en_US.UTF-8 | en_US.UTF-8 |
template0 | postgres | UTF8 | en_US.UTF-8 | en_US.UTF-8 | =c/postgres +
| | | | | postgres=CTc/postgres
template1 | postgres | UTF8 | en_US.UTF-8 | en_US.UTF-8 | =c/postgres +
| | | | | postgres=CTc/postgres
(3 rows)
postgres=# \q
[email protected]:~$ exit
Setelah selesai, keluar dari klien dengan perintah \q dan kembali ke pengguna asli dengan mengetik 'keluar'.
Mengelola pengguna dan izin
Seperti yang disebutkan sebelumnya, PostgreSQL mengasumsikan bahwa setiap pengguna yang hadir dalam layanannya juga ada dalam sistem. Untuk membuat pengguna baru, pertama-tama tambahkan ke sistem melalui adduser:
$ sudo adduser tutorial
Adding user `tutorial' ...
Adding new group `tutorial' (1000) ...
Adding new user `tutorial' (1000) with group `tutorial' ...
Creating home directory `/home/tutorial' ...
Copying files from `/etc/skel' ...
Enter new UNIX password:
Retype new UNIX password:
passwd: password updated successfully
Changing the user information for tutorial
Enter the new value, or press ENTER for the default
Full Name []:
Room Number []:
Work Phone []:
Home Phone []:
Other []:
Is the information correct? [Y/n] y
Dalam contoh berikut, pengguna yang disebut "tutorial" sedang dibuat, tanpa menentukan informasi lain, seperti nama atau nomor telepon. Setelah selesai, pengguna PostgreSQL dapat dibuat. dengan terlebih dahulu masuk dengan pengguna postgres:
$ sudo -i -u postgres
$ createuser --interactive
Enter name of role to add: tutorial
Shall the new role be a superuser? (y/n) n
Shall the new role be allowed to create databases? (y/n) n
Shall the new role be allowed to create more new roles? (y/n) n
Setelah membuat pengguna, atur kata sandi, masuk melalui postgres pengguna super dan ubah pengguna yang baru saja Anda buat:
$ psql
postgres=# ALTER USER tutorial PASSWORD 'password'; ALTER ROLE;
Basis data untuk pengguna yang baru dibuat mungkin juga dibuat dengan menjalankan perintah:
$ createdb tutorial
Setelah selesai, logout dan coba login dengan pengguna yang baru dibuat:
$ sudo -i -u tutorial
[email protected]:~$ psql
psql (10.9 (Ubuntu 10.9-0ubuntu0.18.04.1))
Type "help" for help.
tutorial=> \l
List of databases
Name | Owner | Encoding | Collate | Ctype | Access privileges
-----------+----------+----------+-------------+-------------+-----------------------
postgres | postgres | UTF8 | en_US.UTF-8 | en_US.UTF-8 |
template0 | postgres | UTF8 | en_US.UTF-8 | en_US.UTF-8 | =c/postgres +
| | | | | postgres=CTc/postgres
template1 | postgres | UTF8 | en_US.UTF-8 | en_US.UTF-8 | =c/postgres +
| | | | | postgres=CTc/postgres
tutorial | postgres | UTF8 | en_US.UTF-8 | en_US.UTF-8 |
(4 rows)
Mengaktifkan akses ke klien eksternal
Dalam beberapa kasus, mungkin perlu untuk mengizinkan akses oleh klien eksternal (misalnya mesin Anda) ke satu atau lebih database di server. Biasanya, PostgreSQL tidak dikonfigurasi untuk menerima koneksi yang tidak lokal, jadi ubah beberapa file konfigurasi.
File pertama yang dimodifikasi adalah file konfigurasi utama, di /etc/postgresql/10/main/postgresql.conf.
Pastikan untuk mengedit baris berikut dari:
listen_addresses = 'localhost'
Dengan:
listen_addresses = '*'
Dengan cara ini Anda memberi tahu PostgreSQL untuk mengharapkan koneksi masuk dari antarmuka jaringan apa pun.
Pastikan untuk menyimpan perubahan Anda. Sekarang lanjutkan mengedit file yang mengelola aturan akses server di /etc/postgresql/10/main/pg_hba.conf, dengan menambahkan baris berikut:
host tutorial tutorial 0.0.0.0/0 md5
Modifikasi ini memungkinkan pengguna "tutorial" mengakses database-nya dari host mana pun. Secara khusus , bidang yang ditunjukkan adalah:
host:jenis koneksi yang Anda terima. Nilai yang mungkin adalah:
- lokal:koneksi non-jaringan dari sistem
- host:semua jenis koneksi TCP / IP
- hostssl:Koneksi TCP / IP hanya di bawah protokol SSL
- hostnossl:Koneksi TCP / IP TIDAK di bawah protokol SSL
tutorial:nama database untuk mengizinkan akses, gunakan "semua" untuk merujuk ke semua database
tutorial:nama pengguna untuk memberikan akses
0.0.0.0/0:Alamat IP, jika Anda mengizinkan akses ke alamat IPv4 apa pun
md5:metodologi otentikasi yang diterima, beberapa yang paling penting adalah:
- md5:otentikasi kata sandi
- trust:menerima koneksi tanpa syarat tanpa syarat
- peer:menggunakan nama pengguna sistem untuk terhubung hanya ke database dengan nama yang sama.
Untuk informasi lebih lanjut, akses alamat https://www.postgresql.org/docs/9.1/auth-pg-hba-conf.html atau dokumen resmi PostgreSQL.
Setelah berakhir, mulai ulang layanan untuk menerapkan semua perubahan:
$ sudo systemctl restart postgresql