Android

Postgresql installeren op debian 9

How to Install PostgreSQL on Debian 9

How to Install PostgreSQL on Debian 9

Inhoudsopgave:

Anonim

PostgreSQL, vaak simpelweg bekend als Postgres, is een open-source algemeen object-relationeel databasebeheersysteem. PostgreSQL heeft veel geavanceerde functies zoals online back-ups, point-in-time herstel, geneste transacties, SQL- en JSON-query's, multi-version concurrency control (MVCC), asynchrone replicatie en meer.

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

voorwaarden

Voordat u doorgaat met deze zelfstudie, moet u ervoor zorgen dat de gebruiker waarbij u bent aangemeld sudo-rechten heeft.

PostgreSQL installeren

Op het moment dat dit artikel werd geschreven, is PostgreSQL versie 9.6 de nieuwste versie van PostgreSQL die beschikbaar is via de Debian-repositories.

Voer de volgende stappen uit om PostgreSQL op uw Debian-server te installeren:

  1. Begin met het bijwerken van de lokale pakketindex:

    sudo apt update

    Installeer de PostgreSQL-server en het PostgreSQL-contrib-pakket dat extra functies biedt voor de PostgreSQL-database:

    sudo apt install postgresql postgresql-contrib

    Wanneer de installatie is voltooid, wordt de PostgreSQL-service automatisch gestart. Om de installatie te verifiëren, maken we verbinding met de PostgreSQL-databaseserver met behulp van het psql hulpprogramma en drukken we de serverversie af:

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

    De uitvoer ziet er zo uit:

    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 is een interactief terminalprogramma waarmee u kunt communiceren met de PostgreSQL-server.

PostgreSQL-rollen en verificatiemethoden

PostgreSQL verwerkt toegangsrechten voor databases met het concept van rollen. Een rol kan een database-gebruiker of een groep database-gebruikers vertegenwoordigen.

PostgreSQL ondersteunt een aantal authenticatiemethoden. De meest gebruikte methoden 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 de opdracht sudo gebruiken om toegang te krijgen tot de PostgreSQL-prompt zonder van gebruiker te wisselen:

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/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;

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/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

Conclusie

U hebt geleerd hoe u PostgreSQL op uw Debian 9-server installeert en configureert. Raadpleeg de PostgreSQL-documentatie voor meer informatie over dit onderwerp.

debian postgresql-database