SE の雑記

SQL Server の情報をメインに Microsoft 製品の勉強内容を日々投稿

SSMS と TDS のバージョンについて

leave a comment

Azure の SQL Database ではサポートする TDS のバージョンが決まっており、TDS 7.3 以降がサポート対象となります。

Azure SQL データベースの一般的なガイドラインと制限事項

Microsoft Azure SQL データベースでは、表形式のデータ ストリーム (TDS) プロトコル クライアント Version 7.3 以降がサポートされています。TDS プロトコルの以前のバージョンはサポートされていません。

OLE DB または ADO を使用した Microsoft Azure SQL データベース への接続はサポートされていません。

SQL Datatabse のセキュリティ機能については  Azure SQL Database Security Features が参考になります。

最近知ったのですが、SQL Database の監査機能を必須にした場合、TDS 7.4 以上であれば「<server name>.database.secure.windows.net」を使用しなくても、「<server name>.database.windows.net」で接続をすることができるようになっています。
# TDS 7.4 以上を使用している場合、監査を必須にした場合の接続文字列の変更が不要となります。

これについては、Get started with SQL database auditing に記載されています。

Security-enabled access

There are two methods to get auditing for your connection:

  1. For clients which are using TDS version 7.4 and above switch the SECURITY ENABLED ACCESS to REQUIRED.

  2. For "Downlevel clients" which are using TDS version 7.3 and below there is a need to configure a security enabled connection string:

Traditional connection string format: <server name>.database.windows.net

Security-enabled connection string: <server name>.database.secure.windows.net

Remark: a partial list of "Downlevel clients" includes: .NET 4.0 and below, JDBC 4.0 and below, and ODBC 10.0 and below.

ドキュメントについては Github でも公開されており、履歴についてはこちらから確認をすることができます。
https://github.com/Azure/azure-content/blob/master/articles/sql-database-auditing-get-started.md

SSMS を使用した場合、TDS のバージョンの対応表があるかなと思って調べてみたところ、6 Appendix A: Product Behavior に情報がまとめられていました。

image

 

SSMS では、SQL Server 2008 から、TDS 7.3 が使用されており、SQL Server 2012 / 2014 で 7.4 となるようですね。

以下も参考になりそうです。
Connection failure because of mismatched TDS version
SQL Server 2014 reseting isolation level

 

なお、Windows Server 2008 R2 などで SSMS を動作する場合には、使用している .NET Framework のバージョンに気を付けておく必要があります。

Windows 8 / Windows Server 2012 以降では、.NET Framework 4.5 が標準で含まれていますので、影響はないのですが、上記の Windows Server 2008 R2 や Windows 7 以前を使用する場合は、.NET Framework によって SSMS で使用される TDS のバージョンが変わってきます。
.NET Framework 4.5、4.5.1、および 4.5.2 のインストール

こちらは Windows Server 2008 R2 + .NET Framework 4.5 がインストールされた環境で SQL Server 2012 の SSMS により、SQL Database に接続した環境になります。
image

この場合は client_version が 7 となっており、TDS 7.4 で動作しています。
この組み合わせの場合は監査を必須にしていても、ダウンレベルクライアントではありませんので、secure を省略しても接続をすることができます。
image

Windows Server 2008 R2 + .NET Framework 4.0 以下の環境では client_version が 6 となり、TDS 7.3 (ダウンレベルクライアント)での動作となります。
image

この場合は、監査が必須となっている環境では、secure が必要となりますので、secure が無いサーバー名で接続をしようとした場合にはエラーとなります。
# Windows Server 2008 R2 に .NET Framework 4.5 をインストールしていない環境の 2014 の SSMS でも同一となります。
image

ダウンレベルクライアントについては .NET Framework 4.0 以前が該当するので、この辺も気を付けておいた方がよいかと。

Written by masayuki.ozawa

4月 22nd, 2015 at 10:59 pm

Posted in SQL Server

Tagged with

Leave a Reply

*