GNU/Linux >> Znalost Linux >  >> Ubuntu

Jak nainstalovat PostgreSQL na Ubuntu 20.04

PostgreSQL nebo Postgres je open source univerzální objektově-relační systém správy databází s mnoha pokročilými funkcemi, které vám umožňují vytvářet prostředí nebo složité aplikace odolné proti chybám.

V této příručce vysvětlíme, jak nainstalovat databázový server PostgreSQL na Ubuntu 20.04, a prozkoumáme základy správy databáze PostgreSQL.

Předpoklady #

Abyste mohli instalovat balíčky, musíte být přihlášeni jako root nebo uživatel s právy sudo.

Instalovat PostgreSQL na Ubuntu #

V době psaní tohoto článku je nejnovější verze PostgreSQL dostupná z oficiálních repozitářů Ubuntu PostgreSQL verze 10.4.

Spusťte následující příkazy pro instalaci serveru PostgreSQL na Ubuntu:

sudo apt updatesudo apt install postgresql postgresql-contrib

Instalujeme také balíček Contrib PostgreSQL, který poskytuje několik dalších funkcí pro databázový systém PostgreSQL.

Po dokončení instalace se služba PostgreSQL automaticky spustí. Použijte psql nástroj pro ověření instalace připojením k databázovému serveru PostgreSQL a vytištěním jeho verze:

sudo -u postgres psql -c "SELECT version();"
PostgreSQL 12.2 (Ubuntu 12.2-4) on x86_64-pc-linux-gnu, compiled by gcc (Ubuntu 9.3.0-8ubuntu1) 9.3.0, 64-bit

A je to. PostgreSQL byl nainstalován a můžete jej začít používat.

Role a metody ověřování PostgreSQL #

Přístupová oprávnění k databázi v rámci PostgreSQL jsou řešena pomocí konceptu rolí. Role může představovat uživatele databáze nebo skupinu uživatelů databáze.

PostgreSQL podporuje více metod ověřování. Nejčastěji používané metody jsou:

  • Důvěra – Role se může připojit bez hesla, pokud jsou splněny podmínky definované v pg_hba.conf jsou splněny.
  • Heslo – Role se může připojit zadáním hesla. Hesla lze uložit jako scram-sha-256 , md5 a password (čistý text).
  • Ident – ​​podporováno pouze u připojení TCP/IP. Funguje tak, že získá uživatelské jméno operačního systému klienta s volitelným mapováním uživatelského jména.
  • Peer – Stejné jako Ident, ale je podporováno pouze u místních připojení.

Autentizace klienta PostgreSQL je definována v konfiguračním souboru s názvem pg_hba.conf . Ve výchozím nastavení PostgreSQL používá pro lokální připojení metodu peer autentizace.

postgres uživatel se automaticky vytvoří při instalaci PostgreSQL. Tento uživatel je superuživatel pro instanci PostgreSQL a je ekvivalentní kořenovému uživateli MySQL.

Chcete-li se přihlásit k serveru PostgreSQL jako postgres uživatel, nejprve se přepněte na uživatele a poté pomocí psql otevřete prompt PostgreSQL nástroj:

sudo su - postgrespsql

Odtud můžete komunikovat s vaší instancí PostgreSQL. Chcete-li opustit prostředí PostgreSQL, zadejte:

\q

Dalším způsobem, jak získat přístup k promptu PostgreSQL bez přepínání uživatelů, je použití sudo příkaz:

sudo -u postgres psql

Obecně byste se měli přihlásit k databázovému serveru jako postgres pouze z localhost.

Vytvoření PostgreSQL role a databáze #

Pouze superuživatelé a role s CREATEROLE oprávnění může vytvářet nové role.

Následující příklad ukazuje, jak vytvořit novou roli s názvem john databázi s názvem johndb a udělit oprávnění k databázi:

  1. Vytvořte novou roli PostgreSQL:

    sudo su - postgres -c "createuser john"
  2. Vytvořte novou databázi PostgreSQL:

    sudo su - postgres -c "createdb johndb"

Chcete-li uživateli udělit oprávnění k databázi, připojte se k prostředí PostgreSQL:

sudo -u postgres psql

a spusťte následující dotaz:

GRANT ALL PRIVILEGES ON DATABASE johndb TO john;

Povolit vzdálený přístup k serveru PostgreSQL #

Server PostgreSQL standardně naslouchá pouze na místním rozhraní (127.0.0.1 ).

Chcete-li povolit vzdálený přístup k vašemu PostgreSQL serveru, otevřete konfigurační soubor postgresql.conf a přidejte listen_addresses = '*' v CONNECTIONS AND AUTHENTICATION sekce.

sudo nano /etc/postgresql/12/main/postgresql.conf
/etc/postgresql/12/main/postgresql.conf
#------------------------------------------------------------------------------
# CONNECTIONS AND AUTHENTICATION
#------------------------------------------------------------------------------

# - Connection Settings -

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

Uložte soubor a restartujte službu PostgreSQL:

sudo service postgresql restart

Ověřte změny pomocí ss nástroj:

ss -nlt | grep 5432

Výstup ukazuje, že PostgreSQL server naslouchá na všech rozhraních (0.0.0.0 ):

LISTEN  0        244              0.0.0.0:5432           0.0.0.0:*              
LISTEN  0        244                 [::]:5432              [::]:* 

Dalším krokem je nakonfigurovat server tak, aby přijímal vzdálená připojení, úpravou souboru pg_hba.conf soubor.

Níže je několik příkladů ukazujících různé případy použití:

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

# The user jane can access all databases from all locations using md5 password
host    all             jane            0.0.0.0/0                md5

# The user jane can access only the janedb from all locations using md5 password
host    janedb          jane            0.0.0.0/0                md5

# The user jane can access all databases from a trusted location (192.168.1.134) without a password
host    all             jane            192.168.1.134            trust

Posledním krokem je otevření portu 5432 ve vašem firewallu.

Za předpokladu, že používáte UFW ke správě firewallu a chcete povolit přístup z 192.168.1.0/24 subnet, spustíte následující příkaz:

sudo ufw allow proto tcp from 192.168.1.0/24 to any port 5432

Ujistěte se, že je váš firewall nakonfigurován tak, aby přijímal připojení pouze z důvěryhodných rozsahů IP.


Ubuntu
  1. Jak nainstalovat PostgreSQL na Ubuntu 18.04

  2. Jak nainstalovat PostgreSQL na Ubuntu 18.04

  3. Jak nainstalovat PostgreSQL 9.5 na Ubuntu (12.04 - 15.10)

  1. Jak nainstalovat pgAdmin4 na Ubuntu

  2. Nainstalujte PostgreSQL na Ubuntu 20.04

  3. Jak nainstalovat OpenMAINT na Ubuntu 20.04

  1. Jak nainstalovat Piwigo na Ubuntu 20.04

  2. Jak nainstalovat TimescaleDB na Ubuntu 20.04

  3. Jak nainstalovat PostgreSQL 14 v Ubuntu 20.04