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:
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:
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:
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:
-
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
-
tutorial: az adatbázis neve a hozzáférés engedélyezéséhez, az "összes" használatával utaljon az összes adatbázisra
-
tutorial: felhasználónév a hozzáférés biztosításához
-
0.0.0.0/0: IP-cím, az Ön esetére bármilyen IPv4-címhez való hozzáférést engedélyez
-
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