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 änaudit_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_users
demouser
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_text
trunkeras 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_text
trunkeras 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