Esempi di sicurezza a livello di riga postgresql

Esempi di sicurezza a livello di riga postgresql

Postgresql è stato un sistema di database ampiamente utilizzato in tutto il mondo ed è altamente protetto. Postgresql è arrivato con i due tipi di titoli, E.G. a livello di colonna e livello di riga. Il nostro argomento principale è la sicurezza a livello di riga in PostgreSQL. Si dice che la sicurezza a livello di riga sia uno strumento semplice e tanto necessario nella sicurezza di PostgreSQL. È stato utilizzato per controllare l'accesso dell'utente a determinate tabelle e record in base ad alcune politiche. Applicando la sicurezza a livello di riga, limiteremo gli utenti a visualizzare o manipolare solo i record della tabella contenenti i dati che li riguardano invece di apportare modifiche ai record di altri utenti.

È necessario aprire la shell SQL per PostgreSQL 13 dalla barra di avvio di Windows 10. Dopo averlo aperto, otterrai la schermata nera della shell SQL. Aggiungi il nome del server, il nome del database, il numero di porta, il nome utente e la password quando viene chiesto uno per uno. La shell SQL sarà pronta per il tuo ulteriore utilizzo.

L'utente del database "Postgres"È già un superutente del tuo sistema. Se non hai effettuato l'accesso da un superutente, devi accedervi. Il metodo per accedere da un account superutente è utilizzando il comando indicato di seguito nella shell con un segno "\ c" con il nome di un database da utilizzare, e.G. Postgres, insieme al nome di un superutente, E.G. Postgres. Potrebbe richiedere la password per un account se non già effettuato l'accesso.

Crea tabella:

È necessario creare una nuova tabella all'interno del superutente e del database "Postgres". Quindi, abbiamo usato il CREA TABELLA query per creare una tabella "test"Con alcune colonne come mostrato.

Dopo aver creato un tavolo "test", Abbiamo inserito tre record per 3 diversi utenti, E.G. Aqsa, Raza e Rimsha, tramite "INSERIRE"Istruzioni nella shell.

La tabella e i suoi record possono essere visualizzati sullo schermo SQL Shell usando il SELEZIONARE Domanda.

Crea utenti:

Abbiamo lavorato in shell SQL sul test del tavolo con il superutente "Postgres"Ma dobbiamo creare altri utenti come menzionato nella tabella, E.G. Aqsa, Raza e Rimsha. Quindi, abbiamo usato il CREARE UN UTENTE comanda di farlo durante l'assegnazione della password. Dopodiché, abbiamo concesso SELEZIONARE privilegi su tutti questi utenti dopo la creazione.

Quando abbiamo usato gli utenti appena creati per recuperare i record di una tabella "test"L'output mostra che un utente può accedere facilmente a tutte le righe da una tabella anziché a una riga che ha il suo nome. L'output seguente mostra l'output per l'accesso al test della tabella con un utente "AQSA".

L'output di sottolinea dimostra l'output per l'accesso al test della tabella con un utente "Raza".

L'output seguente è per un test della tabella con un utente "Rimsha".

Crea politica:

Lo scopo della sicurezza a livello di riga è di limitare gli utenti solo a recuperare i record con le informazioni relative a se stessi. Vogliamo la sicurezza a livello di riga per gli utenti di non recuperare i record di altri utenti. Cominciamo accedi dal superutente "Postgres"Nella shell SQL.

Dopo l'accesso, abbiamo utilizzato l'istruzione di Crea politica mostrata di seguito per creare una politica denominata "nuovo" sul tavolo "test". Abbiamo usato il “TUTTO"Parole chiave qui che rappresentano tutti i privilegi, E.G. Inserisci, aggiorna, modifica, ecc. È possibile renderlo particolare aggiungendo un inserto, selezionare, aggiornare o qualsiasi parola chiave. Il ruolo pubblico ha indicato tutti i ruoli. Puoi specificare anche l'utente o il ruolo. Abbiamo usato il “Usando"Espressione qui. Ciò confronterà il nome utente attualmente accessibile con la tabella "Test" nella colonna "Nome".

Abilita sicurezza a livello di riga:

Solo creare la politica ed essere stato applicato a ruoli e tabelle non è sufficiente per ottenere un cambiamento. È necessario abilitare la sicurezza a livello di riga sulla tabella "Test" che ha una politica impostata appena prima. Quindi, abbiamo usato il superutente "Postgres"Per abilitare la sicurezza a livello di riga su una tabella"test" con il Alter tabella comando mostrato nello screenshot allegato.

Come abbiamo attualmente effettuato dal superutente "Postgres", il comando "SELEZIONARE"Insieme alla parola chiave"utente attuale"Mostra il nome utente nell'output. Al momento dell'accesso alla tabella con il comando Select durante l'accesso dal superutente, mostra tutti i record di una tabella "test". Ciò significa che la politica e la sicurezza a livello di riga non influiscono sul superutente.

Ora, accederemo dai nuovi ruoli creati qualche tempo fa. Abbiamo effettuato l'accesso dall'utente "aqsa"E ha controllato l'utente attualmente accessibile. Ritorna "aqsa"Come utente attuale. Dopo aver preso il tavolo "test"I record di un comando selezionati, restituisce le righe appartenenti solo al nome utente"aqsa"Abbinato a una colonna" nome "nella tabella. Tutte le altre righe sono state protette e non possono essere visualizzate da un utente "aqsa".

Accediamo dall'altro utente, "Raza"Dal terminale e controlla l'utente corrente. È tornato "Raza"Come utente attuale. L'output per il comando Select mostra solo il record per un utente "Raza"Dal tavolo"test".

La sicurezza a livello di riga ha funzionato allo stesso modo sull'utente "Rimsha"Secondo l'immagine di output di seguito.

Sicurezza a livello di riga di bypass:

Le autorizzazioni di bypass possono essere utilizzate per annullare la sicurezza a livello di riga da parte di alcuni superuseri e altri utenti privilegiati. L'utente che ha privilegi di sicurezza a livello di riga di bypass può scavalcare la sicurezza a livello di riga per qualsiasi tabella e accedere anche ai record di altri utenti. Quindi, abbiamo effettuato l'accesso dall'account superuser all'interno del terminale.

Successivamente, abbiamo modificato i diritti di un utente "Raza"Da un comando utente alter applicato su di esso. Abbiamo assegnato l'utente "raza", i privilegi di bypassare la sicurezza a livello di riga da "bypassrls"Menzionato nella query dell'utente alter come mostrato.

Accedi dall'utente "Raza"Dal guscio. Puoi vedere che l'utente "raza" può ora superare la politica di sicurezza a livello di riga e può facilmente vedere e modificare i record di tutti gli altri utenti dalla tabella "test"Tramite la query Seleziona.

POLITICA DI DROP:

Accediamo di nuovo dal superutente per far cadere una politica "nuovo"Che è stato applicato sulla tabella" Test ".

Il comando della politica di drop è stato utilizzato nella shell per far cadere una politica denominata "nuovo"Dalla tabella" Test ".

Dopo aver abbandonato una politica, abbiamo effettuato l'accesso da uno degli utenti per verificare se funziona ancora o no. Abbiamo scoperto che gocciolare una politica non potrebbe cambiare l'utente "aqsa"O altri per recuperare i registri di una tabella"test". Questo perché non abbiamo ancora disabilitato la sicurezza a livello di riga sulla tabella.

Disabilita sicurezza a livello di riga:

Per disabilitare la sicurezza a livello di riga su una tabella "test", Accedi come superutente e usa la query mostrata nello scatto seguente.

Dopo l'accesso dall'altro utente, sarai in grado di visualizzare e modificare facilmente i record.

Conclusione:

Questo tutorial contiene una breve dimostrazione di sicurezza a livello di riga utilizzata per limitare gli utenti all'accesso ai dati a fini di sicurezza. La sicurezza a livello di riga è stata raggiunta creando utenti, politiche e quindi consentendo la sicurezza. L'articolo contiene inoltre l'implementazione in merito alla caduta di una politica e alla disabilitazione della sicurezza a livello di riga. Quindi, questo articolo è un pacchetto bonus per i nostri utenti di fare di tutto, dall'abilitazione della disabilitazione della sicurezza a livello di riga all'interno di una presa.