Granskningsloggar i Azure Database for MySQL

GÄLLER FÖR: Azure Database for MySQL – enskild server

Viktigt!

Azure Database for MySQL – enskild server är på väg att dras tillbaka. Vi rekommenderar starkt att du uppgraderar till en flexibel Azure Database for MySQL-server. Mer information om hur du migrerar till en flexibel Azure Database for MySQL-server finns i Vad händer med Azure Database for MySQL – enskild server?

I Azure Database for MySQL är granskningsloggen tillgänglig för användare. Granskningsloggen kan användas för att spåra aktivitet på databasnivå och används ofta för efterlevnad.

Konfigurera granskningsloggning

Viktigt!

Vi rekommenderar att du endast loggar de händelsetyper och användare som krävs för dina granskningsändamål för att säkerställa att serverns prestanda inte påverkas kraftigt och att minsta mängd data samlas in.

Som standard är granskningsloggen inaktiverad. Om du vill aktivera den anger du audit_log_enabled till PÅ.

Andra parametrar som du kan justera är:

  • audit_log_events: styr de händelser som ska loggas. Se tabellen nedan för specifika granskningshändelser.
  • audit_log_include_users: MySQL-användare som ska inkluderas för loggning. Standardvärdet för den här parametern är tomt, vilket inkluderar alla användare för loggning. Detta har högre prioritet än audit_log_exclude_users. Maxlängden för parametern är 512 tecken.
  • audit_log_exclude_users: MySQL-användare som ska undantas från loggning. Maxlängden för parametern är 512 tecken.

Kommentar

audit_log_include_users har högre prioritet än audit_log_exclude_users. Om och audit_log_exclude_users = demouser, inkluderas användaren till exempel = audit_log_include_usersdemouser i granskningsloggarna eftersom audit_log_include_users den har högre prioritet.

Händelse Beskrivning
CONNECTION - Anslut ionsinitiering (lyckad eller misslyckad)
– Omautentisering av användare med olika användare/lösenord under sessionen
- Anslut ionsavslut
DML_SELECT SELECT-frågor
DML_NONSELECT INFOGA/TA BORT/UPPDATERA frågor
DML DML = DML_SELECT + DML_NONSELECT
DDL Frågor som "DROP DATABASE"
DCL Frågor som "BEVILJA BEHÖRIGHET"
ADMIN Frågor som "SHOW STATUS"
GENERAL Allt i DML_SELECT, DML_NONSELECT, DML, DDL, DCL och ADMIN
TABLE_ACCESS – Tillgänglig för MySQL 5.7 och MySQL 8.0
- Tabellläsningssatser, till exempel SELECT eller INSERT INTO ... VÄLJ
– Ta bort tabellinstruktioner, till exempel TA BORT eller TRUNKERA TABELL
– Infoga tabellinstruktioner, till exempel INSERT eller REPLACE
– Tabelluppdateringsinstruktioner, till exempel UPDATE

Åtkomst till granskningsloggar

Spårningsloggar är integrerade i Azure Monitor Diagnostic Logs. När du har aktiverat spårningsloggar för din MySQL-server kan du skicka dem till Azure Monitor-loggar, händelsehubbar eller Azure Storage. Mer information om hur du aktiverar diagnostikloggar i Azure-portalen finns i artikeln om granskningsloggportalen.

Kommentar

Premium Storage-konton stöds inte om du skickar loggarna till Azure Storage via diagnostik och inställningar

Scheman för diagnostikloggar

I följande avsnitt beskrivs vad som utdata från MySQL-granskningsloggar baseras på händelsetypen. Beroende på utdatametoden kan fälten som ingår och i vilken ordning de visas variera.

Connection

Property Beskrivning
TenantId Ditt klientorganisations-ID
SourceSystem Azure
TimeGenerated [UTC] Tidsstämpel när loggen registrerades i UTC
Type Typ av logg. Alltid AzureDiagnostics
SubscriptionId GUID för den prenumeration som servern tillhör
ResourceGroup Namnet på resursgruppen som servern tillhör
ResourceProvider Namnet på resursprovidern. Alltid MICROSOFT.DBFORMYSQL
ResourceType Servers
ResourceId Resurs-URI
Resource Namnet på servern
Category MySqlAuditLogs
OperationName LogEvent
LogicalServerName_s Namnet på servern
event_class_s connection_log
event_subclass_s CONNECT, DISCONNECT, CHANGE USER (endast tillgängligt för MySQL 5.7)
connection_id_d Unikt anslutnings-ID som genereras av MySQL
host_s Tom
ip_s IP-adress för klienten som ansluter till MySQL
user_s Namnet på användaren som kör frågan
db_s Namnet på databasen som är ansluten till
\_ResourceId Resurs-URI

Allmänt

Schemat nedan gäller för händelsetyperna GENERAL, DML_SELECT, DML_NONSELECT, DML, DDL, DCL och ADMIN.

Kommentar

För sql_texttrunkeras loggen om den överskrider 2 048 tecken.

Property Beskrivning
TenantId Ditt klientorganisations-ID
SourceSystem Azure
TimeGenerated [UTC] Tidsstämpel när loggen registrerades i UTC
Type Typ av logg. Alltid AzureDiagnostics
SubscriptionId GUID för den prenumeration som servern tillhör
ResourceGroup Namnet på resursgruppen som servern tillhör
ResourceProvider Namnet på resursprovidern. Alltid MICROSOFT.DBFORMYSQL
ResourceType Servers
ResourceId Resurs-URI
Resource Namnet på servern
Category MySqlAuditLogs
OperationName LogEvent
LogicalServerName_s Namnet på servern
event_class_s general_log
event_subclass_s LOG, ERROR, RESULT (endast tillgängligt för MySQL 5.6)
event_time Frågestarttid i UTC-tidsstämpel
error_code_d Felkod om frågan misslyckades. 0 innebär inget fel
thread_id_d ID för tråd som körde frågan
host_s Tom
ip_s IP-adress för klienten som ansluter till MySQL
user_s Namnet på användaren som kör frågan
sql_text_s Fullständig frågetext
\_ResourceId Resurs-URI

Tabellåtkomst

Kommentar

Tabellåtkomstloggar är endast utdata för MySQL 5.7.
För sql_texttrunkeras loggen om den överskrider 2 048 tecken.

Property Beskrivning
TenantId Ditt klientorganisations-ID
SourceSystem Azure
TimeGenerated [UTC] Tidsstämpel när loggen registrerades i UTC
Type Typ av logg. Alltid AzureDiagnostics
SubscriptionId GUID för den prenumeration som servern tillhör
ResourceGroup Namnet på resursgruppen som servern tillhör
ResourceProvider Namnet på resursprovidern. Alltid MICROSOFT.DBFORMYSQL
ResourceType Servers
ResourceId Resurs-URI
Resource Namnet på servern
Category MySqlAuditLogs
OperationName LogEvent
LogicalServerName_s Namnet på servern
event_class_s table_access_log
event_subclass_s READ, INSERT, UPDATE, eller DELETE
connection_id_d Unikt anslutnings-ID som genereras av MySQL
db_s Namnet på den databas som används
table_s Namnet på den tabell som används
sql_text_s Fullständig frågetext
\_ResourceId Resurs-URI

Analysera loggar i Azure Monitor-loggar

När granskningsloggarna skickas till Azure Monitor-loggar via diagnostikloggar kan du utföra ytterligare analys av dina granskade händelser. Nedan visas några exempelfrågor som hjälper dig att komma igång. Se till att uppdatera nedanstående med servernamnet.

  • Lista ALLMÄNNA händelser på en viss server

    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 
    
  • Lista ANSLUTNINGShändelser på en viss server

    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
    
  • Sammanfatta granskade händelser på en viss server

    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
    
  • Diagram över granskningshändelsetypens distribution på en viss server

    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 
    
  • Visa en lista över granskade händelser över alla MySQL-servrar med diagnostikloggar aktiverade för granskningsloggar

    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
    

Nästa steg