Microsoft SQL Server 的 TLS 1.2 支援

適用於: SQL Server 2008 DeveloperSQL Server 2008 EnterpriseSQL Server 2008 Express 更多

簡介


本文提供 Microsoft 發行來啟用 Windows、 SQL Server 2016年,SQL Server 2008年,SQL Server 2008 R2、 SQL Server 2012,以及 SQL Server 2014年的 SQL Server 2017年的 TLS 1.2 支援的更新資訊。本文也列出支援的用戶端提供者。

數個已知弱點報告,則對 SSL 和較早版本的傳輸層安全性 (TLS)。我們建議您在安全通訊升級到 TLS 1.2。

重要的無已知的弱點已報告的 Microsoft TDS 實作。這是 SQL Server 用戶端與 SQL Server 資料庫引擎之間則使用的通訊協定。Schannel 實作 TLS 1.0 的 Windows 安全性狀態更新的摘要說明 Microsoft Schannel 的實作 TLS 1.0 (有關已向 Microsoft 報告這份文件的發行日期為準則的已知弱點):2015 年 11 月 24,

如何知道您是否需要此更新程式


請使用下表以判斷您目前的 SQL Server 版本是否已經有支援 TLS 1.2,或者您是否已下載的更新程式,若要啟用 TLS 1.2 的支援。使用表中的下載連結,以取得適用於您環境的伺服器更新。

注意之後的時間比本表中所列出也支援 TLS 1.2 的組建。

SQL Server 版本 初始建置/發行支援 TLS 1.2 目前的更新與 TLS 搭配 1.2 的支援 其他資訊

SQL Server 2014 SP1 CU

12.0.4439.1

SP1 CU5

KB3130926-SQL Server 2014 sp1 的累積更新 5

注意KB3130926 接下來將要安裝 2014 sp1 所產生的最後一個CU (CU13- KB4019099 ,) 包括 TLS 1.2 的支援,以及所有最新發行的 hotfix。必要時,CU5 是用於Windows Update 類別目錄。

注意TLS 1.2 的支援也是2014 SP22014 SP3中可用的。

KB3052404修正程式: 您無法使用傳輸層安全性通訊協定 1.2 版,來連線到伺服器正在執行 SQL Server 2014年或 SQL Server 2012年

SQL Server 2014 SP1 GDR

12.0.4219.0

SP1 GDR TLS 1.2 更新

使用最新累積 GDR 更新 – KB4019091 2014 SP1 GDR TLS 1.2 的支援。

注意TLS 1.2 的支援也是2014 SP22014 SP3中可用的。

 

SQL Server 2014 RTM CU

12.0.2564.0

RTM CU12

KB3130923-SQL Server 2014年累積更新 12

注意KB3130923 將會安裝最後一個CU 釋放 2014 rtm (CU14- KB3158271 ,) 包含 TLS 1.2 的支援,以及所有最新發行的 hotfix。必要時,就有一個 CU12 適用於Windows Update 類別目錄

注意TLS 1.2 的支援也是2014 SP22014 SP3中可用的。

KB3052404修正程式: 您無法使用傳輸層安全性通訊協定 1.2 版,來連線到伺服器正在執行 SQL Server 2014年或 SQL Server 2012年

SQL Server 2014 RTM GDR

12.0.2271.0

RTM GDR TLS 1.2 更新

SQL 2014 RTM TLS 支援目前僅提供的藉由安裝2014 SP22014 SP3.

 

SQL Server 2012 SP3 GDR

11.0.6216.27

SP3 GDR TLS 1.2 更新

使用最新累積 GDR 更新 – KB4057115 2012 SP3 GDR TLS 1.2 的支援。

注意TLS 1.2 的支援也適用於2012 SP4

 

SQL Server 2012 SP3 CU

11.0.6518.0

SP1 CU3

KB3123299-SQL Server 2012 SP3 的累積更新 1

注意KB3123299 接下來將要安裝最後一個CU 2012 SP3 的發行 (CU10- KB4025925 ,其中包括 TLS 1.2 的支援,以及所有最新發行的 hotfix)。必要時,就有一個 CU1 適用於Windows Update 類別目錄

注意TLS 1.2 的支援也適用於2012 SP4

KB3052404修正程式: 您無法使用傳輸層安全性通訊協定 1.2 版,來連線到伺服器正在執行 SQL Server 2014年或 SQL Server 2012年

SQL Server 2012 SP2 GDR

11.0.5352.0

SP2 GDR TLS 1.2 更新

使用最新累積 GDR 更新 – KB3194719 2012 SP2 GDR TLS 1.2 的支援。

TLS 1.2 的支援也是2012 SP32012 SP4中可用的。

 

SQL Server 2012 SP2 CU

11.0.5644.2

SP2 CU10

KB3120313-累積更新 SQL Server 2012 SP2 的 10

注意KB3120313 接下來將要安裝最後一個CU 發行 2012 SP2 (CU16- KB3205054 ,其中包括 TLS 1.2 的支援,以及所有最新發行的 hotfix)。必要時,就有一個 CU1 適用於Windows Update 類別目錄

注意TLS 1.2 的支援也是2012 SP32012 SP4中可用的。

KB3052404修正程式: 您無法使用傳輸層安全性通訊協定 1.2 版,來連線到伺服器正在執行 SQL Server 2014年或 SQL Server 2012年

SQL Server 2008 R2 SP3 (只有 x86/x64)

10.50.6542.0

SP3 TLS 1.2 更新

使用最新的 SQL Server 2008 R2 SP3 – KB4057113累積更新 TLS 1.2 的支援。

 

SQL Server 2008 R2 SP2 GDR (只 IA 64)

10.50.4047.0

SP2 TLS 1.2 更新

SQL Server 2008 R2 SP2 GDR (IA 64) TLS 1.2 更新

 

SQL Server 2008 R2 SP2 CU (只 IA 64)

10.50.4344.0

SP2 TLS 1.2 更新

SQL Server 2008 R2 SP2 GDR (IA 64) TLS 1.2 更新

 

SQL Server 2008 SP4

(只有 x86/x64)

10.0.6547.0

SP4 更新 TLS 1.2

TLS 1.2 支援適用於 SQL Server 2008 sp4 KB4057114最新的累積更新。(只有 x86/x64)

 

SQL Server 2008 SP3 GDR (只 IA 64)

10.0.5545.0

SP3 TLS 1.2 更新

SQL Server 2008 SP3 GDR (IA 64) TLS 1.2 更新

 

SQL Server 2008 SP3 CU (只 IA 64)

10.0.5896.0

SP3 TLS 1.2 更新

SQL Server 2008 SP3 CU (IA 64) TLS 1.2 更新

 

 

用戶端元件下載

您可以使用下表,下載用戶端元件和驅動程式的更新,都適用於您的環境。

用戶端元件 /driver

TLS 1.2 支援的更新

SQL Server 原生用戶端的 SQL Server 2008年以及 SQL Server 2008 R2 (x86/x64/IA64)

Microsoft SQL Server 2008年與 SQL Server 2008 R2 原生用戶端

SQL Server 原生用戶端 (適用於 SQL Server 2012年/2014年/2016年/2017)

(x86/x64)

Microsoft SQL Server 2012年原生用戶端-QFE

若要使用 TLS 1.2 的 SQL Server 所需的其他修正程式


您必須安裝下列.NET hotfix 彙總套件啟用 SQL Server 的功能,像是資料庫的合併列印與某些使用.NET 端點需要 TLS 1.2 的 SSIS 元件支援像是使用 TLS 1.2 的 [Web 服務] 工作。

作業系統 .NET Framework 版本 TLS 1.2 支援的更新
Windows 7 Service Pack 1,Windows 2008 R2 Service Pack 1 3.5.1 包含在.NET Framework 版本 3.5.1 TLS v1.2 支援
Windows 8 RTM 時,Windows 2012 RTM 3.5 包含在.NET Framework 3.5 版中的 TLS v1.2 支援
Windows 8.1,Windows 2012 R2 SP1 3.5 SP1 包含在.NET Framework 3.5 版 SP1 Windows 8.1 和 Windows Server 2012 R2 的 TLS v1.2 支援

常見問題集


SQL Server 2016年支援 TLS 1.1?

[是]。SQL Server 2016年,並在 Windows 版本上的 SQL Server 2017年運送 TLS 1.0 TLS 1.2 的支援。您必須停用 TLS 1.0 和 1.1 版如果您想要只 TLS 1.2 用於用戶端與伺服器通訊。

TDS 受到已知的弱點?

沒有已知的弱點已報告的 Microsoft TDS 實作。因為一些標準強制組織會強制將加密的通訊通道 TLS 1.2,Microsoft 發行 TLS 1.2 的支援基底廣泛的 SQL Server 安裝。

TLS 1.2 更新將散發給客戶的方式?

本文提供的適當伺服器和用戶端更新程式支援 TLS 1.2 的下載連結。

將 SQL Server 2005 支援 TLS 1.2 的?

TLS 1.2 的支援只適用於 SQL Server 2008年或更新版本。

如果 SSL 3.0 和 TLS 1.0 停用伺服器上,則是不使用 SSL/TLS 受影響的客戶?

[是]。SQL Server 會加密使用者名稱和密碼登入時即使未使用安全通訊通道。所有的 SQL Server 執行個體,不使用安全通訊,並且具有在伺服器上停用 TLS 1.2 以外的所有其他通訊協定需要此更新程式。

Windows Server 版本支援 TLS 1.2?

Windows Server 2008 R2 和更新版本支援 TLS 1.2。

若要啟用 TLS 1.2,SQL Server 通訊的正確的登錄設定是什麼?正確的登錄設定如下所示:

[HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\SecurityProviders\SCHANNEL\Protocols\TLS 1.2] [HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\SecurityProviders\SCHANNEL\Protocols\TLS 1.2\Client] "DisabledByDefault"=dword:00000000 "Enabled"=dword:00000001 [HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\SecurityProviders\SCHANNEL\Protocols\TLS 1.2\Server] "DisabledByDefault"=dword:00000000 "Enabled"=dword:00000001  

這些設定所需的伺服器和用戶端電腦的。[DisabledByDefault] 和 [已啟用設定所需在 Windows 7 用戶端和 Windows Server 2008 R2 伺服器上建立的。在 Windows 8 或更新版本的用戶端作業系統或 Windows Server 2012 伺服器和伺服器作業系統的更新版本,應該已經啟用 TLS 1.2。如果您正在實作部署原則,它必須能夠獨立於作業系統版本的 Windows 登錄,我們建議所述的登錄機碼加入原則。

已知問題


問題 1

ISQL 伺服器 Management Studio (SSMS) 」、 「 報表伺服器及 「 報表管理員並未連接到資料庫引擎在套用此修正程式的 SQL Server 2008,2008 R2,2012 或 2014年之後。報表伺服器 」 與 「 報表管理員失敗,並且傳回下列錯誤訊息:

報表伺服器無法開啟到報表伺服器資料庫的連線。需要的所有要求和處理資料庫的連接。(rsReportServerDatabaseUnavailable)

SSMS 」、 「 報表管理員和 「 報告服務組態管理員使用 ADO.NET,和 ADO.NET TLS 1.2 的支援功能只能於.NET Framework 的 4.6,就會發生這個問題。舊版的.NET Framework 中,您必須套用 Windows 更新,以便讓 ADO.NET 可以支援 TLS 1.2 通訊用戶端。啟用在舊版的.NET framework 的 TLS 1.2 支援的 Windows 更新會列在 < 如何知道您是否需要此更新程式=""> 一節中的資料表。

問題 2

即使在用戶端提供者,同時支援 TLS 的 1.2 版本更新之後,才會報告服務組態管理員報告下列錯誤訊息:

無法連線到伺服器: 連接已成功建立到伺服器,但登入前交握期間發生錯誤。

Error message

若要解決這個問題,請手動建立下列登錄機碼 」 主控報表服務組態管理員的系統上: HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\SecurityProviders\SCHANNEL\Protocols\TLS 1.2\Client:"啟用"= dword:00000001

問題 3

當您使用加密的通訊,但可用性群組或資料庫鏡像,或在 SQL Server 的 Service Broker,使用 TLS 1.2 加密的端點通訊就會失敗。SQL 錯誤記錄檔會記錄類似下列的錯誤訊息:

連接交握失敗。OS 呼叫失敗: (80090331) (用戶端和伺服器無法溝通,因為它們未擁有共同的演算法。) 的 0x80090331。狀態 56。

如需有關這個問題的詳細資訊,請參閱修正: 當您使用 SQL Server 時,就會失敗加密的端點與通訊 TLS 1.2

問題 4

當您嘗試在 [已啟用的 TLS 1.2 的伺服器上安裝 SQL Server 2012年 」 或 「 SQL Server 2014年時,就會發生各種錯誤。

如需詳細資訊,請參閱修正: 當您在已啟用的 TLS 1.2 的伺服器上安裝 SQL Server 2012年或 SQL Server 2014年錯誤

問題 5

加密的連線,與資料庫鏡像或可用性群組無法運作時停用 TLS 1.2 以外的所有其他通訊協定之後,您會使用憑證。SQL Server 錯誤記錄檔會記錄類似下列的錯誤訊息:

加密的連線,與資料庫鏡像或可用性群組無法運作時停用 TLS 1.2 以外的所有其他通訊協定之後,您會使用憑證。您可能會發現其中一個下列的徵狀:

徵狀 1:

SQL Server 錯誤記錄檔會記錄類似下列的錯誤訊息:

連接交握失敗。OS 呼叫失敗: (80090331) (用戶端和伺服器無法溝通,因為它們未擁有共同的演算法。) 的 0x80090331。狀態 58。 '

徵狀 2:

Windows 事件記錄檔會記錄類似下列的錯誤訊息:

記錄檔名稱: 系統來源: Schannel日期: < 日期時間 >事件識別碼: 36888工作類別: 無層級: 錯誤關鍵字: 使用者: 系統電腦:---描述:嚴重的警示已產生,並傳送至遠端端點。這可能會導致終止連線。TLS 通訊協定,定義嚴重的錯誤程式碼是 40。Windows SChannel 錯誤狀態會為 1205年。記錄檔名稱: 系統來源: Schannel日期: < 日期時間 >事件識別碼: 36874工作類別: 無層級: 錯誤關鍵字: 使用者: 系統電腦:---描述:TLS 1.2 連線要求已收到從遠端用戶端應用程式,但伺服器所支援所有的用戶端應用程式所支援的加密套件。SSL 的連線要求已經失敗。

因為憑證不使用固定長度雜湊的演算法,例如 MD5 可用性群組和資料庫鏡像需要,就會發生這個問題。固定的長度的雜湊演算法不支援 TLS 1.2 中。

如需詳細資訊,請參閱修正: 使用的 MD5 雜湊演算法就會失敗,如果 SQL Server 使用 TLS 1.2 通訊

問題 6

知識庫文章3146034中所報告間歇的服務終止問題時,會影響到下列的 SQL Server 資料庫引擎版本。對於客戶免於遭到服務終止的問題,我們建議他們自己的 SQL Server 版本會列在下表如果本文所提的 Microsoft SQL Server 的安裝 TLS 1.2 更新。

SQL Server 版本 受影響的版本
SQL Server 2008 R2 SP3 (x 86 和 x64) 10.50.6537.0
SQL Server 2008 R2 SP2 GDR (只 IA 64) 10.50.4046.0
SQL Server 2008 R2 SP2 (只 IA 64) 10.50.4343.0
SQL Server 2008 SP4 (x 86 和 x64) 10.0.6543.0
SQL Server 2008 SP3 GDR (只 IA 64) 10.0.5544.0
SQL Server 2008 SP3 (只 IA 64) 10.0.5894.0

問題 7

郵件資料庫與 TLS 1.2 無法運作。資料庫的郵件就會失敗,因下列錯誤:

Microsoft.SqlServer.Management.SqlIMail.Server.Common.BaseException:無法從資料庫中讀取郵件組態資訊。無法啟動郵件工作階段。

如需詳細資訊,請參閱本文中的其他修正程式所需的 SQL Server 使用 TLS 1.2一節。

用戶端或伺服器上遺漏 TLS 1.2 更新時,您可能會遇到的常見錯誤

問題 1

System Center 組態管理員 (SCCM) 無法連線到 SQL Server 中之後在 SQL Server 上啟用 TLS 1.2 通訊協定。在此情況下,您會收到下列錯誤訊息:

TCP 提供者: 遠端主機強制關閉現有的連線

當 SCCM 使用並沒有修正程式的 SQL Server 的原生用戶端驅動程式時,可能會發生這個問題。若要解決這個問題,請下載並安裝原生的用戶端修正程式的用戶端元件的下載區這份文件中所列。例如: https://www.microsoft.com/en-us/download/details.aspx?id=50402

您可以找出哪一個驅動程式,SCCM 用來連線到 SQL Server 中,藉由檢視 SCCM 記錄檔,如下列範例所示:

[SQL Server Native Client 11.0]TCP Provider: An existing connection was forcibly closed by the remote host.~~  $$<Configuration Manager Setup><08-22-2016 04:15:01.917+420><thread=2868 (0xB34)> *** [08001][10054][Microsoft][SQL Server Native Client 11.0]Client unable to establish connection  $$<Configuration Manager Setup><08-22-2016 04:15:01.917+420><thread=2868 (0xB34)> *** Failed to connect to the SQL Server, connection type: SMS ACCESS.  $$<Configuration Manager Setup><08-22-2016 04:15:01.917+420><thread=2868 (0xB34)> INFO: SQL Connection failed. Connection: SMS ACCESS, Type: Secure  $$<Configuration Manager Setup><08-22-2016 04:15:01.917+420><thread=2868 (0xB34)>Native Client 11.0]TCP Provider: An existing connection was forcibly closed by the remote host.~~  $$<Configuration Manager Setup><08-22-2016 04:15:01.917+420><thread=2868 (0xB34)> *** [08001][10054][Microsoft][SQL Server Native Client 11.0]Client unable to establish connection  $$<Configuration Manager Setup><08-22-2016 04:15:01.917+420><thread=2868 (0xB34)> *** Failed to connect to the SQL Server, connection type: SMS ACCESS.  $$<Configuration Manager Setup><08-22-2016 04:15:01.917+420><thread=2868 (0xB34)> INFO: SQL Connection failed. Connection: SMS ACCESS, Type: Secure  $$<Configuration Manager Setup><08-22-2016 04:15:01.917+420><thread=2868 (0xB34)>