GNU/Linux >> Belajar Linux >  >> Debian

Cara Menginstal PostgreSQL di Debian 9

PostgreSQL, sering dikenal hanya sebagai Postgres, adalah sistem manajemen basis data relasional sumber terbuka untuk tujuan umum. PostgreSQL memiliki banyak fitur lanjutan seperti pencadangan online, pemulihan titik waktu, transaksi bersarang, kueri SQL dan JSON, kontrol konkurensi multi-versi (MVCC), replikasi asinkron, dan banyak lagi.

Dalam tutorial ini, kami akan menunjukkan kepada Anda cara menginstal PostgreSQL di Debian 9 dan menjelajahi dasar-dasar administrasi basis data dasar.

Prasyarat #

Sebelum melanjutkan dengan tutorial ini, pastikan pengguna yang Anda masuki memiliki hak sudo.

Menginstal PostgreSQL #

Pada saat artikel ini ditulis, versi PostgreSQL terbaru yang tersedia dari repositori Debian adalah PostgreSQL versi 9.6.

Untuk menginstal PostgreSQL di server Debian Anda, lakukan langkah-langkah berikut:

  1. Mulailah dengan memperbarui indeks paket lokal:

    sudo apt update
  2. Instal server PostgreSQL dan paket kontribusi PostgreSQL yang menyediakan fitur tambahan untuk database PostgreSQL:

    sudo apt install postgresql postgresql-contrib
  3. Ketika instalasi selesai, layanan PostgreSQL akan dimulai secara otomatis. Untuk memverifikasi instalasi, kami akan terhubung ke server database PostgreSQL menggunakan psql utilitas dan cetak versi server:

    sudo -u postgres psql -c "SELECT version();"

    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)
Psql adalah program terminal interaktif yang memungkinkan Anda berinteraksi dengan server PostgreSQL.

Peran PostgreSQL dan Metode Otentikasi #

PostgreSQL menangani izin akses database menggunakan konsep peran. Peran dapat mewakili pengguna basis data atau sekelompok pengguna basis data.

PostgreSQL mendukung sejumlah metode otentikasi. Metode yang paling umum digunakan adalah:

  • Kepercayaan - Dengan metode ini, peran dapat terhubung tanpa kata sandi, selama kriteria yang ditentukan dalam pg_hba.conf terpenuhi.
  • Kata Sandi - Peran dapat terhubung dengan memberikan kata sandi. Kata sandi dapat disimpan sebagai scram-sha-256 md5 dan password (teks-jelas)
  • 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 rekan.

postgres pengguna dibuat secara otomatis saat Anda menginstal PostgreSQL. Pengguna ini adalah pengguna super untuk instance PostgreSQL dan setara dengan pengguna root MySQL.

Untuk masuk ke server PostgreSQL sebagai pengguna postgres, pertama-tama Anda harus beralih ke userpostgres dan kemudian Anda dapat mengakses prompt PostgreSQL menggunakan psql utilitas:

sudo su - postgrespsql

Dari sini, Anda dapat berinteraksi dengan instance PostgreSQL Anda. Untuk keluar dari jenis shell PostgreSQL:

\q

Anda dapat menggunakan sudo perintah untuk mengakses prompt PostgreSQL tanpa berpindah pengguna:

sudo -u postgres psql

postgres pengguna biasanya hanya digunakan dari host lokal dan disarankan untuk tidak menyetel sandi untuk pengguna ini.

Membuat Peran dan Basis Data PostgreSQL #

Anda dapat membuat peran baru dari baris perintah menggunakan createuser memerintah. Hanya pengguna super dan peran dengan CREATEROLE hak istimewa dapat membuat peran baru.

Dalam contoh berikut, kita akan membuat peran baru bernama john database bernama johndb dan berikan hak istimewa pada database.

  1. Buat Peran PostgreSQL baru

    Perintah berikut akan membuat peran baru bernama "john":

    sudo su - postgres -c "createuser john"
  2. Buat Database PostgreSQL baru

    Buat database baru bernama “johndb” menggunakan createdb perintah:

    sudo su - postgres -c "createdb johndb"
  3. Berikan hak istimewa

    Untuk memberikan izin kepada john pengguna pada database yang kita buat pada langkah sebelumnya, sambungkan ke shell PostgreSQL:

    sudo -u postgres psql

    dan jalankan kueri berikut:

    GRANT ALL PRIVILEGES ON DATABASE johndb TO john;

Aktifkan akses jarak jauh ke server PostgreSQL #

Secara default PostgreSQL, server hanya mendengarkan pada antarmuka lokal 127.0.0.1 . Untuk mengaktifkan akses jarak jauh ke server PostgreSQL Anda, buka file konfigurasi postgresql.conf dan tambahkan listen_addresses = '*' di CONNECTIONS AND AUTHENTICATION bagian.

sudo vim /etc/postgresql/9.6/main/postgresql.conf
/etc/postgresql/9.6/main/postgresql.conf
#------------------------------------------------------------------------------
# CONNECTIONS AND AUTHENTICATION
#------------------------------------------------------------------------------

# - Connection Settings -

listen_addresses = '*'     # what IP address(es) to listen on;

simpan file dan mulai ulang layanan PostgreSQL dengan:

sudo service postgresql restart

Verifikasi perubahan dengan ss utilitas:

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 mendengarkan semua antarmuka (0.0.0.0).

Langkah terakhir adalah mengkonfigurasi server untuk menerima koneksi jarak jauh dengan mengedit pg_hba.conf berkas.

Berikut adalah beberapa contoh yang menunjukkan kasus penggunaan yang berbeda:

/etc/postgresql/9.6/main/pg_hba.conf
# TYPE  DATABASE        USER            ADDRESS                 METHOD

# The user jane will be able to access all databases from all locations using a md5 password
host    all             jane            0.0.0.0/0                md5

# The user jane will be able to access only the janedb from all locations using a md5 password
host    janedb          jane            0.0.0.0/0                md5

# The user jane will be able to access all databases from a trusted location (192.168.1.134) without a password
host    all             jane            192.168.1.134            trust

Debian
  1. Cara Menginstal PostgreSQL 11/10 di Debian 9 &Debian 8

  2. Cara Menginstal PostgreSQL di Debian 11 / Debian 10

  3. Cara Menginstal phpPgAdmin di Debian 9

  1. Cara Menginstal R di Debian 9

  2. Cara Menginstal PostgreSQL di Debian 10

  3. Cara Menginstal R di Debian 10

  1. Cara Menginstal pgAdmin di Debian 11 / Debian 10

  2. Cara Menginstal phpPgAdmin di Debian 11 / Debian 10

  3. Bagaimana cara menginstal Debian 11