GNU/Linux >> Linux Esercitazione >  >> Ubuntu

Come creare un utente Postgres

Introduzione

La gestione dei privilegi utente e dell'accesso ai privilegi è un concetto di sicurezza fondamentale per qualsiasi tipo di database. PostgreSQL gestisce il controllo degli accessi tramite ruoli e privilegi. Ad esempio, aggiungendo l'autorizzazione LOGIN a un ruolo si ottiene un utente. Postgres offre diversi modi per creare e gestire gli account utente.

Questo tutorial mostra come creare e impostare diversi tipi di utenti per un database PostgreSQL.

Prerequisiti

  • Postgres installato (segui la nostra guida per Ubuntu o Windows).
  • Accesso al terminale con privilegi sudo.
  • Accesso all'utente postgres.

Crea un nuovo utente in PostgreSQL

Esistono due modi per creare un nuovo utente in PostgreSQL ed entrambi i casi richiedono l'accesso a postgres utente.

Metodo 1:utilizzo dell'utilità client createuser

Il primo modo per creare un nuovo utente è con createuser utilità del cliente. Questo metodo evita la connessione all'interfaccia della riga di comando di PSQL.

Per creare l'utente, eseguire il seguente comando nel terminale:

sudo -u postgres createuser <name>

Il terminale non emette un messaggio. Per ripetere il messaggio del server, aggiungi il -e tag:

sudo -u postgres createuser -e <name>

Ad esempio:

sudo -u postgres createuser -e john

In alternativa, dividi il comando in due parti:

1. Passa a postgres utente:

sudo su - postgres

2. Esegui createuser comando:

createuser <name>

Postgres crea automaticamente l'utente (ruolo con autorizzazioni di accesso) in entrambi i casi.

Metodo 2:utilizzo di PSQL

Il secondo modo per creare un nuovo utente in PostgreSQL è attraverso la shell interattiva di PSQL.

1. Passa a postgres utente e avviare il terminale interattivo con:

sudo -u postgres psql

La sessione del terminale cambia in postgres=# , che indica una connessione riuscita alla shell di Postgres.

2. Utilizzare la seguente istruzione per creare un utente:

CREATE USER <name>;

Ad esempio:

CREATE USER mary;

L'esecuzione del comando stampa CREATE ROLE alla console. Il motivo è che il CREATE USER query è un alias per il comando seguente:

CREATE ROLE <name> WITH LOGIN;

Entrambe le query producono lo stesso risultato.

Crea un superutente in PostgreSQL

Per creare un superutente in PostgreSQL, devi avere il ruolo di superutente.

Avviso: Un superutente del database ignora tutti i controlli, il che è pericoloso dal punto di vista della sicurezza. Usa questa azione con attenzione ed evita di lavorare con un account superutente a meno che non sia assolutamente necessario.

Ci sono due modi per creare un superutente in PostgreSQL:

1. Crea un ruolo di superutente tramite l'utilità client aggiungendo il --superuser tag:

sudo -u postgres createuser --superuser <name>

Oppure usa il tag abbreviato -s invece di --superuser :

sudo -u postgres createuser -s <name>

Il terminale emette un messaggio in caso di errore o se l'utente esiste già. In caso di successo, non viene visualizzato alcun messaggio.

2. In alternativa, usa il CREATE USER Istruzione PSQL:

CREATE USER <name> SUPERUSER;

Il CREATE USER statement è un alias per la seguente dichiarazione:

CREATE ROLE <name> LOGIN SUPERUSER;

Il CREATE ROLE l'istruzione richiede l'aggiunta di LOGIN permesso di emulare un utente.

Crea una password per l'utente

Ogni utente del database deve disporre di una password complessa per prevenire attacchi di forza bruta. PostgreSQL offre due metodi per creare un utente con una password.

Avviso: Dei due metodi, il primo è preferito e più sicuro.

1. Usa il createuser utilità client e aggiungi il --pwprompt opzione per richiamare automaticamente una richiesta di creazione della password:

sudo -u postgres createuser <name> --pwprompt

La versione abbreviata è -P tag:

sudo -u postgres createuser <name> -P

Il terminale chiede di inserire la password due volte. La password stessa o la lunghezza viene crittografata e nascosta durante la comunicazione con il server.

2. Usa PSQL per creare un utente con una password:

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

Se l'utente esiste già, aggiungi la password utilizzando ALTER USER :

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

La gestione delle password tramite PSQL include tre vulnerabilità di sicurezza:

  • La password è visibile sullo schermo.
  • La visualizzazione della cronologia dei comandi espone la password.
  • Le informazioni vengono trasmesse come testo in chiaro senza alcuna crittografia.

Usa questo metodo con cautela.

Concedi privilegi all'utente

Per impostazione predefinita, i nuovi utenti non hanno alcun privilegio tranne l'accesso. Per aggiungere privilegi durante la creazione di un utente, esegui createuser utilità client nel seguente formato:

createuser <option> <name>

Per fare lo stesso in PSQL, esegui:

CREATE USER <name> WITH <option>;

Di seguito è riportata una tabella con le opzioni comunemente utilizzate per entrambi i metodi.

Sintassi dell'opzione PSQL Spiegazione
-s
--superuser
SUPERUSER Aggiungi il privilegio di superutente.
-S
--no-superuser
NOSUPERUSER Nessun privilegio di superutente (predefinito).
-d
--createdb
CREATEDB Consente all'utente di creare database.
-D
--no-createdb
NOCREATEDB Non è consentito creare database (impostazione predefinita).
-r
--createrole
CREATEROLE Consente all'utente di creare nuovi ruoli.
-R
--no-createrole
NOCREATEROLE Non è consentito creare ruoli (impostazione predefinita).
-i
--inherit
INHERIT Eredita automaticamente i privilegi dei ruoli (predefinito).
-I
--no-inherit
NOINHERIT Non ereditare i privilegi dei ruoli.
-l
--login
LOGIN Consente all'utente di accedere a una sessione con il nome del ruolo (predefinito).
-L
--no-login
NOLOGIN Non è consentito accedere a una sessione con il nome del ruolo.
--replication REPLICATION Consente di avviare la replica in streaming e di attivare/disattivare la modalità di backup.
--no-replication NOREPLICATION Non è consentito avviare la replica in streaming o la modalità di backup (impostazione predefinita).
-P
--pwprompt
PASSWORD '<password>' Avvia la richiesta di creazione della password o aggiunge la password fornita all'utente. Evita di utilizzare questa opzione per creare un utente senza password.
/ PASSWORD NULL Imposta specificamente la password su null. Ogni autenticazione della password non riesce per questo utente.
-c <number>
--connection-limit=<number>
CONNECTION LIMIT <number> Imposta il numero massimo di connessioni per l'utente. L'impostazione predefinita è illimitata.

Ad esempio, crea un utente con privilegi di creazione e database e aggiungi il -e tag per fare eco ai risultati:

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

Oppure usa l'equivalente PSQL:

CREATE USER <name> WITH CREATEROLE CREATEDB;

In entrambi i casi, i privilegi indicati vengono concessi automaticamente al nuovo utente.

Crea un utente PostgreSQL in modo interattivo

La creazione interattiva dell'utente è un'opzione pratica disponibile solo per l'utilità client. Per creare un utente in modo interattivo, esegui il comando seguente:

sudo -u postgres createuser --interactive

Il comando richiede automaticamente una serie di domande, chiedendo quanto segue:

  • Nome del ruolo.
  • Se il ruolo è un superutente.
  • Se l'utente è autorizzato a creare database.
  • Se l'utente è autorizzato a creare altri ruoli.

Rispondi sì (y ) alla domanda di superutente automaticamente per aggiungere i privilegi "crea database" e "crea ruolo" e terminare il prompt.

Elenca tutti gli utenti in PostgreSQL

Uno strumento essenziale per la gestione degli utenti nei database è elencare tutti gli utenti con i rispettivi ruoli e privilegi.

Per elencare tutti gli utenti in PostgreSQL, procedi come segue:

1. Connettiti al prompt di PSQL come utente postgres:

sudo -u postgres psql

2. Elenca tutti gli utenti con il seguente comando:

\du

L'output mostra una tabella con i nomi dei ruoli, gli attributi (privilegi) ei gruppi dell'utente. Per visualizzare la descrizione di ogni ruolo, aggiungi il segno più (+ ) segno:

\du+

L'output mostra una colonna aggiuntiva con la descrizione del ruolo, ove applicabile.


Ubuntu
  1. Come creare un utente Sudo in Debian

  2. Come creare un utente in Linux[Gestione utenti]

  3. Come creare un utente Linux usando Ansible

  4. Come creare un utente sudo su CentOS 7

  5. Come creare ed eliminare utenti su Ubuntu 16.04

Come creare un utente Sudo su Debian

Come creare un utente di database MySQL in cPanel

Come creare un utente Sudo in Ubuntu Linux

Come creare un utente Sudo su CentOS

Come creare un amministratore di posta in Plesk

Come creare un utente o un contatto