Vyhledávání na webu

Jak nainstalovat a používat PostgreSQL na Ubuntu 18.04


PostgreSQL (zkráceně Postgres) je open source, výkonný, pokročilý, vysoce výkonný a stabilní databázový systém pro relační dokumenty. Využívá a vylepšuje jazyk SQL spolu s velkým množstvím funkcí pro bezpečné ukládání a správu dat.

Je efektivní, spolehlivý a škálovatelný pro manipulaci s velkými, komplikovanými objemy dat a nastavení podnikových prostředí odolných proti chybám a zároveň zajišťuje vysokou integritu dat. Postgres je také vysoce rozšiřitelný o funkce, jako jsou indexy, které jsou dodávány s rozhraními API, takže můžete vyvíjet vlastní řešení pro řešení problémů s ukládáním dat.

V tomto článku vysvětlíme, jak nainstalovat PostgreSQL na server Ubuntu 18.04 (funguje také na starších verzích Ubuntu) a naučíme se některé základní způsoby, jak jej používat.

Jak nainstalovat PostgreSQL na Ubuntu

Nejprve vytvořte soubor /etc/apt/sources.list.d/pgdg.list, který uloží konfiguraci úložiště, poté importujte klíč úložiště do systému, aktualizujte seznam systémových balíčků a nainstalujte balíček Postgres pomocí následujících příkazů.

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 

Po instalaci postgres se databázová služba automaticky spustila a můžete to potvrdit zadáním následujícího příkazu.

sudo systemctl status postgresql.service

Jak používat PostgreSQL role a databáze

V postgres je ověřování klienta řízeno konfiguračním souborem /etc/postgresql/10/main/pg_hba.conf. Výchozí metoda ověřování je „peer“ pro správce databáze, což znamená, že získá uživatelské jméno operačního systému klienta z operačního systému a zkontroluje, zda odpovídá požadovanému uživatelskému jménu databáze, aby umožnil přístup pro místní připojení. (jak je znázorněno na následujícím snímku obrazovky).

Během procesu instalace byl vytvořen systémový uživatelský účet s názvem postgres bez hesla, toto je také výchozí uživatelské jméno správce databáze.

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

V rámci postgres se navíc správa oprávnění k přístupu k databázi provádí prostřednictvím rolí. Role může být považována buď za uživatele databáze, nebo za skupinu uživatelů databáze, v závislosti na tom, jak je role nastavena.

Výchozí role je také postgres. Důležité je, že databázové role jsou koncepčně plně nepropojeny s uživateli operačního systému, ale prakticky nemusí být oddělené (např. pokud jde o autentizaci klienta).

Důležité je, že role mohou vlastnit databázové objekty a mohou přidělovat oprávnění k těmto objektům jiným rolím, aby řídily, kdo má ke kterým objektům přístup. Kromě toho je možné udělit členství v roli jiné roli.

Chcete-li nakonfigurovat jiné role tak, aby ke správě jim přiřazených databází používaly šifrovaná hesla, musíte kromě výchozí postgresové role změnit řádek na.

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

Jak používat PostgreSQL na Ubuntu

Jakmile je vše nastaveno, můžete přistupovat k systémovému účtu postgres pomocí následujícího příkazu, kde příznak -i říká sudo, aby spustil shell určený záznamem databáze hesel cílového uživatele jako přihlašovací shell.

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

Chcete-li získat přímý přístup k prostředí postgres, bez předchozího přístupu k uživatelskému účtu postgres, spusťte následující příkaz.

sudo -i -u postgres psql

postgres můžete ukončit/ukončit zadáním následujícího příkazu.

postgres=# \q

Vytvářejte role databáze PostgreSQL

Vytvořte novou uživatelskou roli pomocí následujícího příkazu.

postgres=# CREATE ROLE tecmint;

Chcete-li vytvořit roli s atributem LOGIN, použijte následující příkaz (role s atributem LOGIN lze považovat za stejné jako uživatele databáze).

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

Roli lze také vytvořit pomocí hesla, což je užitečné, pokud jste nakonfigurovali metodu ověřování klienta tak, aby uživatelé při připojování k databázi požadovali zašifrované heslo.

postgres=#CREATE ROLE tecmint PASSWORD 'passwd_here'

Seznam existujících rolí databáze PostgreSQL

Chcete-li zobrazit seznam existujících uživatelských rolí, použijte některý z těchto příkazů.

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

Zrušte roli databáze PostgreSQL

Chcete-li zrušit jakoukoli existující uživatelskou roli, použijte příkaz DROP ROLE podle obrázku.

postgres=# DROP ROLE tecmint;

Vytvořte databázi PostgreSQL

Jakmile vytvoříte roli s konkrétním názvem (například uživatel tecmint), můžete vytvořit databázi (se stejným názvem jako role), která bude spravována touto rolí, jak je znázorněno.

postgres=# CREATE DATABASE tecmint;

Chcete-li nyní spravovat databázi tecmint, přistupte do prostředí postgres jako role tecmint a zadejte své heslo následovně.

sudo -i -u tecmint psql

Vytvořte tabulku PostgreSQL

Vytváření tabulek je tak snadné, že vytvoříme testovací tabulku nazvanou autoři, která uchovává informace o autorech TecMint.com, jak je znázorněno na obrázku.

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

Po vytvoření tabulky se pokuste ji naplnit některými daty následujícím způsobem.

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

Chcete-li zobrazit data uložená v tabulce, můžete spustit příkaz SELECT.

tecmint=> SELECT * FROM authors;

Seznam tabulek databáze PostgreSQL

Pomocí následujícího příkazu můžete vypsat všechny tabulky v aktuální databázi.

tecmint=>\dt

Odstranit/upustit tabulku PostgreSQL

Chcete-li odstranit tabulku v aktuální databázi, použijte příkaz DROP.

tecmint=> DROP TABLE authors;

Vypsat všechny databáze PostgreSQL

Chcete-li zobrazit všechny databáze, použijte některý z následujících příkazů.

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

Odstranit/upustit databázi PostgreSQL

Pokud chcete databázi smazat, použijte například příkaz DROP.

tecmint=>DROP DATABASE tecmint;

Přepněte na jinou databázi PostgreSQL

Můžete také snadno přepínat z jedné databáze do druhé pomocí následujícího příkazu.

tecmint=>\connect database_name

Další informace naleznete v dokumentaci PostgreSQL 10.4.

To je prozatím vše! V tomto článku jsme vysvětlili, jak nainstalovat a používat systém správy databáze PostgreSQL na Ubuntu 18.04. Do komentářů nám můžete posílat své dotazy nebo nápady.