SQL Server 创建 Audit Broker Conversation 事件,以报告与 Service Broker 对话安全性相关的审核消息。
Audit Broker Conversation 事件类数据列
| 数据列 | 类型 | DESCRIPTION | 列号 | 可筛选 |
|---|---|---|---|---|
| ApplicationName | nvarchar | 创建到 SQL Server 实例连接的客户端应用程序的名称。 此列由应用程序传递的值填充,而不是由所显示的程序名填充。 | 10 | 是的 |
| BigintData1 | bigint | 消息序列号。 | 52 | 否 |
| ClientProcessID | int | 主机分配给运行客户端应用程序的进程的 ID。 如果客户端提供了客户端进程 ID,则填充此数据列。 | 9 | 是的 |
| DatabaseID | int | USE 数据库 语句指定的数据库 ID,或者在特定实例中如果没有发出 USE 数据库 语句,则为默认数据库的 ID。 如果在跟踪中捕获 ServerName 数据列且服务器可用,SQL Server Profiler 将显示数据库名称。 可使用 DB_ID 函数来确定数据库的值。 | 3 | 是的 |
| 错误 | int | 如果此事件报告错误,则为 SQL Server 错误号。 | 31 | 否 |
| EventClass | int | 捕获的事件类的类型。 对于 Audit Broker 对话,始终为 158。 | 二十七 | 否 |
| EventSubClass | int | 事件子类的类型,提供有关每个事件类的详细信息。 下表列出了此事件的事件子类值。 | 21 | 是的 |
| 文件名 | nvarchar | 登录失败的原因。 如果登录成功,则此列为空。 | 36 | 否 |
| GUID | uniqueidentifier | 对话的ID。 此标识符作为消息的一部分传输,并在对话双方之间共享。 | 54 | 否 |
| HostName | nvarchar | 运行客户端的计算机的名称。 如果客户端提供了主机名,则填充此数据列。 若要确定主机名,请使用 HOST_NAME 函数。 | 8 | 是的 |
| IntegerData | int | 消息的分段编号。 | 二十五 | 否 |
| NTDomainName | nvarchar | 用户所属的 Windows 域。 | 7 | 是的 |
| NTUserName | nvarchar | 拥有生成此事件的连接的用户的名称。 | 6 | 是的 |
| ObjectId | int | 目标服务的用户 ID。 | 22 | 否 |
| RoleName | nvarchar | 会话句柄的角色。 这是 发起者 或者 目标。 | 三十八 | 否 |
| ServerName | nvarchar | 要跟踪的 SQL Server 实例的名称。 | 26 | 否 |
| 严重性 | int | 如果此事件报告错误,则 SQL Server 错误严重性。 | 二十九 | 否 |
| SPID | int | SQL Server 分配给与客户端关联的进程的服务器进程 ID。 | 12 | 是的 |
| StartTime | 日期/时间 | 事件发生的时间(可用时)。 | 14 | 是的 |
| 州 | int | 指示生成事件的 SQL Server 源代码中的位置。 可能生成此事件的每个位置都有不同的状态代码。 Microsoft支持工程师可以使用此状态代码来查找生成事件的位置。 | 30 | 否 |
| TextData | ntext | 对于错误,包含描述失败原因的消息。 以下值之一: 找不到证书。 为对话协议安全性指定的用户没有证书。 无效时间段。 为对话协议安全性指定的用户具有证书,但证书已过期。 证书太大,无法分配内存。 为对话协议安全性指定的用户具有证书,但证书太大。 Service Broker 支持的最大证书大小为 32,768 字节。 找不到私钥。 为对话协议安全性指定的用户具有证书,但没有与该证书关联的私钥。 证书的私钥大小与加密提供程序不兼容。 证书的私钥具有无法成功处理的密钥大小。 私钥大小必须是 64 个字节的倍数。 证书的公钥大小与加密提供程序不兼容。 证书的公钥具有无法成功处理的密钥大小。 公钥大小必须是 64 个字节的倍数。 证书的私钥大小与加密密钥交换密钥不兼容。 密钥交换密钥中指定的密钥大小与证书私钥的大小不匹配。 这通常表示远程计算机上的证书与数据库中的证书不匹配。 证书的公钥大小与安全标头的签名不兼容。 安全标头包含一个签名,该签名不能使用证书的公钥进行验证。 这通常表示远程计算机上的证书与数据库中的证书不匹配。 |
1 | 是的 |
下表列出了此事件类的子类值。
| 身份证件 | 子类 | DESCRIPTION |
|---|---|---|
| 1 | 无安全标头 | 在安全会话期间,Service Broker 收到不包含会话密钥的消息。 建立安全对话后,对话协议要求会话中的所有消息都包含会话密钥。 |
| 2 | 无证书 | Service Broker 找不到会话中某个参与者的可用证书。 若要保护会话,数据库必须同时包含会话的发件人和收件人的证书。 |
| 3 | 签名无效 | 中转站无法使用发件人证书中的公钥验证发件人提供的消息签名。 这可能表示消息已损坏、消息已被篡改、远程服务和本地服务未配置相同的用户证书或证书过期。 |
| 4 | 作为目标运行失败 | 目标用户对目标队列无接收权限。 为防止未经授权的用户接收消息,Service Broker 不会将消息排入队列中无法接收的目标用户,而不管发起的用户是否有权排队消息。 |