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 master-Datenbank führen, was möglicherweise zu Anmeldefehlern führen kann. 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. 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 sind, start_time und end_time dem tatsächlichen UTC-Datum und der tatsächlichen Uhrzeit des Ereignisses entsprechen. |
event_category | nvarchar(64) | Die Komponente auf hoher Ebene, die dieses Ereignis generiert hat. Eine Liste der möglichen Werte finden Sie unter Ereignistypen . |
event_type | nvarchar(64) | Art des Ereignisses. Eine Liste der möglichen Werte finden Sie unter Ereignistypen . |
event_subtype | int | Der Untertyp des eintretenden Ereignisses. Eine Liste der möglichen Werte finden Sie unter Ereignistypen . |
event_subtype_desc | nvarchar(64) | Die Beschreibung des Ereignisuntertyps. Eine Liste der möglichen Werte finden Sie unter Ereignistypen . |
severity | int | Der Schweregrad des Fehlers. Mögliche Werte: 0 = Information 1 = Warning 2 = Fehler |
event_count | int | Gibt an, wie oft dieses Ereignis für die angegebene Datenbank innerhalb des angegebenen Zeitintervalls (start_time und end_time) aufgetreten ist. |
Beschreibung | nvarchar(max) | Detaillierte Beschreibung des Ereignisses. Eine Liste der möglichen Werte finden Sie unter Ereignistypen . |
additional_data | XML | Diese Spalte wird nicht verwendet und aus Gründen der Abwärtskompatibilität beibehalten. |
Ereignistypen
Die von jeder Zeile in dieser Ansicht aufgezeichneten Ereignisse 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 Konnektivitätskategorie sind zusammenfassungsinformationen in der ansicht sys.database_connection_stats 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 |
---|---|---|---|---|---|
Verbindung | connection_successful | 0 | connection_successful | 0 | Die Verbindung mit der Datenbank war erfolgreich. |
Verbindung | connection_failed | 0 | invalid_login_name | 2 | Der Anmeldename ist in dieser SQL Server-Version nicht gültig. |
Verbindung | connection_failed | 1 | windows_auth_not_supported | 2 | Windows-Anmeldungen werden in dieser SQL Server-Version nicht unterstützt. |
Verbindung | connection_failed | 2 | attach_db_not_supported | 2 | Der Benutzer hat das Anfügen einer Datenbankdatei angefordert, die nicht unterstützt wird. |
Verbindung | connection_failed | 3 | change_password_not_supported | 2 | Der Benutzer hat angefordert, das Kennwort des angemeldeten Benutzers zu ändern. Dies wird nicht unterstützt. |
Verbindung | connection_failed | 4 | login_failed_for_user | 2 | Fehler bei der Anmeldung für den Benutzer. |
Verbindung | connection_failed | 5 | login_disabled | 2 | Die Anmeldung wurde deaktiviert. |
Verbindung | connection_failed | 7 | blocked_by_firewall | 2 | Client-IP-Adresse ist nicht berechtigt, auf den Server zuzugreifen. |
Berechtigungen
Benutzer mit der Berechtigung zum Zugriff auf die master-Datenbank auf dem logischen Server in Azure SQL Datenbank haben schreibgeschützten Zugriff auf diese Ansicht.
Bemerkungen
Ereignisaggregation
Die Ereignisinformationen für diese Sicht werden gesammelt und innerhalb von 5-minütigen Intervallen aggregiert. Die spalte event_count gibt an, wie oft ein bestimmter event_type und event_subtype für eine bestimmte Datenbank innerhalb eines bestimmten Zeitintervalls aufgetreten ist.
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 Uhrzeit, an dem das Ereignis aufgetreten ist.
Wenn ein Benutzer beispielsweise aufgrund eines ungültigen Anmeldenamens siebenMal zwischen 11:00 und 11:05 Uhr am 30.03.2022 (UTC) eine Verbindung mit Datenbank 1 herstellen kann, sind diese Informationen in dieser Ansicht in einer einzelnen Zeile 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 nachstart_time und vorend_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
Datenaktualisierungen
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 für maximal 30 Tage oder möglicherweise weniger aufbewahrt, 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 nicht enthalten
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 unter Ereignistypen in diesem Artikel angegebenen.
- Wenn im SQL-Datenbank Rechenzentrum ein Computerfehler auftritt, fehlt möglicherweise eine kleine Menge an Daten in 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 master Datenbank auf dem logischen Server in Azure SQL-Datenbank her, um die folgenden Transact-SQL-Abfragen auszuführen.
Abfragen der sys.event_log Ansicht
Die folgende Abfrage gibt alle Ereignisse zurück, die zwischen dem Mittag am 25. März 2022 und dem 30. März 2022 (UTC) aufgetreten sind. Standardmäßig werden die Abfrageergebnisse nach start_time (aufsteigende 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 fehlerhafte Anmeldungen für Benutzer sind, die am 25. März 2022 (UTC) zwischen 10:00 und 11:00 Uhr 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
Feedback
https://aka.ms/ContentUserFeedback.
Bald verfügbar: Im Laufe des Jahres 2024 werden wir GitHub-Issues stufenweise als Feedbackmechanismus für Inhalte abbauen und durch ein neues Feedbacksystem ersetzen. Weitere Informationen finden Sie unterFeedback senden und anzeigen für