NOBTAの気ままにITブログ

Azure全般 / SQL Serverに関する情報を発信していきます。

TLS1.0/TLS1.1/SSL3.0無効化後にSQL Server/SQL Server Agentサービスの起動が失敗する現象について(0x80090331) [SQL Server]


スポンサーリンク

TLS1.0/TLS1.1/SSL3.0の脆弱性が発見され、暗号化された通信の内容が漏洩する可能性があることが報告されたことにより、セキュリティ対策としてOS上で本プロトコルを無効化し、TLS1.2以降のプロトコルのみを使用可能な状態にする作業を実施されているかと思います。

SQL Server 2016 以降のバージョンでは、リリース時点(RTM)でTLS1.2がサポートされているため、特に何も対処する必要はありませんが、SQL Server 2014 以前のバージョンでは、既定でTLS1.2がサポートされていないため、TLS1.2がサポートされたビルドにSQL Server をアップデートする必要があります。

なお、SQL Server (サーバーサイド/クライアントサイド)でTLS1.2の有効化を実施する前に、OS上で TLS1.0/TLS1.1/SSL3.0 無効化を実施した場合、以下のような現象が発生します。

  •  SQL Server サービスの起動がエラー0x80090331などで失敗する。
  •  SQL Server Agent サービスの起動に失敗する。
  •  クライアント (アプリケーション) から SQL Server への接続が失敗する。

 今回は、SQL Server 2014 以前のバージョンでは、既定でTLS1.2を有効化する方法について紹介したいと思います。

TLS1.2 有効化方法 (サーバーサイド)

SQL Server 2014 以前のバージョンの場合、TLS1.2がサポートされたセキュリティパッチ(GDR)、もしくは、累積的な修正プログラムパッケージ (CU) を適用します。

これから対応を実施する場合は、各バージョンの最新のサービスパック(SP)と累積的な修正プログラムパッケージ(CU)を適用すると良いかと思います。

 

Microsoft SQL Server 用の TLS 1.2 のサポート

https://support.microsoft.com/ja-jp/help/3135244/tls-1-2-support-for-microsoft-sql-server

 

 各SQL Server バージョンの最新のビルドについては、

https://support.microsoft.com/ja-jp/help/321185/how-to-determine-the-version-edition-and-update-level-of-sql-server-an   を参照。

 

TLS1.2 有効化方法 (クライアントサイド)

 TLS1.2の有効化は、サーバーサイド (SQL Server Engine)だけではなく、SQL Server ヘ接続するクライアントサイド側でも実施する必要があります。

最新のドライバを使用している場合は問題ないのですが、.NET Framework 3.5.1 以前の .NET Framework を使用している場合は、TLS1.2に対応するための修正プログラムの適用が必要になります。

また、SQL Server Native Clinet を使用している場合は、SQL Server 2012 QFE (SQL Server 2012 SP4 と同等) を適用する必要があります。

詳細は、サーバーサイドと同様に以下のURLを参照してみてください。

 

Microsoft SQL Server 用の TLS 1.2 のサポート

https://support.microsoft.com/ja-jp/help/3135244/tls-1-2-support-for-microsoft-sql-server

+ クライアント コンポーネントのダウンロード
+ TLS 1.2 を使用する SQL Server に必要なその他の修正プログラム

 

SQL Server 2014 では既定で SQL Server Native Client が使用されているため、TLS1.2を有効化するためには、SQL Server 2012 QFE を適用する必要があります。

なお、SQL Server Native Clinet は、SQL Server 2012 で開発が終わったらしく、最新のものはリリースされていないのですが、最後にリリースされた SQL Server Native Clinet 11.0 は、SQL Server 2014 への接続がサポートされています。しかしながら、Always Encrypted などの最新機能が使用できないため、今度は最新のドライバ ( Microsoft ODBC Driver 17 for SQL Server など)かと思います。

Support Policies for SQL Server Native Client - SQL Server | Microsoft Docs