Logowanie, śledzenie i audyt

Zarządzanie, ład danych i współpraca w Snowflake

Emily Melhuish

Technical Curriculum Developer, Snowflake

Problem audytu

  • Kto uzyskał dostęp do punktacji kredytowej w ciągu ostatnich 90 dni?
  • Które procedury składowane uruchomiono we wczesnych godzinach danego dnia?
  • Czy jakieś logowania pochodziły spoza sieci firmowej?
  • Rekord musi istnieć, zanim zostanie zadane pytanie

Ikona audytu

Zarządzanie, ład danych i współpraca w Snowflake

Czym są tabele zdarzeń?

  • Rejestruje dane logów i śladów emitowane przez obiekty Snowflake – procedury składowane, funkcje Snowpark, UDF
  • Tworzona jak zwykła tabela, następnie ustawiana jako aktywna za pomocą ALTER_ACCOUNT
  • Komunikaty logów i śladów zapisywane automatycznie od tego momentu
  • Zapytania standardowym SQL — bez zewnętrznych narzędzi do logowania

event_table_simple.png

Zarządzanie, ład danych i współpraca w Snowflake

Poziomy logowania

 

Poziom Opis
TRACE Każde wejście i wyjście funkcji — najbardziej szczegółowy
DEBUG Szczegóły diagnostyczne
INFO Kluczowe etapy wykonania — zalecany dla środowisk produkcyjnych
WARN Nieoczekiwane warunki, które nie przerwały wykonania
ERROR Błędy
FATAL Błędy krytyczne, które wstrzymały wykonanie
Zarządzanie, ład danych i współpraca w Snowflake

Śledzenie

  • Rejestruje ścieżkę wykonania przez proces wieloetapowy
  • Pokazuje powiązania między krokami, nie tylko pojedyncze komunikaty
  • Zapisuje czas trwania i kolejność każdego kroku
  • Dane śledzenia zapisywane w tej samej tabeli zdarzeń co logi

tracing_v2.png

Zarządzanie, ład danych i współpraca w Snowflake

Audyt z użyciem LOGIN_HISTORY

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;
Zarządzanie, ład danych i współpraca w Snowflake

QUERY_HISTORY do audytu

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;
Zarządzanie, ład danych i współpraca w Snowflake

Kompletna ścieżka audytu

 

Źródło Co rejestruje Pytanie audytowe
Tabela zdarzeń Logi i ślady z procedur składowanych, funkcji Snowpark Co zrobiła platforma?
LOGIN_HISTORY Każda próba logowania: użytkownik, IP, metoda, błędy Kto się połączył, skąd i czy coś się nie powiodło?
QUERY_HISTORY Każde polecenie SQL: użytkownik, rola, warehouse, treść zapytania Jakie dane były używane i przez kogo?
Zarządzanie, ład danych i współpraca w Snowflake

Czas na ćwiczenia!

Zarządzanie, ład danych i współpraca w Snowflake

Preparing Video For Download...