簡介
本文提供 Microsoft 為了啟用 Windows、SQL Server 2016、SQL Server 2008、SQL Server 2008 R2、SQL Server 2012 和 SQL Server 2014 上的 SQL Server 2017 支援所發行之更新的資訊。 本文也會列出支援的用戶端提供者。 SQL Server 2016、SQL Server 2017 和 SQL Server 2019 支援 TLS 1.2,而不需要更新。
針對 SSL 和較舊版本的傳輸層安全性與 TLS (報告) 。 建議您升級至 TLS 1.2,以確保通訊安全。
重要:未針對 Microsoft TDS 執行報告任何已知弱點。 這是 SQL Server 用戶端與 SQL Server 資料庫引擎之間所使用的通訊通訊協定。 Microsoft Schannel 1.0 (的 TLS 1.0 (與在本文發佈日期之前向) Microsoft 報告的已知弱點,摘要在 Windows 安全性狀態更新 :2015 年 11 月 24 日 TLS 1.0的 Schannel 執行中。
如何知道您是否需要此更新
使用下表判斷您目前的 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 附註: KB3130926 現在將安裝 2014 SP1 (CU13 - KB4019099 ) 產生的最後一個CU,其中包含 TLS 1.2 支援,以及所有已發佈的 Hotfix。 如果需要,可在 Windows 更新目錄使用 CU5。 附註: TLS 1.2 支援也可在 2014 SP2 和 2014 SP3 中提供。 |
KB3052404 - 修正:您無法使用傳輸層安全性通訊協定版本 1.2 來連接到執行 SQL Server 2014 或 SQL Server 2012 的伺服器 |
SQL Server 2014 SP1 GDR |
12.0.4219.0 SP1 GDR TLS 1.2 Update |
TLS 1.2 2014 SP1 GDR 支援可在最新的 GDR 累積更新 - KB4019091 中提供。 附註: TLS 1.2 支援也可在 2014 SP2 和 2014 SP3 中提供。 |
|
SQL Server 2014 RTM CU |
12.0.2564.0 RTM CU12 |
KB3130923 - SQL Server 2014 的累積更新 12 附註: KB3130923 現在將安裝 2014 RTM (CU14 - KB3158271 ) 發行的最後一個CU,其中包含 TLS 1.2 支援,以及所有最新發佈的 Hotfix。 如果需要,可在 WindowsUpdate 目錄使用 CU12。 附註: TLS 1.2 支援也可在 2014 SP2 和 2014 SP3 中提供。 |
KB3052404 - 修正:您無法使用傳輸層安全性通訊協定版本 1.2 來連接到執行 SQL Server 2014 或 SQL Server 2012 的伺服器 |
SQL Server 2014 RTM GDR |
12.0.2271.0 RTM GDR TLS 1.2 Update |
目前只有安裝 2014 SP2 和 2014 SP3 才能使用 SQL 2014 RTM 的 TLS 支援 。 |
|
SQL Server 2012 SP3 GDR |
11.0.6216.27 SP3 GDR TLS 1.2 更新 |
TLS 1.2 2012 SP3 GDR 支援可在最新的 GDR 累積更新 - KB4057115 中提供。 附註: TLS 1.2 支援也可在 2012 SP4 中提供。 |
|
SQL Server 2012 SP3 CU |
11.0.6518.0 SP1 CU3 |
KB3123299 - SQL Server 2012 SP3 附註: KB3123299 現在將安裝上次發行于 2012 SP3 (CU10 - KB4025925的CU,其中包含 TLS 1.2 支援,以及最新發行的所有 hotfix) 。 如果需要,可在 Windows Update 目錄使用CU1。 附註: 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 更新 |
TLS 1.2 2012 SP2 GDR 支援可在最新的 GDR 累積更新 - KB3194719 中提供。 TLS 1.2 支援也可在 2012 SP3 和 2012 SP4 中提供。 |
|
SQL Server 2012 SP2 CU |
11.0.5644.2 SP2 CU10 |
KB3120313 - SQL Server 2012 SP2 的累積更新 10。 附註: KB3120313 現在將安裝 2012 SP2 發行 的最後一個 CU (CU16 - KB3205054,其中包含 TLS 1.2 支援,以及最新發行的所有 hotfix) 。 如果需要,可在 Windows Update 目錄使用CU1。 附註: TLS 1.2 支援也可在 2012 SP3 和 2012 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 更新 |
TLS 1.2 支援可在 SQL Server 2008 R2 SP3 - KB4057113的最新累積更新中提供。 |
|
SQL Server 2008 R2 SP2 GDR (IA-64 只) |
10.50.4047.0 SP2 TLS 1.2 更新 |
||
SQL Server 2008 R2 SP2 CU (IA-64 只) |
10.50.4344.0 SP2 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 更新https://www.microsoft.com/download/details.aspx?id=57605 |
|
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 更新https://www.microsoft.com/download/details.aspx?id=57605 |
用戶端元件下載
使用下表下載適用于您環境的用戶端元件和驅動程式更新。
用戶端元件 /驅動程式 |
支援 TLS 1.2 的更新 |
SQL Server Native Client 10.0 for SQL Server 2008/2008 R2 (x86/x64/IA64) |
|
SQL Server Native Client 11.0 for SQL Server 2012/2014 (x86/x64) |
SQL Server 使用 TLS 1.2 所需的其他修正
您必須安裝下列 .NET Hotfix 匯總組,以啟用 SQL Server 功能,例如資料庫郵件,以及使用 .NET 端點且需要 TLS 1.2 支援的某些 SSIS 元件,例如 Web 服務工作,才能使用 TLS 1.2。
作業系統 |
.NET Framework 版本 |
支援 TLS 1.2 的更新 |
---|---|---|
Windows 7 Service Pack 1、Windows 2008 R2 Service Pack 1 |
3.5 .1 |
|
Windows 8 RTM、Windows 2012 RTM |
3.5 |
|
Windows 8.1、Windows 2012 R2 SP1 |
3.5 SP1 |
Windows 8.1 與 Windows Server 2012 R2 上的 .NET Framework 版本 3.5 SP1 包含的 TLS v1.2 支援 |
常見問題集
SQL Server 2016 及更新版本是否支援 TLS 1.1?
可以。 SQL Server 2016、Windows 上的 SQL Server 2017 和 Windows 版 SQL Server 2019 與 TLS 1.0 一起提供 TLS 1.2 支援。 如果您只想使用 TLS 1.2 進行用戶端-伺服器通訊,您必須停用 TLS 1.0 和 1.1。
SQL Server 2019 是否允許使用 TLS 1.0 或 1.1 或 1.2 進行連結?
SQL Server 2019 的支援層級與 SQL Server 2016 和 SQL Server 2017 相同,而 SQL Server 2019 則支援舊版 TLS。 SQL Server 2019 RTM 是隨 TLS 1.2 支援一起提供,因此不需要額外更新/修正,也不需要啟用 TLS 1.2 支援。
TDS 是否受到已知弱點的影響?
未針對 Microsoft TDS 執行報告任何已知弱點。 由於數個標準強制執行組織正在強制要求加密通訊通道使用 TLS 1.2,因此 Microsoft 將針對廣泛的 SQL Server 安裝基礎發行 TLS 1.2 支援。
TLS 1.2 更新如何散發給客戶?
本文針對支援 TLS 1.2 的適當伺服器和用戶端更新提供下載連結。
TLS 1.2 是否支援 SQL Server 2005?
TLS 1.2 支援僅適用于 SQL Server 2008 及更新版本。
如果在伺服器上停用 SSL 3.0 和 TLS 1.0,沒有使用 SSL/TLS 的客戶會受到影響嗎?
可以。 即使未使用安全通訊通道,SQL Server 在登入期間會加密使用者名稱和密碼。 對於沒有使用安全通訊,且伺服器上已停用 TLS 1.2 以外的所有其他通訊協定的所有 SQL Server 實例,都需要此更新。
哪些版本的 Windows Server 支援 TLS 1.2?
Windows Server 2008 R2 及更新版本支援 TLS 1.2。
啟用 SQL Server 通訊 TLS 1.2 的正確註冊表設定是什麼? 正確的註冊表設定如下:
[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
伺服器和用戶端電腦都需要這些設定。 必須于 Windows 7 用戶端和 Windows Server 2008 R2 伺服器上建立 DisabledByDefault 和 Enabled 設定。 在 Windows 8 及更新版本的用戶端作業系統或 Windows Server 2012 伺服器及更新版本的伺服器作業系統中,TLS 1.2 應該已經啟用。 如果您要針對 Windows Registry 執行部署策略,而該部署策略必須獨立于作業系統版本,建議您在該策略中新增上述的登錄機碼。
已知問題
問題 1
ISQL Server Management Studio (SSMS) 、Report Server 和 Report Manager 在您針對 SQL Server 2008、2008 R2、2012 或 2014 適用修正程式之後,不會連接到資料庫引擎。 報表伺服器和報表管理員失敗,並返回下列錯誤訊息:
報表伺服器無法開啟報表伺服器資料庫的連接。 所有要求和處理都需要與資料庫建立連接。 (rsReportServerDatabaseUnavailable)
此問題發生的原因是 SSMS、Report Manager 和 Reporting Services Configuration Manager 使用 ADO.NET,而 ADO.NET TLS 1.2 的支援僅適用于 .NET Framework 4.6。 針對較舊版本的 .NET Framework,您必須申請 Windows 更新,ADO.NET用戶端支援 TLS 1.2 通訊。 在舊版本 .NET 架構中啟用 TLS 1.2 支援的 Windows 更新會列在「如何知道您是否需要此更新」一節的表格中。
問題 2
即使用戶端提供者已更新至支援 TLS 1.2 的版本,Reporting Services Configuration Manager 也報告下列錯誤訊息:
無法連接到伺服器:已成功建立與伺服器的連接,但在登入前交握期間發生錯誤。
若要解決此問題,請手動在主託管 Reporting Services Configuration Manager 的系統中建立下列登錄機碼 :HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\SecurityProviders\SCHANNEL\Protocols\TLS 1.2\Client: "Enabled"=dword:00000001
問題 3
使用 TLS 1.2 的加密端點通訊在 SQL Server 中將加密通訊用於可用性群組或資料庫鏡像或服務統一處理時失敗。 類似下列的錯誤訊息會記錄在 SQL 錯誤記錄中:
連接交握失敗。 作業系統通話失敗: (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 錯誤記錄中:
連接交握失敗。 作業系統通話失敗: (80090331) 0x80090331 (用戶端和伺服器無法通訊,因為他們沒有常見的演算法。) 。 State 58.'
問題 2:
類似下列的錯誤訊息會記錄在 Windows 事件記錄中:
記錄名稱:系統
來源:Schannel
日期:<日期時間>
事件識別碼:36888
工作類別:無
層級:錯誤
關鍵字:
使用者:SYSTEM
電腦:------------
描述:
警示警示已產生並送到遠端端點。 這可能會導致連接終止。 TLS 通訊協定定義的錯誤碼為 40。 Windows SChannel 錯誤狀態為 1205。
記錄名稱:系統
來源:Schannel
日期:<日期時間>
事件識別碼:36874
工作類別:無
層級:錯誤
關鍵字:
使用者:SYSTEM
電腦:-----------
描述:
從遠端用戶端應用程式收到 TLS 1.2 連接要求,但伺服器不支援用戶端應用程式支援之密碼套件。 SSL 連線要求失敗。
此問題發生的原因是可用性群組和資料庫鏡像需要不使用固定長度雜湊演算法的憑證,例如 MD5。 TLS 1.2 不支援固定長度雜湊演算法。
請參閱修正程式:如果 SQL Server 使用 TLS 1.2,則使用 MD5 雜湊演算法的通訊會失敗。
問題 6
下列 SQL Server 資料庫引擎版本會受到知識庫文章 3146034中報告的間歇性服務終止問題影響。 若要讓客戶保護自己,避免服務終止問題,我們建議客戶安裝本文中提及的 Microsoft SQL Server TLS 1.2 更新 ,如果其 SQL Server 版本列在下表中。
SQL Server 發行 |
受影響的版本 |
SQL Server 2008 R2 SP3 (x86 和 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 (x86 和 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
在 SQL Server 上啟用 TLS 1.2 通訊協定 (SCCM) 之後,System Center Configuration Manager) 無法連接到 SQL Server。 在此情況下,您會收到下列錯誤訊息:
TCP 提供者:遠端主機會關閉現有連接
當 SCCM 使用沒有修正程式之 SQL Server Native Client 驅動程式時,可能會發生此問題。 若要解決此問題,請下載並安裝本文的用戶端元件下載區段中列出的原生用戶端修正程式。 例如:Microsoft® SQL Server® 2012 Native Client - QFE。
您可以檢視 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)>