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.