DataSunrise Consegue la Certificazione AWS DevOps Competency per AWS DevSecOps e Monitoraggio, Logging e Performance

Storico delle Attività del Database

Storico delle Attività del Database

Esempio visivo del tracciamento dello storico delle attività del database
Il tracciamento dello storico delle attività del database aiuta le organizzazioni a rilevare le minacce e a mantenere la compliance con facilità.

Introduzione

Il tracciamento dello storico delle attività del database è fondamentale per identificare potenziali minacce prima che diventino incidenti gravi. Esaminando i modelli di accesso e il comportamento delle query, le organizzazioni possono individuare anomalie, far rispettare le policy e rafforzare la protezione dei dati.

Mantenere un registro delle operazioni del database supporta la sicurezza dell’infrastruttura, garantisce una compliance costante e aiuta a ottimizzare le prestazioni. I registri che indicano chi ha avuto accesso a quali tabelle, a che ora e con quali azioni forniscono ai team la chiarezza necessaria per indagare su comportamenti sospetti e risolvere rapidamente eventuali problemi.

Ricerche di Dtex Systems dimostrano che il 68% dei casi di rischio interno è stato prevenuto grazie a misure proactive come regole di accesso raffinate e formazione mirata, abilitate da una maggiore visibilità sull’attività degli utenti.

Cosa Registra lo Storico delle Attività del Database

In sostanza, lo storico delle attività del database si riferisce a un registro cronologico delle azioni eseguite su un sistema di database. Queste azioni includono tipicamente:

  1. Operazioni INSERT, UPDATE e DELETE
  2. Modifiche allo schema o cambiamenti strutturali
  3. Attività delle sessioni utente (accessi e disconnessioni)
  4. Query SQL eseguite
  5. Modifiche ai permessi e tentativi di accesso

Questi registri rivestono molteplici ruoli. Durante gli audit di sicurezza, aiutano a individuare lacune nel controllo degli accessi. Ai fini forensi, forniscono una traccia temporale di ogni azione significativa. E, nell’ottimizzazione delle prestazioni, evidenziano query lente o sessioni problematiche.

I quadri di compliance come HIPAA e GDPR richiedono alle organizzazioni di mantenere registri delle attività per garantire tracciabilità e responsabilità.

Registrazione dell’Attività a Livello di Tabella con PostgreSQL

Per una visibilità a livello di riga, PostgreSQL consente ai team di configurare dei trigger sulle tabelle sensibili. Di seguito viene riportato un esempio che cattura operazioni dettagliate sui dati:

# Abilitare pgAudit su PostgreSQL 16
psql -U postgres -c "CREATE EXTENSION IF NOT EXISTS pgaudit;"
psql -U postgres -c "ALTER SYSTEM SET shared_preload_libraries = 'pgaudit';"
psql -U postgres -c "ALTER SYSTEM SET pgaudit.log = 'read,write';"
sudo systemctl restart postgresql

Audit di base prima di inviare i log a DataSunrise.

-- PostgreSQL: Cattura l'attività dei dati su sensitive_table
CREATE TABLE data_activity_log (
  id SERIAL PRIMARY KEY,
  table_name TEXT,
  operation TEXT,
  user_name TEXT,
  old_data JSONB,
  new_data JSONB,
  activity_time TIMESTAMP DEFAULT current_timestamp
);

CREATE OR REPLACE FUNCTION log_data_activity()
RETURNS TRIGGER AS $$
BEGIN
  INSERT INTO data_activity_log(table_name, operation, user_name, old_data, new_data)
  VALUES (
    TG_TABLE_NAME,
    TG_OP,
    session_user,
    row_to_json(OLD),
    row_to_json(NEW)
  );
  RETURN NEW;
END;
$$ LANGUAGE plpgsql;

CREATE TRIGGER trg_data_activity
AFTER INSERT OR UPDATE OR DELETE ON sensitive_table
FOR EACH ROW EXECUTE FUNCTION log_data_activity();

Questo metodo funziona bene per un monitoraggio mirato. Tuttavia, per ambienti aziendali su larga scala, esso rappresenta solo un tassello in una strategia ben più ampia per la gestione dello storico delle attività del database.

Query per Recuperare l’Attività Recente (Esempio PostgreSQL)

-- Visualizza le 10 operazioni più recenti dal registro delle attività
SELECT 
  id,
  table_name,
  operation,
  user_name,
  activity_time
FROM 
  data_activity_log
ORDER BY 
  activity_time DESC
LIMIT 10;

Questa query fornisce una rapida panoramica delle azioni recenti tracciate dal trigger personalizzato su PostgreSQL. È possibile adattare il LIMIT o aggiungere filtri per concentrarsi su un utente o una tabella specifica.

Funzionalità di Monitoraggio Integrate nei Database

La maggior parte delle piattaforme DBMS moderne fornisce capacità di registrazione che catturano un livello base del comportamento del sistema. Questo di solito include query eseguite, eventi di sessione e tracciamento degli errori.

Ad esempio, i log di PostgreSQL sono tipicamente memorizzati in:

C:\Program Files\PostgreSQL\14\data\log
/var/log/postgresql/postgresql-16-main.log
Log di attività di PostgreSQL che mostra l'errore di un trigger utente
I log nativi di PostgreSQL offrono una visione grezza del comportamento del sistema e degli eventi di errore.

Questi log nativi sono utili per le diagnostiche di routine, ma mancano di capacità di analisi avanzata. Per le organizzazioni che necessitano di reportistica dettagliata, formattazione per la compliance o allarmi in tempo reale, gli strumenti nativi risultano spesso insufficienti senza una configurazione personalizzata.

Impatto della Latenza in Base al Volume dei Log

10 K rows → +2 ms
1 M rows → +7 ms
10 M rows → +14 ms

Schema Standardizzato per Eventi di Audit (per SIEM e Correlazione Cross-DB)

Unificare i log provenienti da PostgreSQL, SQL Server, MySQL e motori cloud inizia con uno schema coerente. Utilizzi il seguente modello di campi per normalizzare le uscite native prima di esportarle verso il SIEM o le pipeline di DataSunrise.

CampoTipoDescrizione
event_timetimestampOrario UTC in cui l’azione è avvenuta
actorstringUtente autenticato o account di servizio
rolestringRuolo/privilegi effettivi del DB
client_ipipIP di origine (NAT-aware, se disponibile)
actionenumselect|insert|update|delete|ddl|login|grant|revoke|call
objectstringOggetto qualificato (schema.tabella o oggetto database)
statementstringSQL normalizzato o descrittore dell’operazione
statusenumsuccess|denied|failed
rows_affectedintegerCardinalità dell’impatto per DML
sensitivity_tagsarray<string>Etichette come PII, PHI, PCI, Secrets
session_idstringChiave di correlazione stabile per connessione
enginestringpostgres|sqlserver|mysql|oracle|redshift|…

Esempio di Evento Normalizzato (JSON)

{
  "event_time": "2025-08-28T10:02:14Z",
  "actor": "app_reader",
  "role": "readonly",
  "client_ip": "203.0.113.24",
  "action": "select",
  "object": "public.customers",
  "statement": "SELECT * FROM customers WHERE id = ?",
  "status": "success",
  "rows_affected": 1,
  "sensitivity_tags": ["PII"],
  "session_id": "a9d2b4c1-58f0-4e2d-bc66-3d1f3a61e2a0",
  "engine": "postgres"
}

PostgreSQL: Vista di Normalizzazione Leggera

-- Esempio: normalizza le righe native di pgaudit in uno schema standard
-- Presuppone una tabella di staging pgaudit_raw(line text)
CREATE OR REPLACE VIEW audit_normalized AS
SELECT
  (regexp_match(line, 'time=(.*?) '))[1]::timestamptz         AS event_time,
  (regexp_match(line, 'user=(.*?) '))[1]                       AS actor,
  (regexp_match(line, 'db=(.*?) '))[1]                         AS database,
  (regexp_match(line, 'client=(.*?) '))[1]                     AS client_ip,
  lower((regexp_match(line, 'ps=(.*?) '))[1])                  AS action,
  (regexp_match(line, 'obj=.*?(?:schema=(.*?); relname=(.*?);)'))[1] || '.' ||
  (regexp_match(line, 'obj=.*?(?:schema=(.*?); relname=(.*?);)'))[2] AS object,
  (regexp_match(line, 'statement=(.*)$'))[1]                   AS statement,
  CASE WHEN line LIKE '%denied%' THEN 'denied' ELSE 'success' END AS status,
  NULL::int                                                    AS rows_affected,
  NULL::text[]                                                 AS sensitivity_tags,
  (regexp_match(line, 'session=.*?(\\S+)'))[1]                 AS session_id,
  'postgres'                                                   AS engine
FROM pgaudit_raw;

Suggerimento: Etichettare la sensibilità (sensitivity_tags) all’ingestione utilizzando il discovery di DataSunrise o i cataloghi dati esistenti. Questo consente un allarme basato sui dati PII (ad es., bulk SELECT su PII → alta gravità) senza l’uso di regex fragile al momento della query.

Costruire uno Storico delle Attività del Database Efficace

Lista di Controllo Essenziale

  • ✔ Catturare l’identità dell’utente, i ruoli e il contesto della sessione
  • ✔ Registrare tutte le modifiche DML e DDL con timestamp
  • ✔ Monitorare i tentativi di accesso falliti e l’elevazione dei privilegi
  • ✔ Classificare gli oggetti sensibili (PII, PHI, PCI) per allarmi di alta priorità
  • ✔ Memorizzare i log in modo sicuro con rotazione, conservazione e controlli di integrità

Cronologia dell’Evoluzione

1: Log nativi del DB — cattura di query/errore di base
2: Trigger e script manuali — granulari ma ad alta manutenzione
3: Esportazioni SIEM — visibilità centralizzata, contesto DB limitato
4: DataSunrise — normalizzato, cross-DB, allarmi in tempo reale
5: Rilevamento di anomalie guidato da AI con DataSunrise — difesa predittiva

Perché Molte Organizzazioni Cercano Soluzioni Oltre i Log Nativi

Gli strumenti di monitoraggio standard soddisfano le esigenze di base, ma spesso si fermano a questo livello. La correlazione in tempo reale degli eventi, il filtraggio intelligente e i cruscotti centralizzati richiedono solitamente piattaforme di terze parti.

Ad esempio, un’azienda al dettaglio che utilizza PostgreSQL potrebbe basarsi sui file di log per tracciare i tentativi di accesso falliti. Ma senza allarmi in tempo reale o contesto di sessione, il team individua l’attività di forza bruta solo durante le revisioni settimanali dei log – e ormai la finestra d’attacco è passata.

Inoltre, i log grezzi sono difficili da cercare e possono far accumulare un eccesso di informazioni non rilevanti. Senza normalizzazione o allarmi integrati, la risposta agli incidenti diventa reattiva anziché proattiva.

Configurazione del Monitoraggio delle Attività in DataSunrise

Per i team che utilizzano DataSunrise, catturare lo storico delle attività del database è semplificato. I passaggi per la configurazione includono:

  1. Acceda alla console di DataSunrise
  2. Navigare su “Instances” e selezionare “+ Add New Database”
  3. Inserisca i parametri di connessione richiesti
  4. Salvi e registri il database
  5. Crei e attivi una nuova regola dalla sezione “Audit”
Schermata di configurazione della regola di audit in DataSunrise per lo storico delle attività del database
Creazione di una regola di audit in DataSunrise per tracciare tutti gli eventi di attività rilevanti.
  1. Selezioni l’istanza appropriata e definisca l’intervallo di registrazione
  2. Visualizzi i log utilizzando la scheda “Transactional Trails”
Elenco delle regole di audit configurate in DataSunrise per il database
Verifichi le regole attive e le modifichi secondo necessità per ogni ambiente.
Transactional Trails che mostra dati di audit dettagliati
Transactional Trails fornisce uno storico visivo di audit di query SQL, azioni utente e anomalie di accesso.

Vantaggi di DataSunrise per la Registrazione e la Sicurezza

DataSunrise potenzia la tua infrastruttura di monitoraggio con funzionalità di livello enterprise quali:

  1. Creazione centralizzata delle regole in ambienti eterogenei
  2. Log standardizzati da più motori di database
  3. Filtri avanzati per un’analisi più rapida degli incidenti
  4. Allarmi in tempo reale attivati da violazioni delle regole
  5. Report predefiniti in linea con le normative di settore

# Invia direttamente le tracce di DataSunrise a Splunk
curl -k https://splunk.example:8088/services/collector \
  -H "Authorization: Splunk $HEC_TOKEN" \
  -d '{"event":'"${JSON_PAYLOAD}"'}'

Esempio di Storico delle Attività Cross-Database

I database administrator si trovano spesso a dover estrarre lo storico delle attività da piattaforme differenti. Di seguito viene riportato un esempio in SQL Server che recupera i record di audit recenti da un file di audit configurato:

-- SQL Server: Query per gli eventi di audit recenti
SELECT 
    event_time,
    server_principal_name,
    database_name,
    statement
FROM sys.fn_get_audit_file('C:\SQLAudits\*.sqlaudit', DEFAULT, DEFAULT)
WHERE event_time > DATEADD(HOUR, -1, GETDATE())
ORDER BY event_time DESC;

Questo approccio funziona, ma ogni DBMS ha una propria sintassi, posizioni di memorizzazione e particolarità nei filtri. Gestire formati di log differenti diventa rapidamente oneroso. È qui che una piattaforma unificata come DataSunrise aggiunge valore, normalizzando fonti di audit eterogenee in uno storico delle attività unico, ricercabile e conforme.

Monitoraggio Unificato per Cloud e On-Prem

Che la sua infrastruttura operi su bare metal, in container o in ambienti multi-cloud, DataSunrise si adatta. Essa fornisce una visione coerente dello storico delle attività del database indipendentemente dalla posizione dei carichi di lavoro.

Questo modello unificato dà ai team della sicurezza e degli audit la piena visibilità necessaria per far rispettare le policy e rilevare rapidamente eventuali anomalie.

Perché lo Storico delle Attività del Database è Importante

I registri storici delle attività non servono solo per la compliance, ma sono essenziali per la salute operativa e la riduzione del rischio a lungo termine:

  1. Evidenziare rischi nascosti e abusi interni
  2. Ottimizzare le query e rilevare i colli di bottiglia
  3. Generare report di compliance strutturati su richiesta
  4. Garantire la tracciabilità in caso di violazione o incidente
  5. Correlare l’attività degli utenti tra applicazioni e ruoli

FAQ sullo Storico delle Attività del Database

Che cos’è lo storico delle attività del database?

Lo storico delle attività del database è il registro cronologico di query, accessi, modifiche dello schema e tentativi di accesso. Esso fornisce tracciabilità per le indagini, il monitoraggio della sicurezza e gli audit di compliance.

In che cosa si differenzia dalla registrazione standard?

I log standard spesso catturano errori ed eventi operativi. Lo storico delle attività collega le azioni direttamente agli utenti e agli oggetti dei dati, rendendolo fondamentale per la responsabilità e la reportistica normativa.

Quali normative richiedono il monitoraggio delle attività?

HIPAA, GDPR, PCI DSS e SOX richiedono alle organizzazioni di mantenere registri delle attività degli utenti. Questi quadri normativi enfatizzano la tracciabilità e la responsabilità nell’accesso ai dati.

La registrazione delle attività incide sulle prestazioni?

  • Incide in modo minimo se focalizzata su tabelle e utenti sensibili.
  • La registrazione ad alto volume può aumentare la latenza, mitigabile tramite rotazione e trasferimento dei log.
  • Piattaforme enterprise come DataSunrise ottimizzano la raccolta riducendo l’overhead.

Quali sono i vantaggi principali nell’utilizzo di una piattaforma come DataSunrise?

  • Visione centralizzata delle attività cross-database.
  • Allarmi in tempo reale per accessi sospetti.
  • Report di compliance preconfigurati.
  • Integrazione con SIEM e pipeline di monitoraggio.

Conclusione

Il monitoraggio dello storico delle attività del database non è facoltativo: è essenziale. Che Lei operi in un settore regolamentato o in un ambiente a zero trust, la visibilità sul comportamento del database è cruciale per garantire l’integrità e la sicurezza dei dati. I log nativi offrono una telemetria di base, mentre strumenti come DataSunrise trasformano tali dati in intelligence operativa.

Con DataSunrise, i team possono auditare le azioni degli utenti, individuare minacce in tempo reale e mantenere una compliance continua, in qualsiasi ambiente. Provi la nostra demo oppure consulti la panoramica del prodotto per scoprire come passare da una semplice registrazione a una difesa proattiva.

Successivo

Storico delle Attività del Database in MongoDB: Monitoraggio, Auditing e Best Practices di Sicurezza

Storico delle Attività del Database in MongoDB: Monitoraggio, Auditing e Best Practices di Sicurezza

Scopri di più

Ha bisogno del nostro team di supporto?

I nostri esperti saranno lieti di rispondere alle Sue domande.

Informazioni generali:
[email protected]
Servizio clienti e supporto tecnico:
support.datasunrise.com
Richieste di collaborazione e alleanza:
[email protected]