Per limitare l'accesso di PostgreSQL a tabelle e colonne specifiche puoi utilizzare lo schema e le istruzioni GRANT selettive.
Fare riferimento alle seguenti istruzioni su come limitare l'accesso a determinate tabelle.
Tuttavia, se è necessario limitare l'accesso a colonne specifiche, potrebbe essere necessario utilizzare una combinazione di schemi e viste per limitare l'accesso. Puoi farlo anche se il tuo database ha più di 1000 tabelle e stai tentando di connetterti a Chartio.
-
Collegati al tuo database PostgreSQL usando psql o pgadmin. Esegui quanto segue per restituire un elenco di tabelle nel database.
sudo -u postgres psql c nomedatabase;
-
Crea uno schema specifico per l'utente di sola lettura di Chartio, esegui quanto segue:
CREA SCHEMA chartio_read_only; CREA RUOLO chartio_schema_user LOGIN PASSWORD ‘secure_password’; GRANT CONNECT ON DATABASE databasename TO chartio_schema_user; CONCEDERE L'UTILIZZO SU SCHEMA chartio_read_only A chartio_schema_user;
-
Dai un'occhiata alle relazioni del database usando il comando d.
d
Schema | Nome | Digita | Proprietario ———-+————————-+———-+————– pubblico | Conti | tavola | postgres pubblico | Visitatori | tavola | postgres pubblico | Utenti | tavola | postgres pubblico | Abbonamenti | tavola | postgres
-
La tabella Account contiene informazioni riservate e desideri che Chartio acceda solo alle colonne Account_ID e Date__Created ._ Eseguire quanto segue per aggiungere una vista allo schema chartio_read_only e concedere l'accesso a tale vista a chartio_schema_user.
CREATE VIEW chartio_read_only."Account" AS SELECT Account_ID, Date_Created FROM Accounts; CONCEDERE SELEZIONA SU chartio_read_only."Account" A chartio_schema_user;
-
Concedi le autorizzazioni per selezionare tutti i dati dalla tabella Visitatori.
CREATE VIEW chartio_read_only.”Visitatori” COME SELEZIONARE * DA Visitatori; CONCEDERE SELEZIONA SU chartio_read_only."Visitatori" A chartio_schema_user;
Ora, se colleghi chartio_schema_user al tuo database, sarà in grado di accedere solo alle due viste limitate che hai concesso allo schema.
Per ulteriori informazioni, consulta la documentazione di PostgreSQL.