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;
