Postgresql adalah sistem basis data relasional objek sumber terbuka dengan lebih dari 30 tahun pengembangan aktif yang telah membuatnya mendapatkan reputasi yang kuat untuk keandalan, kekokohan fitur, dan kinerja. Postgres, adalah sistem manajemen basis data relasional sumber terbuka dan gratis yang menekankan ekstensibilitas dan kepatuhan SQL. Awalnya bernama POSTGRES, mengacu pada asal-usulnya sebagai penerus database Ingres yang dikembangkan di University of California, Berkeley. PostgreSQL digunakan sebagai penyimpanan data utama atau gudang data untuk banyak aplikasi web, seluler, geospasial, dan analitik. PostgreSQL dapat menyimpan data terstruktur dan tidak terstruktur dalam satu produk.
Cek Juga:
- Cara Menggunakan Ansible untuk Menginstal dan Mengonfigurasi Postgres 14 di Ubuntu 20.04
- Cara Menginstal &Mengonfigurasi Postgres 14 di FreeBSD 13
- Izin Postgres – Buat, Perbarui, Hapus Pengguna Basis Data
- Cara Menginstal dan Mengonfigurasi Postgres 14 di Debian 11
- Cara Menginstal dan Mengonfigurasi Postgres 14 di Centos 8
- Cara Menginstal dan Mengonfigurasi Postgres 13 di Centos 8
- Menjalankan Postgresql 14 dengan Docker dan Docker-Compose
- Cara Menginstal dan Mengonfigurasi Postgres 13 Ubuntu 20.04
- Cara Memasang dan Mengonfigurasi Postgres 14 di Fedora 34
- Cara Menginstal &Mengonfigurasi Postgres 14 di OpenSUSE Leap 15.3
Prasyarat
Untuk mengikuti, pastikan Anda memiliki yang berikut:
- Server Ubuntu 20.04
- Akses root ke server atau pengguna dengan akses root
- Akses internet dari server
- Pengetahuan tentang terminal Linux
Daftar isi
- Pastikan paket sistem Anda mutakhir
- Menginstal Postgres 14
- Metode Otentikasi Peran dan Basis Data PostgreSQL
- Menghubungkan ke Database Postgres
- Mengonfigurasi instance postgres untuk akses jarak jauh
- Pengelolaan pengguna
- Menghubungkan ke instance dari host jarak jauh
1. Pastikan paket sistem Anda mutakhir
Mari segarkan indeks paket lokal server Anda menggunakan perintah ini:
sudo apt update
Kemudian kami meningkatkan paket di sistem kami dengan ini:
sudo apt -y upgrade
2. Menginstal Postgres 14
Postgres disediakan di repositori default Ubuntu. Untuk memeriksa versi yang disediakan, gunakan perintah ini:
sudo apt-cache search postgresql | grep postgresql
Paket default yang disediakan oleh repositori default adalah postgres 12. Jika Anda tertarik dengan Postgres 12, Anda dapat menginstal dengan perintah berikut. -contrib
paket yang menambahkan beberapa utilitas dan fungsionalitas tambahan:
sudo apt install postgresql postgresql-contrib
Karena kita ingin menginstal Postgres 14, kita perlu menambahkan repositori tambahan yang menyediakan paket
sudo sh -c 'echo "deb http://apt.postgresql.org/pub/repos/apt $(lsb_release -cs)-pgdg main" > /etc/apt/sources.list.d/pgdg.list'
Kemudian impor kunci penandatanganan repositori:
wget --quiet -O - https://www.postgresql.org/media/keys/ACCC4CF8.asc | sudo apt-key add -
Sekarang mari kita perbarui daftar paket:
sudo apt -y update
Kemudian kita instal versi spesifik dari postgres yang kita inginkan. Gunakan postgresql-14
alih-alih postgresql
:
sudo apt -y install postgresql-14
Setelah instalasi berhasil, Postgres 14 akan dimulai.
Gunakan perintah ini untuk memeriksa status layanan:
$ sudo systemctl status postgresql ● postgresql.service - PostgreSQL RDBMS Loaded: loaded (/lib/systemd/system/postgresql.service; enabled; vendor preset: enabled) Active: active (exited) since Thu 2021-10-14 09:32:22 UTC; 55s ago Main PID: 204727 (code=exited, status=0/SUCCESS) Tasks: 0 (limit: 4710) Memory: 0B CGroup: /system.slice/postgresql.service Oct 14 09:32:22 ip-172-26-11-229 systemd[1]: Starting PostgreSQL RDBMS... Oct 14 09:32:22 ip-172-26-11-229 systemd[1]: Finished PostgreSQL RDBMS.
Selanjutnya, mari kita erify instalasi dengan menghubungkan ke server database PostgreSQL dan memeriksa versinya. Gunakan perintah ini:
sudo -u postgres psql -c "SELECT version();"
Keluaran:
version ---------------------------------------------------------------------------------------------------------------------------------- PostgreSQL 14.0 (Ubuntu 14.0-1.pgdg20.04+1) on x86_64-pc-linux-gnu, compiled by gcc (Ubuntu 9.3.0-17ubuntu1~20.04) 9.3.0, 64-bi (1 row)
3. Peran PostgreSQL dan Metode Otentikasi Basis Data
PostgreSQL menggunakan konsep yang disebut roles
untuk menangani otentikasi dan otorisasi klien. Secara default, Postgres diatur untuk menggunakan ident authentication
, artinya ia mengaitkan peran Postgres dengan akun sistem Unix/Linux yang cocok. Jika ada peran dalam Postgres, nama pengguna Unix/Linux dengan nama yang sama dapat masuk sebagai peran tersebut.
Prosedur instalasi membuat akun pengguna yang disebut postgres yang dikaitkan dengan peran default postgres. Untuk menggunakan PostgreSQL, Anda dapat masuk ke akun tersebut.
PostgreSQL mendukung beberapa metode otentikasi. Metode yang paling umum digunakan adalah:
Trust
– Peran dapat terhubung tanpa kata sandi, selama kondisi yang ditentukan dalampg_hba.conf
terpenuhi.Password
– Peran dapat terhubung dengan memberikan kata sandi. Kata sandi dapat disimpan sebagaiscram-sha-256
,md5
, danpassword
(clear-text
).Ident
– Hanya didukung pada koneksi TCP/IP. Ia bekerja dengan mendapatkan nama pengguna sistem operasi klien, dengan pemetaan nama pengguna opsional.Peer
– Sama seperti Ident, tetapi hanya didukung pada koneksi lokal.
4. Menghubungkan ke database postgres
1. Dengan Beralih ke postres
pengguna
Beralih ke akun postgres di server Anda dengan mengetik:
sudo -i -u postgres
Anda sekarang dapat mengakses prompt Postgres segera dengan mengetik:
$ psql
psql (14.0 (Ubuntu 14.0-1.pgdg20.04+1))
Type "help" for help.
postgres=#
Ini akan memasukkan Anda ke prompt PostgreSQL, dan dari sini Anda bebas berinteraksi dengan sistem manajemen basis data segera.
2. Dengan menjalankan perintah sebagai pengguna postgres
Gunakan ini untuk menjalankan perintah secara langsung sebagai postgres
pengguna menggunakan sudo
$ sudo -u postgres psql
psql (14.0 (Ubuntu 14.0-1.pgdg20.04+1))
Type "help" for help.
postgres=#
5. Mengonfigurasi instance postgres untuk akses jarak jauh
Secara default postgres hanya diatur untuk diakses secara lokal. Ini tidak ideal jika kita ingin mengakses server kita dari host lain. Di bagian ini kita akan mengonfigurasi postgres untuk mengizinkan akses dari host jarak jauh.
File konfigurasi Postgres 14 dapat ditemukan di jalur ini/etc/postgresql/14/main/pg_hba.conf
$ sudo file /etc/postgresql/14/main/pg_hba.conf
/etc/postgresql/14/main/pg_hba.conf: ReStructuredText file, ASCII text
Ubah identifikasi rekan menjadi percaya
Gunakan perintah ini untuk mengubah peer
untuk trust
sed -i '/^local/s/peer/trust/' /etc/postgresql/14/main/pg_hba.conf
Ini akan memperbarui baris dalam file konfigurasi menjadi ini:
# "local" is for Unix domain socket connections only
local all all trust
Tambahkan blok untuk mengizinkan akses dari mana saja
Tambahkan konten ini ke file /etc/postgresql/14/main/pg_hba.conf
untuk mengizinkan akses kata sandi semua host:
vim /etc/postgresql/14/main/pg_hba.conf
Kemudian tambahkan ini:
host all all 0.0.0.0/0 md5
Pastikan PostgreSQL mendengarkan di *
Tambahkan baris ini ke konfigurasi di sini /etc/postgresql/14/main/postgresql.conf
untuk mengizinkan postgres mendengarkan di semua host
listen_addresses='*'
Untuk menerapkan konfigurasi, kita perlu me-restart layanan postgres 14.
Aktifkan dan mulai ulang server postgresql untuk memuat ulang konfigurasi:
sudo systemctl restart postgresql
sudo systemctl enable postgresql
6. Manajemen pengguna
Buat pengguna Super:
Akan lebih baik jika kita membuat pengguna super untuk mengelola layanan postgres. Ini adalah satu pengguna yang memiliki izin untuk mengelola pengguna dan basis data lain.
Hubungkan ke DB sebagai postres
peran
$ sudo -u postgres psql
could not change directory to "/root": Permission denied
psql (14.0 (Ubuntu 14.0-1.pgdg20.04+1))
Type "help" for help.
postgres=#
Buat pengguna super dengan nama root
menggunakan perintah ini:
CREATE ROLE root WITH LOGIN SUPERUSER CREATEDB CREATEROLE PASSWORD 'passwordhere';
Periksa pengguna apakah itu telah dibuat dan diberikan hak istimewa yang diperlukan:
postgres=# CREATE ROLE root WITH LOGIN SUPERUSER CREATEDB CREATEROLE PASSWORD 'passwordhere';
CREATE ROLE
postgres=# \du
List of roles
Role name | Attributes | Member of
-----------+------------------------------------------------------------+-----------
postgres | Superuser, Create role, Create DB, Replication, Bypass RLS | {}
root | Superuser, Create role, Create DB | {}
postgres=#
Mengelola pengguna aplikasi
Gunakan ini untuk membuat database, buat pengguna, dan berikan pengguna itu semua akses ke database itu:
create database app_db_name;
create user app_user with encrypted password 'dbpassword';
grant all privileges on database app_db_name to app_user;
Lihat panduan komprehensif ini tentang manajemen pengguna dan izin di postgres di sini.
7. Menghubungkan ke instance dari host jarak jauh
Gunakan perintah ini untuk menguji apakah Anda dapat terhubung:
psql 'postgres://<username>:<password>@<host>:<port>/<db>?sslmode=disable'
# like
psql 'postgres://root:[email protected]:5432/postgres?sslmode=disable'
Kesimpulan
Sampai saat ini kami telah berhasil menginstal Postgresql 14 di server Ubuntu, melakukan beberapa konfigurasi dasar kemudian melakukan manajemen pengguna dasar.