sys.event_log (Azure SQL-Datenbank)
Gilt für: Azure SQL-Datenbank
Gibt erfolgreiche Azure SQL-Datenbank Datenbankverbindungen und Verbindungsfehler zurück. Anhand dieser Informationen können Sie Ihre Datenbankaktivität nachverfolgen und Fehler beheben.
Achtung
Bei logischen Servern mit einer großen Anzahl von Datenbanken und/oder einer hohen Anzahl von Anmeldungen kann das Abfragen sys.event_log zu einer hohen Ressourcenauslastung in der Masterdatenbank führen, was möglicherweise zu Anmeldefehlern führt. Um die Auswirkungen dieses Problems zu verringern, beschränken Sie Abfragen von sys.event_log.
Die sys.event_log
-Sicht enthält die folgenden Spalten.
Spaltenname | Datentyp | Beschreibung |
---|---|---|
database_name | sysname | Der Name der Datenbank. Wenn die Verbindung nicht hergestellt werden kann und der Benutzer keinen Datenbanknamen angegeben hat, ist diese Spalte leer. |
start_time | datetime2 | UTC-Datum und -Zeit des Beginns des Aggregationsintervalls. Für aggregierte Ereignisse ist die Zeit immer ein Vielfaches von 5 Minuten. Zum Beispiel: '2022-03-30 16:00:00' '2022-03-30 16:05:00' '2022-03-30 16:10:00' |
end_time | datetime2 | UTC-Datum und -Zeit des Endes des Aggregationsintervalls. Bei aggregierten Ereignissen ist End_time immer genau 5 Minuten später als die entsprechende start_time in derselben Zeile. Für Ereignisse, die nicht aggregiert werden, start_time und end_time dem tatsächlichen UTC-Datum und der aktuellen Uhrzeit des Ereignisses entsprechen. |
event_category | nvarchar(64) | Die Komponente auf hoher Ebene, die dieses Ereignis generiert hat. Eine Liste möglicher Werte finden Sie unter "Ereignistypen ". |
event_type | nvarchar(64) | Den Typ des Ereignisses Eine Liste möglicher Werte finden Sie unter "Ereignistypen ". |
event_subtype | int | Der Untertyp des eintretenden Ereignisses. Eine Liste möglicher Werte finden Sie unter "Ereignistypen ". |
event_subtype_desc | nvarchar(64) | Die Beschreibung des Ereignisuntertyps. Eine Liste möglicher Werte finden Sie unter "Ereignistypen ". |
severity | int | Der Schweregrad des Fehlers. Dabei sind folgende Werte möglich: 0 = Information 1 = Warnung 2 = Fehler |
event_count | int | Die Häufigkeit, mit der dieses Ereignis innerhalb des angegebenen Zeitintervalls (start_time und end_time) für die angegebene Datenbank aufgetreten ist. |
Beschreibung | nvarchar(max) | Detaillierte Beschreibung des Ereignisses. Eine Liste möglicher Werte finden Sie unter "Ereignistypen ". |
additional_data | XML | Diese Spalte ist nicht verwendet und wird aus Gründen der Abwärtskompatibilität beibehalten. |
Ereignistypen
Die ereignisse, die von jeder Zeile in dieser Ansicht aufgezeichnet werden, werden durch eine Kategorie (event_category), einen Ereignistyp (event_type) und einen Untertyp (event_subtype) identifiziert. In der folgenden Tabelle werden die Ereignistypen aufgeführt, die in dieser Sicht gesammelt werden.
Für Ereignisse in der Verbindungskategorie sind zusammenfassungsinformationen in der sys.database_connection_stats Ansicht verfügbar.
Hinweis
Diese Ansicht enthält nicht alle möglichen SQL-Datenbank Datenbankereignisse, die auftreten können, nur die hier aufgeführten. Weitere Kategorien, Ereignistypen und Untertypen können in zukünftigen Versionen von SQL-Datenbank hinzugefügt werden.
event_category | event_type | event_subtype | event_subtype_desc | severity | Beschreibung |
---|---|---|---|---|---|
Konnektivität | connection_successful | 0 | connection_successful | 0 | Die Verbindung mit der Datenbank war erfolgreich. |
Konnektivität | connection_failed | 0 | invalid_login_name | 2 | Der Anmeldename ist in dieser SQL Server-Version nicht gültig. |
Konnektivität | connection_failed | 1 | windows_auth_not_supported | 2 | Windows-Anmeldungen werden in dieser SQL Server-Version nicht unterstützt. |
Konnektivität | connection_failed | 2 | attach_db_not_supported | 2 | Der Benutzer hat aufgefordert, eine Datenbankdatei anzufügen, die nicht unterstützt wird. |
Konnektivität | connection_failed | 3 | change_password_not_supported | 2 | Der Benutzer hat angefordert, das Kennwort des angemeldeten Benutzers zu ändern. Dies wird nicht unterstützt. |
Konnektivität | connection_failed | 4 | login_failed_for_user | 2 | Fehler bei der Anmeldung für den Benutzer . |
Konnektivität | connection_failed | 5 | login_disabled | 2 | Die Anmeldung wurde deaktiviert. |
Konnektivität | connection_failed | 7 | blocked_by_firewall | 2 | Client-IP-Adresse ist nicht berechtigt, auf den Server zuzugreifen. |
Berechtigungen
Benutzer mit der Berechtigung für den Zugriff auf die Masterdatenbank auf dem logischen Server in Azure SQL-Datenbank schreibgeschützten Zugriff auf diese Ansicht haben.
Hinweise
Ereignisaggregation
Die Ereignisinformationen für diese Sicht werden gesammelt und innerhalb von 5-minütigen Intervallen aggregiert. Die spalte event_count stellt die Häufigkeit dar, mit der ein bestimmter event_type und event_subtype für eine bestimmte Datenbank innerhalb eines bestimmten Zeitintervalls aufgetreten sind.
Hinweis
Einige Ereignisse wie Deadlocks werden nicht aggregiert. Für diese Ereignisse ist event_count 1 und start_time und end_time entspricht dem tatsächlichen UTC-Datum und der aktuellen Uhrzeit des Ereignisses.
Wenn ein Benutzer beispielsweise aufgrund eines ungültigen Anmeldenamens sieben Mal zwischen 11:00 und 11:05 uhr am 3.30.2022 (UTC) eine Verbindung mit Datenbankdatenbank1 herstellen kann, sind diese Informationen in einer einzelnen Zeile in dieser Ansicht verfügbar:
database_name | start_time | end_time | event_category | event_type | event_subtype | event_subtype_desc | severity | event_count | Beschreibung | additional_data |
---|---|---|---|---|---|---|---|---|---|---|
Database1 |
2022-03-30 11:00:00 |
2022-03-30 11:05:00 |
connectivity |
connection_failed |
4 |
login_failed_for_user |
2 |
7 |
Login failed for user. |
NULL |
start_time und end_time des Intervalls
Ein Ereignis ist in einem Aggregationsintervall enthalten, wenn das Ereignis auf oder nach start_time und vor end_time für dieses Intervall auftritt. Beispielsweise würde ein Ereignis, das genau zum Zeitpunkt 2022-03-30 19:25:00.0000000
eintritt, nur im zweiten unten gezeigten Intervall aufgenommen werden:
start_time end_time
2022-03-30 19:20:00.0000000 2022-03-30 19:25:00.0000000
2022-03-30 19:25:00.0000000 2022-03-30 19:30:00.0000000
Datenupdates
Die Daten in dieser Sicht werden im Zeitverlauf gesammelt. Normalerweise werden die Daten innerhalb einer Stunde nach Beginn des Aggregationsintervalls gesammelt, es kann aber maximal 24 Stunden dauern, bis alle Daten in der Sicht angezeigt werden. Während dieser Zeit werden die Informationen in einer einzelnen Zeile möglicherweise gelegentlich aktualisiert.
Beibehaltung von Daten
Die Daten in dieser Ansicht werden maximal 30 Tage lang aufbewahrt, oder möglicherweise weniger abhängig von der Anzahl der Datenbanken und der Anzahl der eindeutigen Ereignisse, die jede Datenbank generiert. Um diese Informationen für einen längeren Zeitraum beizubehalten, kopieren Sie die Daten in eine separate Datenbank. Nachdem Sie eine erste Kopie der Sicht erstellt haben, werden die Zeilen in der Sicht möglicherweise aktualisiert, während die Daten gesammelt werden. Damit die Kopie der Daten aktuell bleibt, führen Sie regelmäßig einen Tabellenscan der Zeilen aus, um nach einer Erhöhung der Ereignisanzahl für vorhandene Zeilen zu suchen und um neue Zeilen zu ermitteln (eindeutige Zeilen bestimmen Sie anhand der Start- und Endzeiten). Aktualisieren Sie dann die Kopie der Daten mit diesen Änderungen.
Fehler, die nicht enthalten sind
Diese Sicht enthält möglicherweise nicht alle Verbindungs- und Fehlerinformationen:
- Diese Ansicht enthält nicht alle SQL-Datenbank Datenbankfehler, die auftreten können, nur die in Ereignistypen in diesem Artikel angegebenen.
- Wenn innerhalb des SQL-Datenbank Rechenzentrums ein Computerfehler auftritt, fehlt möglicherweise eine kleine Datenmenge aus der Ereignistabelle.
- Wenn eine IP-Adresse von DoSGuard blockiert wurde, können Verbindungsversuchsereignisse von dieser IP-Adresse nicht gesammelt werden. Diese werden in dieser Sicht nicht angezeigt.
Beispiele
Stellen Sie eine Verbindung mit der Masterdatenbank auf dem logischen Server in Azure SQL-Datenbank her, um die folgenden Transact-SQL-Abfragen auszuführen.
Abfragen der ansicht sys.event_log
Die folgende Abfrage gibt alle Ereignisse zurück, die zwischen Mittag am 25. März 2022 und Mittag am 30. März 2022 (UTC) aufgetreten sind. Standardmäßig werden die Abfrageergebnisse nach start_time (aufsteigender Reihenfolge) sortiert.
SELECT database_name, start_time, end_time, event_category,
event_type, event_subtype, event_subtype_desc, severity,
event_count, description
FROM sys.event_log
WHERE start_time >= '2022-03-25 12:00:00'
AND end_time <= '2022-03-30 12:00:00';
Abfrageanmeldungsfehler für Benutzer
Die folgende Abfrage gibt Verbindungsfehler zurück, die fehlgeschlagene Anmeldungen für Benutzer sind, die zwischen 10:00 und 11:00 Uhr am 25. März 2022 (UTC) aufgetreten sind.
SELECT database_name, start_time, end_time, event_category,
event_type, event_subtype, event_subtype_desc, severity,
event_count, description
FROM sys.event_log
WHERE event_type = 'connection_failed'
AND event_subtype = 4
AND start_time >= '2022-03-25 10:00:00'
AND end_time <= '2022-03-25 11:00:00';
Nächste Schritte
Weitere Informationen zu Azure SQL-Datenbank finden Sie in den folgenden Artikeln:
- Erweiterte Ereignisse in Azure SQL-Datenbank
- Azure SQL-Datenbank-Katalogsichten
- sys.database_connection_stats (Azure SQL-Datenbank)
- Beheben von Konnektivitätsproblemen und anderen Fehlern mit Azure SQL-Datenbank und Azure SQL Managed Instance
- Behandeln vorübergehender Verbindungsfehler in SQL-Datenbank und SQL Managed Instance