Zoeken op website

PostgreSQL installeren en gebruiken op Ubuntu 18.04


PostgreSQL (kortweg Postgres) is een open source, krachtig, geavanceerd, krachtig en stabiel databasesysteem voor relationele documenten. Het gebruikt en verbetert de SQL-taal in combinatie met een groot aantal functies voor veilige gegevensopslag en -beheer.

Het is efficiënt, betrouwbaar en schaalbaar voor het verwerken van grote, gecompliceerde hoeveelheden gegevens en het opzetten van fouttolerante omgevingen op bedrijfsniveau, terwijl een hoge gegevensintegriteit wordt gegarandeerd. Postgres is ook zeer uitbreidbaar met functies zoals indexen en API's, zodat u uw eigen oplossingen kunt ontwikkelen om uw uitdagingen op het gebied van gegevensopslag op te lossen.

In dit artikel leggen we uit hoe je PostgreSQL op een Ubuntu 18.04-server installeert (werkt ook op oudere Ubuntu-releases) en leren we enkele basismanieren om het te gebruiken.

Hoe PostgreSQL op Ubuntu te installeren

Maak eerst een bestand /etc/apt/sources.list.d/pgdg.list waarin de repositoryconfiguratie wordt opgeslagen, importeer vervolgens de repositorysleutel naar uw systeem, werk de lijst met systeempakketten bij en installeer het Postgres-pakket met behulp van de volgende opdrachten.

sudo sh -c 'echo "deb http://apt.postgresql.org/pub/repos/apt/ $(lsb_release -cs)-pgdg main" > /etc/apt/sources.list.d/pgdg.list'
sudo apt install wget ca-certificates
wget --quiet -O - https://www.postgresql.org/media/keys/ACCC4CF8.asc | sudo apt-key add -
sudo apt update
sudo apt install postgresql-10 pgadmin4 

Zodra postgres is geïnstalleerd, wordt de databaseservice automatisch gestart en kunt u bevestigen door de volgende opdracht te typen.

sudo systemctl status postgresql.service

Hoe PostgreSQL-rollen en databases te gebruiken

In postgres wordt clientauthenticatie beheerd door het /etc/postgresql/10/main/pg_hba.conf configuratiebestand. De standaard authenticatiemethode is “peer” voor de databasebeheerder, wat betekent dat deze de gebruikersnaam van het besturingssysteem van de client ophaalt van het besturingssysteem en controleert of deze overeenkomt met de gevraagde databasegebruikersnaam om toegang toe te staan, voor lokale verbindingen (zoals weergegeven in de volgende schermafbeelding).

Tijdens het installatieproces werd een systeemgebruikersaccount met de naam postgres aangemaakt zonder wachtwoord. Dit is ook de standaard gebruikersnaam van de databasebeheerder.

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

Bovendien wordt onder postgres het beheer van de databasetoegang uitgevoerd via rollen. Een rol kan worden beschouwd als een databasegebruiker of als een groep databasegebruikers, afhankelijk van hoe de rol is ingesteld.

De standaardrol is ook postgres. Belangrijk is dat databaserollen conceptueel volledig losstaan van gebruikers van besturingssystemen, maar in de praktijk wellicht niet gescheiden zijn (bijvoorbeeld als het gaat om clientauthenticatie).

Belangrijk is dat rollen eigenaar kunnen zijn van databaseobjecten en rechten op die objecten kunnen toewijzen aan andere rollen om te bepalen wie toegang heeft tot welke objecten. Daarnaast is het mogelijk om het lidmaatschap van een rol aan een andere rol te verlenen.

Om andere rollen te configureren om gecodeerde wachtwoorden te gebruiken om de databases te beheren die aan hen zijn toegewezen, moet u, afgezien van de standaard postgres-rol, de regel wijzigen in.

Then restart the postgresql service to apply the recent changes.
sudo systemctl restart postgresql

Hoe PostgreSQL op Ubuntu te gebruiken

Zodra alles is ingesteld, hebt u toegang tot het postgres-systeemaccount met de volgende opdracht, waarbij de vlag -i sudo vertelt om de shell uit te voeren die is opgegeven door de wachtwoorddatabase-invoer van de doelgebruiker als een inlogshell.

sudo -i -u postgres 
psql		#to launch the postgres shell program  
postgres=#

Om rechtstreeks toegang te krijgen tot de postgres-shell, zonder eerst toegang te krijgen tot het postgres-gebruikersaccount, voert u de volgende opdracht uit.

sudo -i -u postgres psql

Je kunt postgres afsluiten/beëindigen door de volgende opdracht te typen.

postgres=# \q

Maak PostgreSQL-databaserollen

Maak een nieuwe gebruikersrol met behulp van de volgende opdracht.

postgres=# CREATE ROLE tecmint;

Om een rol met een LOGIN attribuut aan te maken, gebruikt u de volgende opdracht (rollen met het LOGIN attribuut kunnen als hetzelfde worden beschouwd als databasegebruikers).

postgres=#CREATE ROLE tecmint LOGIN;
OR
postgres=#CREATE USER name;	#assumes login function by default

Er kan ook een rol worden aangemaakt met een wachtwoord. Dit is handig als u de clientauthenticatiemethode zo heeft geconfigureerd dat gebruikers worden gevraagd een gecodeerd wachtwoord op te geven wanneer ze verbinding maken met de database.

postgres=#CREATE ROLE tecmint PASSWORD 'passwd_here'

Lijst met bestaande PostgreSQL-databaserollen

Gebruik een van deze opdrachten om de bestaande gebruikersrollen weer te geven.

postgres=# \du 				#shows actual users
OR
postgres=# SELECT rolname FROM pg_roles;

Zet een PostgreSQL-databaserol neer

Om een bestaande gebruikersrol te verwijderen, gebruikt u de opdracht DROP ROLE zoals weergegeven.

postgres=# DROP ROLE tecmint;

Maak een PostgreSQL-database

Zodra u een rol met een bepaalde naam heeft aangemaakt (bijvoorbeeld tecmint gebruiker), kunt u een database aanmaken (met dezelfde naam als de rol) die door die rol wordt beheerd, zoals weergegeven.

postgres=# CREATE DATABASE tecmint;

Om nu de database tecmint te beheren, opent u de postgres shell als tecmint rol en geeft u uw wachtwoord als volgt op.

sudo -i -u tecmint psql

Maak een PostgreSQL-tabel

Het maken van tabellen is zo eenvoudig dat we een testtabel zullen maken met de naam auteurs, waarin informatie over TecMint.com-auteurs wordt opgeslagen, zoals weergegeven.

tecmint=>CREATE TABLE authors (
    code      char(5) NOT NULL,
    name    varchar(40) NOT NULL,
    city varchar(40) NOT NULL
    joined_on date NOT NULL,	
    PRIMARY KEY (code)
);

Nadat u een tabel hebt gemaakt, probeert u deze als volgt te vullen met enkele gegevens.

tecmint=> INSERT INTO authors VALUES(1,'Ravi Saive','Mumbai','2012-08-15');

Om de gegevens te bekijken die in een tabel zijn opgeslagen, kunt u een SELECT-opdracht uitvoeren.

tecmint=> SELECT * FROM authors;

Maak een lijst van PostgreSQL-databasetabellen

Met de volgende opdracht kunt u alle tabellen in de huidige database weergeven.

tecmint=>\dt

Een PostgreSQL-tabel verwijderen/neerzetten

Om een tabel in de huidige database te verwijderen, gebruikt u de opdracht DROP.

tecmint=> DROP TABLE authors;

Maak een lijst van alle PostgreSQL-databases

Gebruik een van de volgende opdrachten om alle databases weer te geven.

tecmint=>SELECT datname FROM pg_database;
OR
tecmint=>\list	#shows a detailed description 
OR
tecmint=>\l

Een PostgreSQL-database verwijderen/neerzetten

Als u een database wilt verwijderen, gebruikt u bijvoorbeeld de opdracht DROP.

tecmint=>DROP DATABASE tecmint;

Schakel over naar een andere PostgreSQL-database

U kunt ook eenvoudig van de ene database naar de andere overschakelen met behulp van de volgende opdracht.

tecmint=>\connect database_name

Raadpleeg de PostgreSQL 10.4-documentatie voor meer informatie.

Dat is het voor nu! In dit artikel hebben we uitgelegd hoe u het PostgreSQL-databasebeheersysteem op Ubuntu 18.04 installeert en gebruikt. U kunt ons uw vragen of gedachten sturen in de opmerkingen.