Come controllare i privilegi di Postgres per l'utente?

Come controllare i privilegi di Postgres per l'utente?
In SQL, un privilegio si riferisce a un'autorizzazione specifica o all'azione del diritto di performance sui database nel server. Ad esempio, in PostgreSQL, i privilegi possono includere il privilegio di accedere al server per eseguire varie azioni.

Questo rapido tutorial ti mostrerà come ottenere informazioni privilegiate su un utente disponibile sul server.

Tipi di privilegi

Prima di procedere a eseguire l'interrogazione di PostgreSQL per informazioni sugli utenti, mettiamo in evidenza le varie autorizzazioni e ciò che consentono all'utente che ha assegnato loro di fare.

I tipi di privilegi nei DBM PostgreSQL sono:

  • SELEZIONARE - Il privilegio Select consente a un utente di selezionare i valori da qualsiasi colonna di qualsiasi oggetto simile a una tabella. Gli oggetti simili a tavolo in PostgreSQL includono una tabella, una vista, una vista materializzata, ecc.
  • INSERIRE - L'autorizzazione dell'inserto consente all'utente di inserire nuove righe in una tabella. È inoltre possibile concedere il privilegio di inserimento su una colonna specifica che consente di inserire le righe solo nelle colonne set.
  • AGGIORNAMENTO - Questo tipo di privilegio consente all'utente set di aggiornare le righe in qualsiasi colonna in una tabella o visualizza. Simile all'autorizzazione di inserimento, è possibile impostarlo su una colonna specifica per consentire all'utente di aggiornare le righe di una colonna specifica / i solo.
  • ELIMINARE - Ciò consentirà a un utente di eliminare/eliminare una riga da qualsiasi oggetto modificabile simile a una tabella. Ciò richiede che l'utente abbia l'autorizzazione selezionata poiché deve fare riferimento alle colonne della tabella per verificare che le righe vengano eliminate.
  • COLLEGARE - L'autorizzazione di connessione consente a un utente di connettersi al server. Questo tipo di autorizzazione è controllato all'avvio della connessione da PG_HBA.Conf File.
  • CREARE - Crea privilege consente a un utente di creare un nuovo schema, una tabella in un database set. Può anche consentire a un utente di installare estensioni su un database. Se questa autorizzazione viene revocata su un utente, non rimuove tutti gli oggetti esistenti fino al punto di terminazione.
  • TRONCARE - Come suggerisce il nome, garantisce l'autorizzazione dell'utente per troncare una tabella.
  • GRILLETTO - Ciò consente a un utente di creare un trigger su oggetti simili a tabelle.
  • TEMPORANEO - Consente agli utenti di creare una tabella temporanea mentre è connessa a un database set.
  • ESEGUIRE - Eseguire l'autorizzazione consente a un utente di chiamare funzioni o procedure. Questo è l'unico tipo di autorizzazione che può applicarsi alle funzioni/procedure.
  • RIFERIMENTI - Consente a un utente di creare vincoli chiave esterni che fanno riferimento a una tabella o colonne.

Come mostrare i privilegi degli utenti

Elenco i privilegi degli utenti è semplice. In PSQL, utilizzare la query \ du+ come mostrato nell'output di seguito:

$ postgres =# \ du+

L'output di cui sopra mostra gli utenti Postgres e Temp con le loro autorizzazioni corrispondenti.

Un altro modo per farlo è utilizzare lo schema Information_Schema e interrogare la tabella Table_Privileges come:

$ Seleziona * da Information_Schema.table_priviliges limite 5;

La query sopra mostrerà informazioni dettagliate sui privilegi degli utenti su database e tabelle.

Per filtrare per un utente specifico, è possibile aggiungere la clausola Where:

$ Seleziona * da Information_Schema.table_priviliges dove beneficiario = limite 'postgres' 5;

Conclusione

Questo breve tutorial ha discusso dei modi per recuperare informazioni privilegiate sugli utenti in un server PostgreSQL.