GNU/Linux >> Znalost Linux >  >> Ubuntu

Jak vytvořit uživatele Postgres

Úvod

Správa uživatelských oprávnění a oprávnění přístupu je zásadní bezpečnostní koncept pro jakýkoli typ databáze. PostgreSQL se stará o řízení přístupu prostřednictvím rolí a oprávnění. Například přidáním oprávnění LOGIN k roli získáte uživatele. Postgres nabízí několik způsobů, jak vytvářet a spravovat uživatelské účty.

Tento kurz ukazuje, jak vytvořit a nastavit různé typy uživatelů pro databázi PostgreSQL.

Předpoklady

  • Nainstalován Postgres (postupujte podle našeho průvodce pro Ubuntu nebo Windows).
  • Přístup k terminálu s právy sudo.
  • Přístup k uživateli postgres.

Vytvoření nového uživatele v PostgreSQL

Existují dva způsoby, jak vytvořit nového uživatele v PostgreSQL, a oba případy vyžadují přístup k postgres uživatel.

Metoda 1:Použití klientského nástroje createuser

První způsob, jak vytvořit nového uživatele, je pomocí createuser klientský nástroj. Tato metoda se vyhýbá připojení k rozhraní příkazového řádku PSQL.

Chcete-li vytvořit uživatele, spusťte v terminálu následující příkaz:

sudo -u postgres createuser <name>

Terminál nevydává zprávu. Chcete-li odeslat zprávu serveru jako echo, přidejte -e tag:

sudo -u postgres createuser -e <name>

Například:

sudo -u postgres createuser -e john

Případně rozdělte příkaz na dvě části:

1. Přepněte na postgres uživatel:

sudo su - postgres

2. Spusťte createuser příkaz:

createuser <name>

Postgres automaticky vytvoří uživatele (roli s oprávněním k přihlášení) v obou případech.

Metoda 2:Použití PSQL

Druhým způsobem, jak vytvořit nového uživatele v PostgreSQL, je interaktivní PSQL shell.

1. Přepněte na postgres uživatele a spusťte interaktivní terminál pomocí:

sudo -u postgres psql

Relace terminálu se změní na postgres=# , což znamená úspěšné připojení k prostředí Postgres.

2. K vytvoření uživatele použijte následující příkaz:

CREATE USER <name>;

Například:

CREATE USER mary;

Spuštěním příkazu se vytiskne CREATE ROLE do konzole. Důvodem je, že CREATE USER dotaz je alias pro následující příkaz:

CREATE ROLE <name> WITH LOGIN;

Oba dotazy dávají stejný výsledek.

Vytvoření superuživatele v PostgreSQL

Chcete-li vytvořit superuživatele v PostgreSQL, musíte mít roli superuživatele.

Upozornění: Superuživatel databáze obchází všechny kontroly, což je z bezpečnostního hlediska nebezpečné. Používejte tuto akci opatrně a nepracujte s účtem superuživatele, pokud to není nezbytně nutné.

Existují dva způsoby, jak vytvořit superuživatele v PostgreSQL:

1. Vytvořte roli superuživatele pomocí klientského nástroje přidáním --superuser tag:

sudo -u postgres createuser --superuser <name>

Nebo použijte zkrácený tag -s místo --superuser :

sudo -u postgres createuser -s <name>

Terminál vydá hlášení v případě chyby nebo pokud uživatel již existuje. V případě úspěchu se nezobrazí žádná zpráva.

2. Případně použijte CREATE USER Příkaz PSQL:

CREATE USER <name> SUPERUSER;

CREATE USER příkaz je alias pro následující příkaz:

CREATE ROLE <name> LOGIN SUPERUSER;

CREATE ROLE příkaz vyžaduje přidání LOGIN oprávnění k emulaci uživatele.

Vytvořte heslo pro uživatele

Každý uživatel databáze musí mít silné heslo, aby se zabránilo útokům hrubou silou. PostgreSQL nabízí dvě metody, jak vytvořit uživatele s heslem.

Upozornění: Z těchto dvou metod je první preferovaná a bezpečnější.

1. Použijte createuser klientský nástroj a přidejte --pwprompt možnost automatického vyvolání výzvy k vytvoření hesla:

sudo -u postgres createuser <name> --pwprompt

Zkrácená verze je -P tag:

sudo -u postgres createuser <name> -P

Terminál vyzve k zadání hesla dvakrát. Samotné heslo nebo jeho délka je při komunikaci se serverem zašifrována a skryta.

2. Pomocí PSQL vytvořte uživatele s heslem:

CREATE USER <name> WITH PASSWORD '<password>';

Pokud uživatel již existuje, přidejte heslo pomocí ALTER USER :

ALTER USER <name> WITH PASSWORD '<password>';

Správa hesel prostřednictvím PSQL přichází se třemi bezpečnostními chybami:

  • Heslo je viditelné na obrazovce.
  • Zobrazení historie příkazů odhalí heslo.
  • Informace se přenášejí jako čistý text bez jakéhokoli šifrování.

Tuto metodu používejte opatrně.

Udělte uživateli oprávnění

Ve výchozím nastavení nemají noví uživatelé žádná oprávnění kromě přihlášení. Chcete-li při vytváření uživatele přidat oprávnění, spusťte createuser klientský nástroj v následujícím formátu:

createuser <option> <name>

Chcete-li provést totéž v PSQL, spusťte:

CREATE USER <name> WITH <option>;

Níže je tabulka s běžně používanými možnostmi pro obě metody.

Syntaxe možností PSQL Vysvětlení
-s
--superuser
SUPERUSER Přidejte oprávnění superuživatele.
-S
--no-superuser
NOSUPERUSER Žádné oprávnění superuživatele (výchozí).
-d
--createdb
CREATEDB Umožňuje uživateli vytvářet databáze.
-D
--no-createdb
NOCREATEDB Není povoleno vytvářet databáze (výchozí).
-r
--createrole
CREATEROLE Umožňuje uživateli vytvářet nové role.
-R
--no-createrole
NOCREATEROLE Není povoleno vytvářet role (výchozí).
-i
--inherit
INHERIT Automaticky dědit oprávnění rolí (výchozí).
-I
--no-inherit
NOINHERIT Nedědit oprávnění rolí.
-l
--login
LOGIN Umožňuje uživateli přihlásit se do relace s názvem role (výchozí).
-L
--no-login
NOLOGIN Není povoleno přihlásit se do relace s názvem role.
--replication REPLICATION Umožňuje zahájit replikaci streamování a aktivovat/deaktivovat režim zálohování.
--no-replication NOREPLICATION Není povoleno zahájit replikaci streamování nebo režim zálohování (výchozí).
-P
--pwprompt
PASSWORD '<password>' Inicializuje výzvu k vytvoření hesla nebo přidá poskytnuté heslo uživateli. Nepoužívejte tuto možnost k vytvoření uživatele bez hesla.
/ PASSWORD NULL Konkrétně nastaví heslo na hodnotu null. Každé ověření hesla se u tohoto uživatele nezdaří.
-c <number>
--connection-limit=<number>
CONNECTION LIMIT <number> Nastaví maximální počet připojení pro uživatele. Výchozí hodnota je bez omezení.

Vytvořte například uživatele s oprávněními pro vytváření a databázi a přidejte -e tag pro echo výsledků:

sudo -u postgres createuser -d -r -e <name>

Nebo použijte ekvivalent PSQL:

CREATE USER <name> WITH CREATEROLE CREATEDB;

V obou případech jsou uvedená oprávnění udělena novému uživateli automaticky.

Interaktivně vytvořte uživatele PostgreSQL

Interaktivní vytvoření uživatele je praktická možnost dostupná pouze pro obslužný program klienta. Chcete-li vytvořit uživatele interaktivně, spusťte následující příkaz:

sudo -u postgres createuser --interactive

Příkaz automaticky vyzve řadu otázek s následujícími dotazy:

  • Název role.
  • Zda je role superuživatelem.
  • Pokud má uživatel povoleno vytvářet databáze.
  • Pokud má uživatel povoleno vytvářet další role.

Odpovězte ano (y ) na otázku superuživatele automaticky přidáte oprávnění „vytvořit databázi“ a „vytvořit roli“ a ukončíte výzvu.

Seznam všech uživatelů v PostgreSQL

Základním nástrojem pro správu uživatelů v databázích je seznam všech uživatelů s jejich příslušnými rolemi a oprávněními.

Chcete-li vypsat všechny uživatele v PostgreSQL, proveďte následující:

1. Připojte se k výzvě PSQL jako uživatel postgres:

sudo -u postgres psql

2. Vypište všechny uživatele pomocí následujícího příkazu:

\du

Výstup zobrazuje tabulku s názvy rolí, atributy (privilegii) a skupinami uživatelů. Chcete-li zobrazit popis každé role, přidejte znaménko plus (+ ) podepsat:

\du+

Výstup zobrazuje další sloupec s popisem role tam, kde je to možné.


Ubuntu
  1. Jak vytvořit uživatele sudo na CentOS 7

  2. Jak vytvořit a odstranit uživatele na Ubuntu 16.04

  3. Jak vytvořit uživatele Sudo v Rocky Linux 8

  1. Jak vytvořit uživatele v Linuxu [Správa uživatelů]

  2. Jak vytvořit uživatele Linuxu pomocí Ansible

  3. Jak vytvořím crontab pomocí skriptu

  1. Jak vytvořit uživatele Sudo v Debianu

  2. Centos – Jak vytvořit Sftp uživatele v Centos?

  3. Jak mohu vytvořit nepřihlášeného uživatele?