MSSQLSERVER_17832

适用于:SQL Server

详细信息

属性
产品名称 SQL Server
事件 ID 17832
事件源 MSSQLSERVER
组件 SQLEngine
符号名称 SRV_BAD_LOGIN_PKT
消息正文 用于打开该连接的登录数据包的结构无效;该连接已关闭。 请与客户端库的供应商联系。%.*ls

说明

SQL Server 计算机未能处理客户端登录数据包。 这可能是由于未正确创建数据包或数据包在传输过程中受损造成的。 它也可能由 SQL Server 计算机的配置引起。 所列出的 IP 地址为客户端计算机的地址。 Windows 和 SQL 登录名可能会出现此错误。

更多信息

当在 Kerberos 环境中使用 Windows 身份验证时,客户端会接收包含特权属性证书 (PAC) 的 Kerberos 票证。 PAC 包含各种类型的身份验证数据,包括用户所在的组、用户拥有的权限以及对用户应用的策略。 当客户端接收 Kerberos 票证时,包含在 PAC 中的信息将用于生成用户的访问标记。 客户端将令牌作为登录数据包的一部分呈现给 SQL Server 计算机。

如果在传输过程中令牌未正确创建或损坏,SQL Server 无法提供有关该问题的其他信息。

如果用户是多个组的成员或具有多个策略,则该标记的长度可能会比正常标记大一些以全部列出这些信息。 如果该标记的长度大于服务器计算机的 MaxTokenSize 值,则客户端将无法连接并显示常规网络错误 (GNE),且会出现错误 17832。 此问题可能只会影响某些用户,即拥有多个组的成员身份或具有多个策略的用户。 当问题是 服务器计算机的 MaxTokenSize 值时,SQL Server 错误日志中的错误 17832 将附带状态为 9 的错误。 有关 Kerberos 和 MaxTokenSize 的其他详细信息,请参阅 KB327825

用户操作

对于 Windows 登录名,可以通过将服务器计算机上的 MaxTokenSize 值增加到足够大的大小来包含组织中任何用户的最大令牌,从而可能解决此错误。

注意

错误编辑注册表会严重损坏您的系统。 更改注册表项之前,建议您备份计算机中的所有重要数据。

更改服务器计算机上的 MaxTokenSize

  1. “开始” 菜单上,单击 “运行”

  2. 键入 regedit,然后单击“确定”。 (如果此时出现“用户帐户控制”对话框,请单击“继续”。)

  3. 导航到 HKEY_LOCAL_MACHINE\System\CurrentControlSet\Control\Lsa\Kerberos\Parameters

  4. 如果 MaxTokenSize 参数不存在,请右键单击“参数”,指向“新建”,然后单击“DWORD (32 位)”值。 将注册表项命名为 MaxTokenSize

  5. 右键单击 MaxTokenSize,然后单击“修改”。

  6. 在“数值数据”框中键入所需的 MaxTokenSize 值。

    注意

    建议使用的最大标记长度为十六进制值 ffff(十进制值 65535)。 提供此值后很可能会解决问题,但可能会对计算机的性能产生负面影响。 建议您建立可包含单位中任一用户最长标记的最小 MaxTokenSize 值并输入该值。

  7. 选择“确定”

  8. 关闭注册表编辑器

  9. 重新启动计算机。