Privilegi di sovvenzione postgresql

Privilegi di sovvenzione postgresql

In PostgreSQL, un utente deve avere il Privilegio di accesso Per accedere al database. Tuttavia, le autorizzazioni esplicite devono essere assegnate per eseguire operazioni di database, tra cui selezione di tabelle, colonne e record.

IL POSTGRESQL Grant Query consente di modificare i privilegi per gli utenti su oggetti di database come tabelle, colonne, viste, funzioni, schemi e altro ancora.

Questo tutorial ti guiderà usando il POSTGRESQL Grant comanda per modificare i privilegi per vari oggetti di database.

Uso di base

La sintassi di base per il comando Grant è:

Concedere i privilegi sugli oggetti all'utente

Nella sintassi di cui sopra, è possibile specificare uno o più privilegi da concedere sull'oggetto specificato all'utente.

Per impostare tutti i privilegi su un oggetto, è possibile utilizzare la parola chiave.

Alcuni dei privilegi che puoi specificare per concedere un oggetto includono:

  1. SELEZIONARE
  2. INSERIRE
  3. AGGIORNAMENTO
  4. ELIMINARE
  5. CREARE
  6. COLLEGARE
  7. GRILLETTO
  8. TRONCARE
  9. RIFERIMENTI
  10. ESEGUIRE

Successivamente, si specifica l'oggetto del database e l'utente che concedere i privilegi impostati.

Esempi di dichiarazione di sovvenzione

Diamo un'occhiata ad alcuni esempi di come usare il Grant query sul Database PostgreSQL.

Innanzitutto, crea un utente locale senza privilegi. Per fare ciò, assicurati di accedere come utente amministratore.

Psql -u Postgres
Crea la password di accesso Mod Mods 'Hello';

Nel passaggio successivo, crea un database e una tabella di esempio che useremo per illustrare i privilegi di PostgreSQL.

Una query di esempio è sotto:

Drop database se esiste privati;
Creare privati ​​di database;
\ c privs;
Crea la tabella Modify (ID seriale, nome utente Varchar (255) non null, e -mail varchar (255) non null, importo int, chiave primaria (id));

Infine, esci dall'utente di Postgres e accedi come utente che abbiamo appena creato sopra. Nell'esempio sopra, usa il comando:

PSQL -U MODS -D privati;

Esempio 1

Se si tenta di selezionare i valori dalla tabella Modifica del database privato, riceverai un errore negato dell'autorizzazione.

Per esempio:

privs => Seleziona * da modifica;
Errore: autorizzazione negata per la modifica della tabella

È possibile risolvere questo errore concedendo tutte le autorizzazioni all'utente MODS o aggiungendo i privilegi selezionati.

Per fare ciò, accedi come utente di Postgres.

PSQL -u Postgres -d privas;
Concedere selezionare su modifica in mod;

Ciò consente agli utenti MOD di selezionare gli elementi dalla tabella Modifica del database Privs.

Una volta eseguita l'istruzione SELECT, dovresti ottenere risultati come:

privs =# Seleziona * da modifica;
id | Nome utente | Email | quantità
----+----------+-------+--------
(0 righe)

Esempio 2

Puoi anche assegnare più privilegi contemporaneamente. Ad esempio, per specificare Selezionare, inserire, eliminare e troncare i privilegi, Usa il comando.

Concedere selezionare, inserire, eliminare, troncare su modifica in mod;

Esempio 3

Per concedere tutte le autorizzazioni a un utente, impostare i privilegi su tutti, come mostrato nel comando di esempio seguente:

Concedere tutto su modifica alle mod;

Esempio 4

In tutti gli esempi sopra, assegniamo solo i privilegi a un utente su una tabella specifica. Per concedere i privilegi a tutte le tabelle di uno schema specificato, possiamo usare il comando:

Concedere selezionare, inserire, eliminare, troncare su tutte le tabelle nello schema "private" a mod;

Esempio 5

Puoi anche CONCESSIONE Un privilegio di connessione a un utente specifico a un database specifico. La domanda è:

Concedere connect sui privati ​​del database alle mod;

Per revocare tutte le autorizzazioni concesse a un utente, utilizzare la query di revoca come:

Revoca selezionare, inserire, eliminare, troncare su modifica dalle mod;

Chiusura

Come questa guida ti ha mostrato, Postgresql consente di modificare i privilegi in un utente su oggetti di database utilizzando il Concedere e revoca comandi.