Logging, Tracing, and Audit

Gestione, governance e collaborazione in Snowflake

Emily Melhuish

Technical Curriculum Developer, Snowflake

Il problema dell’audit

  • Chi ha consultato i credit scores negli ultimi 90 giorni?
  • Quali stored procedure sono girate nelle prime ore di una certa mattina?
  • Ci sono stati login da fuori rete aziendale?
  • Il record deve esistere prima di porre la domanda

audit_icon.png

Gestione, governance e collaborazione in Snowflake

Cosa sono le Event Table?

  • Acquisisce log e trace emessi da oggetti Snowflake: stored procedure, funzioni Snowpark, UDF
  • Creata come una normale tabella, poi attivata con ALTER_ACCOUNT
  • Da quel momento messaggi di log e trace scritti in automatico
  • Interroga con SQL standard — nessun tool esterno richiesto

event_table_simple.png

Gestione, governance e collaborazione in Snowflake

Livelli di log

 

Level Description
TRACE Ogni ingresso/uscita di funzione — più granulare
DEBUG Dettagli diagnostici
INFO Tappe di esecuzione normali — consigliato in produzione
WARN Condizioni inattese che non fermano l’esecuzione
ERROR Errori
FATAL Errori critici che bloccano l’esecuzione
Gestione, governance e collaborazione in Snowflake

Tracing

  • Traccia il percorso di esecuzione in un processo multi-step
  • Mostra come i passaggi si collegano, non solo i singoli messaggi
  • Registra durata e ordine di ogni passaggio
  • I trace vanno nella stessa event table dei log

tracing_v2.png

Gestione, governance e collaborazione in Snowflake

Usare LOGIN_HISTORY per l’audit

SELECT user_name,
       event_timestamp,
       client_ip,
       authentication_method,
       error_code,
       error_message
FROM SNOWFLAKE.ACCOUNT_USAGE.LOGIN_HISTORY
WHERE event_timestamp >= DATEADD('day', -90, CURRENT_TIMESTAMP())
  AND client_ip NOT LIKE '203.0.113.%'
ORDER BY event_timestamp DESC;
Gestione, governance e collaborazione in Snowflake

QUERY_HISTORY per l’audit

SELECT user_name,
       role_name,
       warehouse_name,
       query_text,
       start_time,
       end_time
FROM SNOWFLAKE.ACCOUNT_USAGE.QUERY_HISTORY
WHERE start_time >= DATEADD('day', -90, CURRENT_TIMESTAMP())
  AND query_text ILIKE '%credit_scores%'
ORDER BY start_time DESC;
Gestione, governance e collaborazione in Snowflake

Il tracciato di audit completo

 

Source What it captures Audit question answered
Event table Logs and traces from stored procedures, Snowpark functions What did the platform do?
LOGIN_HISTORY Every login attempt: user, IP, method, errors Who connected, from where, did anything fail?
QUERY_HISTORY Every SQL statement: user, role, warehouse, query text What data was touched, and by whom?
Gestione, governance e collaborazione in Snowflake

Ayo berlatih!

Gestione, governance e collaborazione in Snowflake

Preparing Video For Download...