Share via


MSSQLSERVER_17832

適用於:SQL Server

詳細資料

屬性
產品名稱 SQL Server
事件識別碼 17832
事件來源 MSSQLSERVER
元件 SQLEngine
符號名稱 SRV_BAD_LOGIN_PKT
訊息文字 用來開啟連接的登入封包的結構無效; 此連接已經關閉。 請聯繫用戶端程式庫的供應商。%.*ls

說明

SQL Server 計算機無法處理用戶端登入封包。 這可能是因為封包建立不正確,或因為封包在傳輸期間損毀。 也可能由 SQL Server 計算機的設定所造成。 列出的IP位址是用戶端電腦的位址。 Windows 和 SQL 登入都可能發生此錯誤。

相關資訊

在 Kerberos 環境中使用 Windows 驗證時,用戶端會收到 Kerberos 票證,其中包含許可權屬性憑證 (PAC)。 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. 重新啟動電腦。