網管人員為了符合網路資訊安全的理由,必須將 Windows Server 的 TLS 1.0 關閉,但是關閉 TLS 1.0 後,ASP 程式就沒有辦法再連接 SQL Server 資料庫了!
錯誤訊息:
Microsoft OLE DB Provider for ODBC Drivers 錯誤 '80004005'
[Microsoft][ODBC SQL Server Driver][DBNETLIB]SSL 安全設定錯誤
經過不斷地在網路上爬文後,才了解這是因為原來的 ODBC Driver 只支援 TLS 1.0,而不支援新的加密方式 TLS 1.1 以及 TLS 1.2,因此關閉 TLS 1.0 之後,就會無法跟原來的 SQL Server 連接了。
既然原來的 ODBC Driver 只支援 TLS 1.0 而不支援 TLS 1.2,所以解決方法,首先當然就是要安裝支援 TLS1.2 的 ODBC Driver,微軟官方提供了相關的檔案直接 下載 安裝,這個是 ODBC Driver 13 for SQL Server 目前版本為13.1,可依照你的作業系統選擇安裝的是64位元或x86的版本,安裝完畢後,建議重新開機。
接著修改原來的連接資料庫字串
driver={SQL Server};server=xxx;uid=xxx;pwd=xxx;database=xxx
改為
driver={ODBC Driver 13 for SQL Server};server=xxx;uid=xxx;pwd=xxx;database=xxx
存檔後,網頁重新整理就可以繼續使用了。
註:安裝 ODBC Driver 13 for SQL Server 時,有時會遇到下面的提示窗,可以進入「服務」去停用相關的程式,接著再重試安裝,安裝完後再重新啟動剛剛停用的服務即可。
intel(R) Proset monitoring service 這個是再安裝驅動程式所安裝的,停用不會造成任何的狀況,所以可以直接停用、安裝、重啟。