Android

Hoe postgresql op ubuntu 18.04 te installeren

How to Install and configuration PostgreSQL on Ubuntu Linux

How to Install and configuration PostgreSQL on Ubuntu Linux

Inhoudsopgave:

Anonim

PostgreSQL of Postgres is een open source algemeen object-relationeel databasebeheersysteem. PostgreSQL heeft veel geavanceerde functies waarmee u complexe webtoepassingen kunt maken.

In deze zelfstudie laten we u zien hoe u PostgreSQL op Ubuntu 18.04 installeert en de basisprincipes van basisdatabasebeheer verkennen.

voorwaarden

Zorg ervoor dat u bent aangemeld als een gebruiker met sudo-rechten voordat u doorgaat met deze zelfstudie.

Installeer PostgreSQL op Ubuntu

Op het moment dat dit artikel wordt geschreven, is PostgreSQL versie 10.4 de nieuwste versie van PostgreSQL die beschikbaar is via de officiële Ubuntu-opslagplaatsen.

Volg de onderstaande stappen om PostgreSQL op uw Ubuntu-server te installeren:

  1. PostgreSQL installeren

    Vernieuw de lokale pakketindex en installeer de PostgreSQL-server samen met het PostgreSQL-contribpakket dat verschillende extra functies voor de PostgreSQL-database biedt:

    sudo apt update sudo apt install postgresql postgresql-contrib

    Installatie van PostgreSQL verifiëren

    Nadat de installatie is voltooid, wordt de PostgreSQL-service automatisch gestart.

    Om de installatie te verifiëren zullen we proberen verbinding te maken met de PostgreSQL-databaseserver met behulp van de psql en de serverversie afdrukken:

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

psql is een interactief opdrachtregelhulpprogramma waarmee u kunt communiceren met de PostgreSQL-server.

PostgreSQL-rollen en verificatiemethoden

Toegangsrechten voor databases binnen PostgreSQL worden afgehandeld met het concept van rollen. Een rol kan een database-gebruiker of een groep database-gebruikers vertegenwoordigen.

PostgreSQL ondersteunt meerdere authenticatiemethoden. De meest gebruikte zijn:

  • Vertrouwen - Met deze methode kan de rol verbinding maken zonder wachtwoord, zolang aan de criteria is voldaan die zijn gedefinieerd in pg_hba.conf Wachtwoord - Een rol kan verbinding maken door een wachtwoord op te geven. De wachtwoorden kunnen worden opgeslagen als scram-sha-256 md5 en password (clear-text) Ident - Deze methode wordt alleen ondersteund op TCP / IP-verbindingen. Werkt door het verkrijgen van de gebruikersnaam van het besturingssysteem van de client, met een optionele toewijzing van de gebruikersnaam. Peer - Idem als Ident maar wordt alleen ondersteund op lokale verbindingen.

PostgreSQL-clientverificatie wordt gedefinieerd in het configuratiebestand met de naam pg_hba.conf . Standaard is voor lokale verbindingen PostgreSQL ingesteld om de peer-authenticatiemethode te gebruiken.

De postgres gebruiker wordt automatisch gemaakt wanneer u PostgreSQL installeert. Deze gebruiker is de superuser voor de PostgreSQL-instantie en is gelijk aan de MySQL-rootgebruiker.

Om in te loggen op de PostgreSQL-server als de postgres-gebruiker moet u eerst overschakelen naar de postgres van de gebruiker en dan kunt u toegang krijgen tot een PostgreSQL-prompt met behulp van het psql hulpprogramma:

sudo su - postgres psql

Vanaf hier kunt u communiceren met uw PostgreSQL-exemplaar. Om het PostgreSQL-shell-type te verlaten:

\q

U kunt ook toegang krijgen tot de PostgreSQL-prompt zonder van gebruiker te wisselen met de opdracht sudo :

sudo -u postgres psql

De postgres gebruiker wordt meestal alleen gebruikt door de lokale host en het wordt afgeraden het wachtwoord voor deze gebruiker in te stellen.

PostgreSQL-rol en database maken

U kunt nieuwe rollen maken vanaf de opdrachtregel met de opdracht createuser . Alleen superusers en rollen met CREATEROLE rechten kunnen nieuwe rollen maken.

In het volgende voorbeeld maken we een nieuwe rol met de naam john een database met de naam johndb en verlenen we privileges voor de database.

  1. Maak een nieuwe PostgreSQL-rol

    De volgende opdracht maakt een nieuwe rol met de naam john:

    sudo su - postgres -c "createuser john"

    Maak een nieuwe PostgreSQL-database

    Maak een nieuwe database met de naam johndb met de opdracht createdb :

    sudo su - postgres -c "createdb johndb"

    Bevoegdheden verlenen

    Als u machtigingen wilt verlenen aan de john gebruiker voor de database die we in de vorige stap hebben gemaakt, maakt u verbinding met de PostgreSQL-shell:

    sudo -u postgres psql

    en voer de volgende query uit:

    grant all privileges on database johndb to john;

Schakel externe toegang tot de PostgreSQL-server in

Standaard luistert de PostgreSQL-server alleen op de lokale interface 127.0.0.1 . Om externe toegang tot uw PostgreSQL-server in te schakelen, opent u het configuratiebestand postgresql.conf en voegt u listen_addresses = '*' in het gedeelte CONNECTIONS AND AUTHENTICATION .

sudo vim /etc/postgresql/10/main/postgresql.conf /etc/postgresql/10/main/postgresql.conf

#------------------------------------------------------------------------------ # CONNECTIONS AND AUTHENTICATION #------------------------------------------------------------------------------ # - Connection Settings - listen_addresses = '*' # what IP address(es) to listen on;

sla het bestand op en start de PostgreSQL-service opnieuw met:

sudo service postgresql restart

Controleer de wijzigingen met het hulpprogramma ss :

ss -nlt | grep 5432

LISTEN 0 128 0.0.0.0:5432 0.0.0.0:* LISTEN 0 128:5432:*

Zoals u aan de uitvoer hierboven kunt zien, luistert de PostgreSQL-server op alle interfaces (0.0.0.0).

De laatste stap is het configureren van de server om externe verbindingen te accepteren door het bestand pg_hba.conf bewerken.

Hieronder volgen enkele voorbeelden van verschillende gebruiksscenario's:

/etc/postgresql/10/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

Conclusie

U hebt geleerd hoe u PostgreSQL op uw Ubuntu 18.04-server installeert en configureert.

U kunt de PostgreSQL 10.4-documentatie raadplegen voor meer informatie over dit onderwerp.

ubuntu postgresql-database