Delen via


Auditlogboeken in Azure Database for MySQL

VAN TOEPASSING OP: Azure Database for MySQL - enkele server

Belangrijk

Azure Database for MySQL enkele server bevindt zich op het buitengebruikstellingspad. We raden u ten zeerste aan een upgrade uit te voeren naar een flexibele Azure Database for MySQL-server. Zie Wat gebeurt er met Azure Database for MySQL Enkele server voor meer informatie over migreren naar Azure Database for MySQL Flexibele server ?

In Azure Database for MySQL is het auditlogboek beschikbaar voor gebruikers. Het auditlogboek kan worden gebruikt om activiteit op databaseniveau bij te houden en wordt vaak gebruikt voor naleving.

Auditlogboekregistratie configureren

Belangrijk

Het wordt aanbevolen om alleen de gebeurtenistypen en gebruikers te registreren die nodig zijn voor uw controledoeleinden om ervoor te zorgen dat de prestaties van uw server niet zwaar worden beïnvloed en dat de minimale hoeveelheid gegevens wordt verzameld.

Standaard is het auditlogboek uitgeschakeld. Als u dit wilt inschakelen, stelt u deze in audit_log_enabled op AAN.

Andere parameters die u kunt aanpassen, zijn:

  • audit_log_events: bepaalt de gebeurtenissen die moeten worden vastgelegd. Zie de onderstaande tabel voor specifieke controlegebeurtenissen.
  • audit_log_include_users: MySQL-gebruikers die moeten worden opgenomen voor logboekregistratie. De standaardwaarde voor deze parameter is leeg, inclusief alle gebruikers voor logboekregistratie. Dit heeft een hogere prioriteit dan audit_log_exclude_users. De maximale lengte van de parameter is 512 tekens.
  • audit_log_exclude_users: MySQL-gebruikers die moeten worden uitgesloten van logboekregistratie. De maximale lengte van de parameter is 512 tekens.

Notitie

audit_log_include_users heeft een hogere prioriteit dan audit_log_exclude_users. Als enaudit_log_exclude_users = demouser, wordt de gebruiker bijvoorbeeld = audit_log_include_usersdemouser opgenomen in de auditlogboeken omdat audit_log_include_users deze een hogere prioriteit heeft.

Gebeurtenis Beschrijving
CONNECTION - Start van verbinding (geslaagd of mislukt)
- Gebruikersverificatie met verschillende gebruikers/wachtwoorden tijdens de sessie
- Beëindiging van verbinding
DML_SELECT SELECT-query's
DML_NONSELECT INSERT/DELETE/UPDATE-query's
DML DML = DML_SELECT + DML_NONSELECT
DDL Query's zoals 'DROP DATABASE'
DCL Query's zoals 'MACHTIGING VERLENEN'
ADMIN Query's zoals 'SHOW STATUS'
GENERAL Alles in DML_SELECT, DML_NONSELECT, DML, DDL, DCL en ADMIN
TABLE_ACCESS - Beschikbaar voor MySQL 5.7 en MySQL 8.0
- Leesinstructies voor tabellen, zoals SELECT of INSERT INTO ... SELECTEREN
- Instructies voor tabel verwijderen, zoals DELETE of TRUNCATE TABLE
- Instructies voor invoegen van tabellen, zoals INSERT of REPLACE
- Instructies voor het bijwerken van tabellen, zoals UPDATE

Auditlogboeken inzien

Auditlogboeken zijn geïntegreerd in Diagnostische logboeken van Azure Monitor. Zodra u auditlogboeken op uw MySQL-server hebt ingeschakeld, kunt u ze naar Azure Monitor-logboeken, Event Hubs of Azure Storage verzenden. Zie het artikel in de auditlogboekportal voor meer informatie over het inschakelen van diagnostische logboeken in Azure Portal.

Notitie

Premium Storage-accounts worden niet ondersteund als u de logboeken naar Azure Storage verzendt via diagnostische gegevens en instellingen

Schema's voor diagnostische logboeken

In de volgende secties wordt beschreven wat er wordt uitgevoerd door MySQL-auditlogboeken op basis van het gebeurtenistype. Afhankelijk van de uitvoermethode kunnen de velden die zijn opgenomen en de volgorde waarin ze worden weergegeven, variëren.

Connection

Eigenschappen Beschrijving
TenantId Uw tenant-id
SourceSystem Azure
TimeGenerated [UTC] Tijdstempel waarop het logboek is vastgelegd in UTC
Type Type van het logboek. Altijd AzureDiagnostics
SubscriptionId GUID voor het abonnement waartoe de server behoort
ResourceGroup De naam van de resourcegroep waartoe de server behoort
ResourceProvider Naam van de resourceprovider. Altijd MICROSOFT.DBFORMYSQL
ResourceType Servers
ResourceId Resource-URI
Resource Naam van de server
Category MySqlAuditLogs
OperationName LogEvent
LogicalServerName_s Naam van de server
event_class_s connection_log
event_subclass_s CONNECT, , DISCONNECTCHANGE USER (alleen beschikbaar voor MySQL 5.7)
connection_id_d Unieke verbindings-id gegenereerd door MySQL
host_s Leeg
ip_s IP-adres van client die verbinding maakt met MySQL
user_s Naam van de gebruiker die de query uitvoert
db_s Naam van de database die is verbonden met
\_ResourceId Resource-URI

Algemeen

Het onderstaande schema is van toepassing op gebeurtenistypen GENERAL, DML_SELECT, DML_NONSELECT, DML, DDL, DCL en ADMIN.

Notitie

Logboek sql_textwordt afgekapt als het langer is dan 2048 tekens.

Eigenschappen Beschrijving
TenantId Uw tenant-id
SourceSystem Azure
TimeGenerated [UTC] Tijdstempel waarop het logboek is vastgelegd in UTC
Type Type van het logboek. Altijd AzureDiagnostics
SubscriptionId GUID voor het abonnement waartoe de server behoort
ResourceGroup De naam van de resourcegroep waartoe de server behoort
ResourceProvider Naam van de resourceprovider. Altijd MICROSOFT.DBFORMYSQL
ResourceType Servers
ResourceId Resource-URI
Resource Naam van de server
Category MySqlAuditLogs
OperationName LogEvent
LogicalServerName_s Naam van de server
event_class_s general_log
event_subclass_s LOG, , ERRORRESULT (alleen beschikbaar voor MySQL 5.6)
event_time Begintijd van query in UTC-tijdstempel
error_code_d Foutcode als de query is mislukt. 0 betekent geen fout
thread_id_d Id van thread die de query heeft uitgevoerd
host_s Leeg
ip_s IP-adres van client die verbinding maakt met MySQL
user_s Naam van de gebruiker die de query uitvoert
sql_text_s Volledige querytekst
\_ResourceId Resource-URI

Toegang tot tabellen

Notitie

Logboeken voor tabeltoegang zijn alleen uitvoer voor MySQL 5.7.
Logboek sql_textwordt afgekapt als het langer is dan 2048 tekens.

Eigenschappen Beschrijving
TenantId Uw tenant-id
SourceSystem Azure
TimeGenerated [UTC] Tijdstempel waarop het logboek is vastgelegd in UTC
Type Type van het logboek. Altijd AzureDiagnostics
SubscriptionId GUID voor het abonnement waartoe de server behoort
ResourceGroup De naam van de resourcegroep waartoe de server behoort
ResourceProvider Naam van de resourceprovider. Altijd MICROSOFT.DBFORMYSQL
ResourceType Servers
ResourceId Resource-URI
Resource Naam van de server
Category MySqlAuditLogs
OperationName LogEvent
LogicalServerName_s Naam van de server
event_class_s table_access_log
event_subclass_s READ, , INSERTof UPDATEDELETE
connection_id_d Unieke verbindings-id gegenereerd door MySQL
db_s Naam van de database die wordt geopend
table_s Naam van tabel die wordt geopend
sql_text_s Volledige querytekst
\_ResourceId Resource-URI

Logboeken analyseren in Azure Monitor-logboeken

Zodra uw auditlogboeken zijn doorgesluisd naar Azure Monitor-logboeken via diagnostische logboeken, kunt u verdere analyse van uw gecontroleerde gebeurtenissen uitvoeren. Hieronder vindt u enkele voorbeeldquery's om u te helpen aan de slag te gaan. Zorg ervoor dat u het onderstaande bijwerkt met de servernaam.

  • Algemene gebeurtenissen op een bepaalde server vermelden

    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 
    
  • CONNECTION-gebeurtenissen op een bepaalde server weergeven

    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
    
  • Gecontroleerde gebeurtenissen op een bepaalde server samenvatten

    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
    
  • Grafiek van de distributie van het controlegebeurtenistype op een bepaalde 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 
    
  • Gecontroleerde gebeurtenissen weergeven op alle MySQL-servers waarvoor diagnostische logboeken zijn ingeschakeld voor auditlogboeken

    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
    

Volgende stappen