sys.event_log (Azure SQL データベース)

適用対象:Azure SQL Database

データベース データベース接続と接続エラー Azure SQL正常に返されます。 この情報を使用して、データベースの利用状況の追跡またはトラブルシューティングを行うことができます。

注意事項

データベースの数が多い論理サーバーやログイン数が多い 論理サーバー の場合、sys.event_logクエリを実行すると、マスター データベースでリソースの使用率が高くなり、ログイン エラーが発生する可能性があります。 この問題の影響を軽減するには、sys.event_logのクエリを制限します。

ビューには sys.event_log 、次の列が含まれています。

列名 データ型 説明
database_name sysname データベースの名前です。 接続が失敗し、ユーザーがデータベース名を指定していない場合、この列は空白です。
start_time datetime2 集計間隔の開始時刻を示す UTC 日時。 集計イベントの場合、時刻は常に 5 分単位になります。 次に例を示します。

'2022-03-30 16:00:00'
'2022-03-30 16:05:00'
'2022-03-30 16:10:00'
end_time datetime2 集計間隔の終了時刻を示す UTC 日時。 集計イベントの場合、 End_time は常に、同じ行の対応する start_time より 5 分遅くなります。 集計されないイベントの場合は、 イベントの 実際の UTC 日時と等しい start_timeとend_time
event_category nvarchar(64) このイベントを生成した上位レベルのコンポーネント。

使用可能な値の一覧については、「 イベントの種類」を 参照してください。
event_type nvarchar(64) イベントの種類。

使用可能な値の一覧については、「 イベントの種類」を 参照してください。
event_subtype int 発生したイベントのサブタイプ。

使用可能な値の一覧については、「 イベントの種類」を 参照してください。
event_subtype_desc nvarchar(64) イベントのサブタイプの説明。

使用可能な値の一覧については、「 イベントの種類」を 参照してください。
severity int エラーの重大度。 次のいずれかの値になります。

0 = 情報
1 = 警告
2 = エラー
event_count int 指定された時間間隔 (start_time および end_time) 内で、指定したデータベースに対してこのイベントが発生した回数。
description nvarchar(max) イベントの詳細な説明。

使用可能な値の一覧については、「 イベントの種類」を 参照してください。
additional_data XML この列は使用されず、下位互換性のために保持されます。

イベントの種類

このビューの各行によって記録されるイベントは、カテゴリ (event_category)、イベントの種類 (event_type)、サブタイプ (event_subtype) によって識別されます。 次の表に、このビューで収集されるイベントの種類を示します。

接続カテゴリのイベントの場合、概要情報はsys.database_connection_stats ビューで確認できます。

注意

このビューには、発生する可能性のあるすべてのSQL Databaseデータベース イベントは含まれません。ここに記載されているイベントのみが含まれます。 その他のカテゴリ、イベントの種類、サブタイプは、SQL Databaseの今後のリリースで追加される可能性があります。

event_category event_type event_subtype event_subtype_desc severity description
接続 connection_successful 0 connection_successful 0 データベースに正常に接続されました。
接続 connection_failed 0 invalid_login_name 2 ログイン名がこのバージョンの SQL Server では無効です。
接続 connection_failed 1 windows_auth_not_supported 2 Windows ログインは、このバージョンの SQL Server ではサポートされていません。
接続 connection_failed 2 attach_db_not_supported 2 ユーザーがデータベース ファイルのアタッチを要求しました。これはサポートされていません。
接続 connection_failed 3 change_password_not_supported 2 サポートされていないユーザー ログインのパスワード変更をユーザーが要求しました。
接続 connection_failed 4 login_failed_for_user 2 ユーザーのログインに失敗しました。
接続 connection_failed 5 login_disabled 2 ログインが無効でした。
接続 connection_failed 7 blocked_by_firewall 2 クライアントの IP アドレスからサーバーにアクセスすることが許可されていません。

アクセス許可

Azure SQL Database の論理サーバー上のマスター データベースにアクセスする権限を持つユーザーは、このビューに対する読み取り専用アクセス権を持ちます。

注釈

イベントの集計

このビューのイベント情報は、5 分未満の間隔で収集および集計されます。 event_count列は、特定のevent_typeとevent_subtypeが特定の時間間隔内で特定のデータベースに対して発生した回数を表します。

注意

デッドロックなど、一部のイベントは集計されません。 これらのイベントの 場合、event_count は 1 で start_time され、 end_time はイベントが発生した実際の UTC 日時と等しくなります。

たとえば、2022 年 3 月 30 日 (UTC) の 11:00 から 11:05 の間で、無効なログイン名が原因でユーザーがデータベース Database1 への接続に失敗した場合、この情報はこのビューの 1 行で使用できます。

database_name start_time end_time event_category event_type event_subtype event_subtype_desc severity event_count description 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 と end_time

イベントが集計間隔に含まれるのは、イベントがstart_time、その間隔end_timeに発生したときです。 たとえば、2022-03-30 19:25:00.0000000 に発生したイベントは、下に示す例では 2 つ目の間隔にのみ含まれます。

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  

データの更新

このビューのデータは時間の経過に伴って累計されます。 一般的に、データは集計間隔の開始から 1 時間以内で累計されますが、すべてのデータがビューに表示されるまでに、最大 24 時間かかることもあります。 その間に、1 つの行内の情報が定期的に更新されることがあります。

データの保持

このビューのデータは、データベースの数と各データベースが生成する一意のイベントの数に応じて、最大 30 日間保持されるか、または少なくなる可能性があります。 この情報をより長期間にわたって保持するには、データを別のデータベースにコピーします。 ビューの最初のコピーを行った後に、そのビューの行がデータの累積に伴って更新されることがあります。 データのコピーを最新の状態に保つには、定期的に行のテーブル スキャンを行うことにより、既存の行のイベント数の増加を検出し、新しい行を特定して (開始時刻と終了時刻を使用して一意の行を識別できます)、これらの更新内容をデータのコピーに反映させます。

エラーは含まれていません

このビューには、接続およびエラーに関する情報がすべて含まれていないことがあります。

  • このビューには、発生する可能性のあるすべてのSQL Databaseデータベース エラーは含まれていません。この記事の「イベントの種類」で指定されているエラーのみが含まれます。
  • SQL Database データセンター内でマシンの障害が発生した場合、イベント テーブルに少量のデータが欠落している可能性があります。
  • DoSGuard によって IP アドレスがブロックされている場合は、その IP アドレスからの接続試行イベント情報を収集することができないため、このビューに表示されません。

Azure SQL Database の論理サーバー上のマスター データベースに接続して、次の Transact-SQL クエリを実行します。

sys.event_log ビューのクエリを実行する

次のクエリは、2022 年 3 月 25 日の正午から 2022 年 3 月 30 日 (UTC) の正午までの間に発生したすべてのイベントを返します。 既定では、クエリ結果は start_time (昇順) で並べ替えられます。

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';  

ユーザーのログイン エラーのクエリを実行する

次のクエリは、2022 年 3 月 25 日 (UTC) に 10:00 から 11:00 の間に発生したユーザーのログイン失敗の接続エラーを返します。

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';  

次の手順

Azure SQL Database の詳細については、次の記事を参照してください。