Loggning, spårning och revision

Snowflake-hantering, styrning och samarbete

Emily Melhuish

Technical Curriculum Developer, Snowflake

Revisionsproblemet

  • Vem kom åt kreditbetyg de senaste 90 dagarna?
  • Vilka lagrade procedurer kördes tidigt en specifik morgon?
  • Kom några inloggningar från utanför företagsnätverket?
  • Registret måste finnas innan frågan ställs

Ikon för revision

Snowflake-hantering, styrning och samarbete

Vad är händelsetabeller?

  • Samlar logg- och spårningsdata från Snowflake-objekt – lagrade procedurer, Snowpark-funktioner, UDF:er
  • Skapas som en vanlig tabell och aktiveras sedan med ALTER_ACCOUNT
  • Logg- och spårningsmeddelanden skrivs automatiskt därifrån
  • Frågas med standard-SQL — inga externa loggverktyg behövs

Enkel händelsetabell

Snowflake-hantering, styrning och samarbete

Loggnivåer

 

Nivå Beskrivning
TRACE Varje funktionsinträde och -utträde — mest detaljerat
DEBUG Diagnostisk detaljinformation
INFO Normala exekveringsmilstolpar — rekommenderas för produktion
WARN Oväntade tillstånd som inte stoppade exekveringen
ERROR Fel
FATAL Kritiska fel som avbröt exekveringen
Snowflake-hantering, styrning och samarbete

Spårning

  • Registrerar exekveringsvägen genom en flerstegsprocess
  • Visar hur steg hänger samman, inte bara enskilda meddelanden
  • Registrerar varaktighet och ordning för varje steg
  • Spårningsdata skrivs till samma händelsetabell som loggdata

Spårning

Snowflake-hantering, styrning och samarbete

Använda LOGIN_HISTORY för revision

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;
Snowflake-hantering, styrning och samarbete

QUERY_HISTORY för revision

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;
Snowflake-hantering, styrning och samarbete

Det fullständiga revisionsspåret

 

Källa Vad som registreras Revisionsfråga
Händelsetabell Loggar och spårning från lagrade procedurer, Snowpark-funktioner Vad gjorde plattformen?
LOGIN_HISTORY Varje inloggningsförsök: användare, IP, metod, fel Vem anslöt, varifrån, misslyckades något?
QUERY_HISTORY Varje SQL-sats: användare, roll, lager, frågetext Vilka data användes, och av vem?
Snowflake-hantering, styrning och samarbete

Låt oss öva!

Snowflake-hantering, styrning och samarbete

Preparing Video For Download...