クライアントが最近TLS 1.0からTLS 1.2にアップグレードしたため、このソフトウェアはSQLサーバーに接続できません。 SQLサーバーへの接続にOLE DBプロバイダーを使用します。以下はSQLサーバーから返されるエラーです。
[DBNETLIB] [ConnectionOpen SECDoClientHandshake()] SSLセキュリティエラーSQL状態:08001 SQLエラー番号:18
Microsoft OLE DBプロバイダーfor SQL ServerがTLS 1.2をサポートしているかどうかに関する有用な情報が見つかりませんでした。
私が見つけたリンクの1つは、サポートされていないことを示唆しているようです。 https://forums.iis.net/t/1233674.aspx?connecing+SQL+server+DB+issue+after+installingTLS1+2+in+SQL+srver+with+classic+asp+application+
したがって、誰かがこれに関する情報を持っている場合に備えて、stackoverflowをチェックしたかったのです。
SQLOLEDBプロバイダーとWindowsに同梱されているSQL Server ODBC=ドライバーは、下位互換性のためにのみ提供されているレガシーコンポーネントです。これらはSQL 2005以降廃止されています。
MSSQL Tigerチームによるこのブログ投稿 :によると
SQLOLEDBはTLS 1.2のサポートを受けません。 https://support.Microsoft.com/en-us/kb/3135244 にリストされているサポートされているドライバーのいずれかにドライバーを切り替える必要があります。
SQL Server Native Client 2012をインストールし、そのOLE DBプロバイダーを接続文字列の変更のみ(change Provider=SQLOLEDB
からProvider=SQLNCLI11
)。もちろん、驚きを避けるために一度テストする必要があります。たとえば、サーバーAPIカーソルが使用されたときにSQL Server Native ClientプロバイダーとADO classicで動作の違いが発生した人を思い出しますが、一般的に使用されるファイアホースカーソルは問題ありませんでした。
[〜#〜] edit [〜#〜]
新しいOLE DBドライバー [〜#〜] msoledbsql [〜#〜] がリリースされました。この新しいドライバーには、最新のTLS 1.2標準のサポートが含まれていますSQL Server Native Client 11(SQLNCLI11)と下位互換性があります Microsoft SQLNCLiチームのブログ発表 を参照してください。
クライアントが待つことができない将来の修正であるため、これはあなたのための解決策ではないかもしれませんが、どうやらMicrosoftは控えめなOLEDBドライバーであり、新しいリリースをサポートしています2018年第1四半期のTLS 1.2: https://blogs.msdn.Microsoft.com/sqlnativeclient/2017/10/06/announcing-the-new-release-of-ole-db-driver-for-sql- server /
新しいMicrosoft OLE SQL Server用DBドライバー、またはmsoledbsqlは、この最初のリリースでマルチサブネットフェールオーバー機能を導入し、最新のものに対応します。 TLS 1.2標準。
また、この最初の今後のリリースは、SQL Serverライフサイクルの帯域外のスタンドアロンインストールパッケージになります。これは、ドライバーがSNACライブラリーにパッケージ化されず、他のドライバーと結合されないことも意味します。
私の側の次の変更は、AzureクラウドでのTLS1.2アップグレード後の問題を修正しました-
Provider=SQLOLEDB
からProvider=SQLNCLI11
これは質問に直接答えないかもしれませんが、TLS 1.2エラーを伴うSQLサーバー接続に関連しています。
私は古いASP以下のエラーで壊れたクラシックWebサイトを維持しています。
Microsoft OLE DB Provider for SQL Server error '80004005'
[DBNETLIB][ConnectionOpen (SECDoClientHandshake()).]SSL Security error.
Provider
をSQLOLEDB
からSQL Server Native Client 11.0
またはそれ以上のバージョンに変更すると、エラーが修正されました。
したがって、接続文字列を
constr = "Provider=SQLOLEDB;Data Source=..."
に
constr = "Provider=SQL Server Native Client 11.0;Data Source=...."
うまくいくかもしれない