Protokoly auditu v Azure Database for MySQL

PLATÍ PRO: Azure Database for MySQL – jednoúčelový server

Důležité

Azure Database for MySQL – Jednoúčelový server je na cestě vyřazení z provozu. Důrazně doporučujeme upgradovat na flexibilní server Azure Database for MySQL. Další informace o migraci na flexibilní server Azure Database for MySQL najdete v tématu Co se děje s Azure Database for MySQL jednoúčelovým serverem?

V Azure Database for MySQL je protokol auditu k dispozici uživatelům. Protokol auditu se dá použít ke sledování aktivit na úrovni databáze a běžně se používá pro dodržování předpisů.

Konfigurace protokolování auditu

Důležité

Doporučuje se protokolovat pouze typy událostí a uživatele potřebné pro účely auditování, aby se zajistilo, že výkon vašeho serveru nebude výrazně ovlivněn a bude shromažďováno minimální množství dat.

Ve výchozím nastavení je protokol auditu zakázaný. Pokud ho chcete povolit, nastavte audit_log_enabled na ZAPNUTO.

Mezi další parametry, které můžete upravit, patří:

  • audit_log_events: řídí události, které se mají protokolovat. Konkrétní události auditu najdete v následující tabulce.
  • audit_log_include_users: Uživatelé MySQL, kteří mají být zahrnuti pro protokolování. Výchozí hodnota tohoto parametru je prázdná, což bude zahrnovat všechny uživatele pro protokolování. To má vyšší prioritu před audit_log_exclude_users. Maximální délka parametru je 512 znaků.
  • audit_log_exclude_users: Uživatelé MySQL, kteří mají být vyloučeni z protokolování. Maximální délka parametru je 512 znaků.

Poznámka

audit_log_include_users má vyšší prioritu před audit_log_exclude_users. Pokud například audit_log_include_users = demouser ademouseraudit_log_exclude_users = , uživatel bude zahrnut do protokolů auditu, protože audit_log_include_users má vyšší prioritu.

Událost Popis
CONNECTION – Zahájení připojení (úspěšné nebo neúspěšné)
– Opětovné ověření uživatele s jiným uživatelem nebo heslem během relace
– Ukončení připojení
DML_SELECT Dotazy SELECT
DML_NONSELECT DOTAZY INSERT,DELETE/UPDATE
DML DML = DML_SELECT + DML_NONSELECT
DDL Dotazy jako "DROP DATABASE"
DCL Dotazy jako "UDĚLIT OPRÁVNĚNÍ"
ADMIN Dotazy jako "ZOBRAZIT STAV"
GENERAL Vše v DML_SELECT, DML_NONSELECT, DML, DDL, DCL a ADMIN
TABLE_ACCESS – K dispozici pro MySQL 5.7 a MySQL 8.0
- Příkazy pro čtení tabulek, například SELECT nebo INSERT INTO ... VYBERTE
– Příkazy pro odstranění tabulky, například DELETE nebo TRUNCATE TABLE
- Příkazy vložení tabulky, jako je INSERT nebo REPLACE
– Příkazy aktualizace tabulky, například UPDATE

Přístup k protokolům auditu

Protokoly auditu se integrují s diagnostickými protokoly služby Azure Monitor. Po povolení protokolů auditu na serveru MySQL je můžete posílat do protokolů služby Azure Monitor, služby Event Hubs nebo služby Azure Storage. Další informace o tom, jak povolit diagnostické protokoly v Azure Portal, najdete v článku portálu protokolů auditu.

Poznámka

Premium Storage účty se nepodporují, pokud odesíláte protokoly do úložiště Azure prostřednictvím diagnostiky a nastavení.

Schémata diagnostických protokolů

Následující části popisují výstup protokolů auditu MySQL na základě typu události. V závislosti na výstupní metodě se mohou zahrnutá pole a pořadí, ve kterém se zobrazují, lišit.

Připojení

Vlastnost Popis
TenantId ID vašeho tenanta
SourceSystem Azure
TimeGenerated [UTC] Časové razítko, kdy byl protokol zaznamenán v UTC
Type Typ protokolu. Vždy AzureDiagnostics
SubscriptionId GUID předplatného, do kterého server patří
ResourceGroup Název skupiny prostředků, do které server patří
ResourceProvider Název poskytovatele prostředků. Vždy MICROSOFT.DBFORMYSQL
ResourceType Servers
ResourceId Identifikátor URI prostředku
Resource Název serveru
Category MySqlAuditLogs
OperationName LogEvent
LogicalServerName_s Název serveru
event_class_s connection_log
event_subclass_s CONNECT, DISCONNECT( CHANGE USER k dispozici pouze pro MySQL 5.7)
connection_id_d Jedinečné ID připojení vygenerované mySQL
host_s Funkce Blank
ip_s IP adresa klienta, který se připojuje k MySQL
user_s Název uživatele provádějícího dotaz
db_s Název databáze připojené k
\_ResourceId Identifikátor URI prostředku

Obecné

Následující schéma platí pro typy událostí OBECNÉ, DML_SELECT, DML_NONSELECT, DML, DDL, DCL a ADMIN.

Poznámka

Pokud sql_textprotokol překročí 2048 znaků, protokol se zkrátí.

Vlastnost Popis
TenantId ID vašeho tenanta
SourceSystem Azure
TimeGenerated [UTC] Časové razítko, kdy byl protokol zaznamenán v UTC
Type Typ protokolu. Vždy AzureDiagnostics
SubscriptionId GUID předplatného, do kterého server patří
ResourceGroup Název skupiny prostředků, do které server patří
ResourceProvider Název poskytovatele prostředků. Vždy MICROSOFT.DBFORMYSQL
ResourceType Servers
ResourceId Identifikátor URI prostředku
Resource Název serveru
Category MySqlAuditLogs
OperationName LogEvent
LogicalServerName_s Název serveru
event_class_s general_log
event_subclass_s LOG, ERROR( RESULT k dispozici pouze pro MySQL 5.6)
event_time Čas zahájení dotazu v časovém razítku UTC
error_code_d Kód chyby, pokud dotaz selhal. 0 znamená, že žádná chyba
thread_id_d ID vlákna, které dotaz spustilo
host_s Funkce Blank
ip_s IP adresa klienta, který se připojuje k MySQL
user_s Název uživatele provádějícího dotaz
sql_text_s Úplný text dotazu
\_ResourceId Identifikátor URI prostředku

Přístup k tabulce

Poznámka

Protokoly přístupu k tabulce jsou výstupem pouze pro MySQL 5.7.
Pokud sql_textprotokol překročí 2048 znaků, protokol se zkrátí.

Vlastnost Popis
TenantId ID vašeho tenanta
SourceSystem Azure
TimeGenerated [UTC] Časové razítko, kdy byl protokol zaznamenán v UTC
Type Typ protokolu. Vždy AzureDiagnostics
SubscriptionId GUID předplatného, do kterého server patří
ResourceGroup Název skupiny prostředků, do které server patří
ResourceProvider Název poskytovatele prostředků. Vždy MICROSOFT.DBFORMYSQL
ResourceType Servers
ResourceId Identifikátor URI prostředku
Resource Název serveru
Category MySqlAuditLogs
OperationName LogEvent
LogicalServerName_s Název serveru
event_class_s table_access_log
event_subclass_s READ, INSERT, UPDATEnebo DELETE
connection_id_d Jedinečné ID připojení vygenerované mySQL
db_s Název databáze, ke které se přistupuje
table_s Název tabulky, ke které se přistupuje
sql_text_s Úplný text dotazu
\_ResourceId Identifikátor URI prostředku

Analýza protokolů v protokolech služby Azure Monitor

Jakmile se protokoly auditu přes diagnostické protokoly předají do protokolů služby Azure Monitor, můžete provádět další analýzu auditovaných událostí. Níže najdete několik ukázkových dotazů, které vám pomůžou začít. Nezapomeňte aktualizovat níže uvedený název serveru.

  • Výpis obecných událostí na konkrétním serveru

    AzureDiagnostics
    | where LogicalServerName_s == '<your server name>'
    | where Category == 'MySqlAuditLogs' and event_class_s == "general_log"
    | project TimeGenerated, LogicalServerName_s, event_class_s, event_subclass_s, event_time_t, user_s , ip_s , sql_text_s 
    | order by TimeGenerated asc nulls last 
    
  • Výpis událostí připojení na konkrétním serveru

    AzureDiagnostics
    | where LogicalServerName_s == '<your server name>'
    | where Category == 'MySqlAuditLogs' and event_class_s == "connection_log"
    | project TimeGenerated, LogicalServerName_s, event_class_s, event_subclass_s, event_time_t, user_s , ip_s , sql_text_s 
    | order by TimeGenerated asc nulls last
    
  • Shrnutí auditovaných událostí na konkrétním serveru

    AzureDiagnostics
    | where LogicalServerName_s == '<your server name>'
    | where Category == 'MySqlAuditLogs'
    | project TimeGenerated, LogicalServerName_s, event_class_s, event_subclass_s, event_time_t, user_s , ip_s , sql_text_s 
    | summarize count() by event_class_s, event_subclass_s, user_s, ip_s
    
  • Graf distribuce typu události auditu na konkrétním serveru

    AzureDiagnostics
    | where LogicalServerName_s == '<your server name>'
    | where Category == 'MySqlAuditLogs'
    | project TimeGenerated, LogicalServerName_s, event_class_s, event_subclass_s, event_time_t, user_s , ip_s , sql_text_s 
    | summarize count() by LogicalServerName_s, bin(TimeGenerated, 5m)
    | render timechart 
    
  • Výpis auditovaných událostí na všech serverech MySQL s povolenými diagnostickými protokoly pro protokoly auditu

    AzureDiagnostics
    | where Category == 'MySqlAuditLogs'
    | project TimeGenerated, LogicalServerName_s, event_class_s, event_subclass_s, event_time_t, user_s , ip_s , sql_text_s 
    | order by TimeGenerated asc nulls last
    

Další kroky