Accedere a base di dati senza problemi di sicurezza

Nella vecchia maniera, quando si vuole dare i dati ad uno statistico per farli analizzare, gli si fornisce una copia. Questi di solito vengono da una base di dati, propria o impropria. 

 

In questa casistica della copia rientrano la maggior parte delle micro e piccole aziende. Quando i dati diventano troppi, per fortuna non li si può mandare per email o per chat, per dei limiti, ad esempio nelle dimensioni dello allegato. E di solito in questi casi i dati vengono già da una base di dati, non da una soluzione temporanea come i fogli di calcolo.

 

In questi casi si danno le credenziali di accesso alla base di dati. Bisogna però fare molta attenzione a quali credenziali. Perché se dai anche quelle da amministratore, lo statistico o chi per lui fa l’analisi, può fare anche danni accidentali, come eliminare colonne e/o righe. Ecco perché si procede per gradi: prima si danno gli accessi ai dati SOLO inl lettura, visto che non si tratta di una copia dell’intera base di dati, poi, se sorgono le necessità anche in SCRITTURA, possibilmente procedendo per gradi. 

 

In dei casi l’azienda non risulta proprietaria della base di dati, ad esempio quando usa certi CRM, tipo Hubspot. In quel caso la forma dell’accesso cambia, servono delle chiavi API. Ma non cambia la sostanza: queste chiavi possono avere diversi tipi di permessi e torna ovviamente il discorso lettura e scrittura. 

 

Un esempio tecnico di creazione diritti di sola lettura per una base di dati:

 

— 1) Creiamo un nuovo account di sola lettura per il consulente

CREATE USER consulente_in_lettura

  WITH PASSWORD ‘nome_consulente_password_forte’;

 

— 2) Consentiamo al consulente di connettersi al database aziendale

GRANT CONNECT ON DATABASE database_aziendale

  TO consulente_in_lettura;

 

— 3) Consentiamo al consulente di “vedere” i dati all’interno dello schema principale

GRANT USAGE ON SCHEMA public

  TO consulente_in_lettura;

 

una buona pratica, che però presuppone la presenza di informatici nell’azienda, sta nel condividere un sotto insieme della base di dati anziché l’intera base di dati, tramite una vista:

 

— 1) Creiamo una vista che contiene solo i dati specifici da mostrare al consulente

In questo esempio filtriamo gli ordini dell’ultimo anno, ma tu puoi personalizzare

le colonne e le condizioni a piacimento.

CREATE OR REPLACE VIEW vista_consulente_ordini AS

SELECT

  id_ordine,

  data_ordine,

  cliente,

  importo

FROM public.ordini

WHERE data_ordine >= (CURRENT_DATE – INTERVAL ‘1 year’);

 

— 2) Creiamo (se non esiste già) l’utente di sola lettura

CREATE USER consulente_in_lettura

  WITH PASSWORD ‘nome_consulente_password_forte’;

 

— 3) Consentiamo al consulente di connettersi al database aziendale

GRANT CONNECT ON DATABASE database_aziendale

  TO consulente_in_lettura;

 

— 4) Consentiamo al consulente di “vedere” il contenitore (schema) dove c’è la vista

GRANT USAGE ON SCHEMA public

  TO consulente_in_lettura;

 

— 5) Concediamo al consulente il permesso di leggere solo la vista, NON le tabelle sottostanti

GRANT SELECT ON vista_consulente_ordini

  TO consulente_in_lettura;

 

 

 

Privacy Policy
en_USEnglish