Oktatóanyagok > Hogyan telepíthet PostgreSQL szervert Ubuntu 18.04-re?

Hogyan telepíthet PostgreSQL szervert Ubuntu 18.04-re?

Közzétéve: 16 január 2020

Database PostgreSQL

A PostgreSQL egy világszerte támogatott nyílt forrású adatbázis. A PostgreSQL több mint 30 éves szolgálatával - a rendelkezésre álló különféle kiegészítőknek köszönhetően - robusztusságáról, méretezhetőségéről és teljesítményéről híres.

Először csatlakozzon a szerverhez SSH kapcsolaton keresztül. Ha még nem tette meg, akkor ajánlott átböngésznie a Hogyan javítható az SSH biztonság az Ubuntu 18.04-en? útmutatónkat a folyamat megkezdése előtt. Helyi szerver esetén folytassa a következő lépéssel, és nyissa meg a szerver terminált.

A PostgreSQL telepítése

A PostgreSQL telepítésének folytatásához használja az apt csomagkezelőt. Győződjön meg arról, hogy frissítette a gyorsítótárat:

$ sudo apt update && sudo apt install postgresql postgresql-contrib

A telepítés befejezése után a szolgáltatás azonnal elérhető lesz. Ellenőrízze a /var/log/postgresql/postgresql-10-main.log fájlt a biztonság kedvéért:

#  tail /var/log/postgresql/postgresql-10-main.log

...LOG:  database system is ready to accept connections

...

Ha minden helyesen működik, akkor a fenti szöveg a naplófájl utolsó sorában lesz.

A telepítés ellenőrzése

A PostgreSQL sikeres telepítésének ellenőrzéséhez használja a psql nevű parancssori klienst. Először használja a szolgáltatás által telepített alapértelmezett felhasználót. Az adatbázis eléréséhez a PostgreSQL alapértelmezett konfigurációjának hitelesítési folyamata ugyanazokat a rendszerfelhasználókat használja.

Az alapértelmezett felhasználóval történő bejelentkezéshez a parancssorba írja be az alábbit:

$ sudo -i -u postgres

Most indítsa el a klienst és használja a \ l parancsot a rendelkezésre álló adatbázisok listájának megtekintéséhez: :

$ 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

postgres@Ubuntu-18-PSQ:~$ exit

A befejezés után lépjen ki az ügyféllel a \ q paranccsal, és térjen vissza az eredeti felhasználóhoz az „exit” begépelésével.

Felhasználók és jogosultságok kezelése

Mint korábban említettük, a PostgreSQL feltételezi, hogy a szolgáltatásban jelen lévő összes felhasználó szintén jelen van a rendszerben. Új felhasználó létrehozásához először vegye fel a rendszerbe a kiegészítő felhasználón keresztül:

$ 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

A következő példában egy "tutorial" nevű felhasználót hozunk létre, anélkül, hogy megadnánk más információkat, például a nevet vagy a telefonszámot. Miután elkészült, a PostgreSQL felhasználó létrehozható. Először jelentkezzen be a postgres felhasználóval:

$ 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

A felhasználó létrehozása után állítson be egy jelszót, jelentkezzen be a superuser postgres-en keresztül és módosítsa az éppen létrehozott felhasználót:

$ psql

postgres=# ALTER USER tutorial PASSWORD 'password'; ALTER ROLE;

Az újonnan létrehozott felhasználó számára adatbázist a parancs futtatásával hozhatunk létre:

$ createdb tutorial

Amint ez megvan, jelentkezzen ki, és próbáljon bejelentkezni az újonnan létrehozott felhasználóval:

$ sudo -i -u tutorial

tutorial@Ubuntu-18-PSQ:~$ 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)

Külső kliensek elérésének lehetővé tétele

Bizonyos esetekben szükség lehet a külső kliensek (például a számítógép) hozzáférésének engedélyezésére a kiszolgálón lévő egy vagy több adatbázishoz. A PostgreSQL rendszerint nem úgy van konfigurálva, hogy elfogadja a nem helyi kapcsolatokat, ezért módosítson néhány konfigurációs fájlt.

Az első módosítandó fájl a fő konfigurációs fájl, az /etc/postgresql/10/main/postgresql.conf fájlban.

Győzödjön meg arról, hogy az alábbi sort módosítja:

listen_addresses = 'localhost'

Ezzel együtt:

listen_addresses = '*'

Ily módon adja meg a PostgreSQL-nek, hogy bármilyen hálózati felületről várja a bejövő kapcsolatokat.

Ne felejtse el menteni a módosítást. Most folytassa a /etc/postgresql/10/main/pg_hba.conf fájlkiszolgáló hozzáférési szabályait kezelő fájl szerkesztésével, a következő sor hozzáadásával:

host    tutorial        tutorial 0.0.0.0/0               md5

Ez a módosítás lehetővé teszi az "tutorial" felhasználó számára, hogy bármilyen gazdagépről hozzáférjen adatbázisához. A feltüntetett mezők a következők:

  1. host: az elfogadott kapcsolat típusa. Lehetséges értékek:

    • local: nem hálózati kapcsolatok a rendszerből
    • host: bármilyen típusú TCP / IP kapcsolat
    • hostssl: TCP / IP kapcsolatok csak SSL protokoll alatt
    • hostnossl: TCP / IP kapcsolatok NEM SSL protokoll alatt
  2. tutorial: az adatbázis neve a hozzáférés engedélyezéséhez, az "összes" használatával utaljon az összes adatbázisra

  3. tutorial: felhasználónév a hozzáférés biztosításához

  4. 0.0.0.0/0: IP-cím, az Ön esetére bármilyen IPv4-címhez való hozzáférést engedélyez

  5. md5: elfogadott hitelesítési módszertan, ezek közül néhány fontosabb:

    • md5: jelszó hitelesítés
    • trust: feltétel nélkül elfogadja a kapcsolatot
    • peer: a rendszer felhasználónevét csak az azonos nevű adatbázishoz történő csatlakozáshoz használja.

További információkért keresse fel a https://www.postgresql.org/docs/9.1/auth-pg-hba-conf.html címet vagy a hivatalos PostgreSQL dokumentációt

A befejezés után indítsa újra a szolgáltatást az összes változtatás alkalmazásához:

$ sudo systemctl restart postgresql