適用対象:SQL Server
Azure SQL Database
Azure SQL Managed Instance
SQL Serverはサービスブローカーのダイアログセキュリティに関連する監査メッセージを報告するための Audit Broker Conversation イベントを作成します。
監査ブローカーの会話イベントクラスのデータ列
| データ列 | タイプ | 説明 | 列番号 | フィルター可能 |
|---|---|---|---|---|
ApplicationName |
nvarchar | SQL Serverのインスタンスへの接続を作成したクライアント アプリケーションの名前。 この列には、プログラムの表示名ではなく、アプリケーションによって渡された値が格納されます。 | 10 | はい |
BigintData1 |
bigint | メッセージのメッセージ シーケンス番号。 | 52 | いいえ |
ClientProcessID |
int | クライアント アプリケーションが実行されているプロセスに対し、ホスト コンピューターによって割り当てられた ID。 クライアントでクライアント プロセス ID が指定されると、このデータ列が作成されます。 | 9 | はい |
DatabaseID |
int |
USE <database>文で指定されたデータベースのID、または特定のインスタンスに対してUSE <database>文が発行されていない場合はデフォルトのデータベースのIDです。 SQL Server Profilerは、 ServerName データ列がトレースにキャプチャされ、サーバーが利用可能であればデータベース名を表示します。 データベースに対応する値は、DB_ID 関数を使用して特定します。 |
3 | はい |
Error |
int | このイベントでエラーが報告された場合の SQL Server エラー番号。 | 31 | いいえ |
EventClass |
int | キャプチャされたイベント クラスの種類。 いつもAudit Broker Conversation158。 |
27 | いいえ |
EventSubClass |
int | イベント サブクラスの種類です。各イベント クラスについての詳細な情報を提供します。 次の表に、このイベントのイベント サブクラス値を示します。 | 21 | はい |
FileName |
nvarchar | ログインの失敗理由。 ログインに成功した場合、この列は空です。 | 36 | いいえ |
GUID |
uniqueidentifier | 会話IDの会話ID。 この ID はメッセージの一部として転送され、メッセージ交換の両側で共有されます。 | 54 | いいえ |
HostName |
nvarchar | クライアントが実行しているコンピューターの名前。 このデータ列には、クライアントがホスト名を指定している場合にデータが格納されます。 ホスト名を確認するには、 HOST_NAME 関数を使用します。 |
8 | はい |
IntegerData |
int | メッセージのフラグメント番号。 | 25 | いいえ |
NTDomainName |
nvarchar | ユーザーが属している Windows ドメイン。 | 7 | はい |
NTUserName |
nvarchar | このイベントが生成された接続を所有するユーザーの名前。 | 6 | はい |
ObjectId |
int | 対象サービスのユーザー ID。 | 22 | いいえ |
RoleName |
nvarchar | メッセージ交換ハンドルのロール。 これは initiator か targetのどちらかです。 |
38 | いいえ |
ServerName |
nvarchar | トレースされている SQL Server のインスタンスの名前です。 | 26 | いいえ |
Severity |
int | このイベントでエラーが報告された場合の SQL Server エラーの重大度。 | 29 | いいえ |
SPID |
int | クライアントに関連付けられたプロセスにSQL Serverが割り当てたセッションID。 | 12 | はい |
StartTime |
datetime | 利用可能な場合、イベント開始時刻を指定します。 | 14 | はい |
State |
int | SQL Server のソース コード内のイベントが生成された場所を示します。 このイベントが発生する可能性のある各場所は異なる州コードを持っています。 マイクロソフトのサポート エンジニアはこの状態コードを使用して、イベントが生成されたソース コード内の場所を特定することができます。 | 30 | いいえ |
TextData |
ntext | エラーの場合、失敗理由を説明するメッセージが格納されます。 次のいずれかの値です。 証明書が見つかりませんでした: ダイアログ プロトコル セキュリティに指定されたユーザーが証明書を持っていません。 無効な期間です: ダイアログ プロトコル セキュリティに指定されたユーザーは証明書を持っていますが、その証明書の有効期限が切れています。 証明書のサイズが、メモリ割り当てに対して大きすぎます: ダイアログ プロトコル セキュリティに指定されたユーザーは証明書を持っていますが、その証明書のサイズが大きすぎます。 Service Broker でサポートされる証明書の最大サイズは、32,768 バイトです。 秘密キーが見つかりません: ダイアログプロトコルセキュリティに指定されたユーザーは証明書を持っていますが、その証明書に秘密鍵は紐付けられていません。 証明書の秘密キー サイズと暗号化プロバイダーの互換性がありません: 証明書の秘密鍵は処理がうまくできない鍵サイズを持っています。 秘密キー サイズは 64 バイトの倍数である必要があります。 証明書の公開キー サイズと暗号化プロバイダーの互換性がありません: 証明書の公開鍵には処理が困難な鍵サイズがあります。 公開キー サイズは 64 バイトの倍数である必要があります。 証明書の秘密キー サイズと暗号化されたキー交換のキーには互換性がありません: 鍵交換鍵で指定された鍵サイズは、証明書の秘密鍵のサイズと一致しません。 これは一般的に、リモートコンピュータの証明書がデータベースの証明書と一致しないことを示しています。 証明書の公開キー サイズとセキュリティ ヘッダーの署名には互換性がありません: セキュリティヘッダーには、証明書の公開鍵では検証できない署名が含まれています。 これは一般的に、リモートコンピュータの証明書がデータベースの証明書と一致しないことを示しています。 |
1 | はい |
以下の表はこのイベントクラスのサブクラス値を示しています。
| ID | サブクラス | 説明 |
|---|---|---|
| 1 | セキュリティヘッダーなし | 安全な会話中に、Service Brokerはセッションキーを含まないメッセージを受け取りました。 セキュリティで保護されたメッセージ交換が確立されると、ダイアログのプロトコルは、メッセージ交換で使用されるすべてのメッセージにセッション キーが含まれていることを必要とします。 |
| 2 | 証明書なし | サービスブローカーは会話に参加した参加者の一人の有効な証明書を見つけられませんでした。 メッセージ交換をセキュリティで保護するには、メッセージ交換の送信者と受信者の両方が使用できる証明書がデータベースに格納されている必要があります。 |
| 3 | 無効署名 | ブローカーは送信者の証明書にある公開鍵を使って送信者が提供したメッセージ署名を検証できませんでした。 これはメッセージが破損している可能性、改ざんされたこと、リモートサービスとローカルサービスが同じユーザー証明書で設定されていないこと、または証明書が古くなっていることを示す可能性があります。 |
| 4 | ターゲットとして失敗して走る | 宛先ユーザーは宛先キューの受信権限を持っていません。 不正なユーザーがメッセージを受け取るのを防ぐため、Service Brokerは、メッセージを受信できない宛先ユーザーにメッセージをエンキューしません。これは、開始ユーザーがメッセージをエントリーする権限を持っているかどうかに関わらずです。 |