SQL Azure での暗号化接続(SSL によるネットワーク データの暗号化)
@IT での Windows Azure Community の山本さんの以下の記事
SQL Azureを実際に活用する
http://www.atmarkit.co.jp/fdotnet/dnfuture/winazureplatform_03/winazureplatform_03_02.html
で、暗号化接続について詳しく説明されていて、ハッとさせられました。
暗号化はとっても重要ですね。山本さんすばらしい!
SQL Azure への暗号化接続(SSL:Secure Sockets Layer によるネットワーク データの暗号化)をまとめると、
■ Management Studio の場合(SQL Server 2008/SQL Server 2008 R2 共通)
Management Studio の場合は、[データベース エンジンへの接続]ダイアログで[オブション]ボタンをクリックして、[接続プロパティ]タブで「暗号化接続」をチェックします。
■ sqlcmd ユーティリティの場合(SQL Server 2008 R2 のみ)
sqlcmd ユーティリティは、/N オプションを利用します。
ただし、このオプションは、SQL Server 2008 R2 からの新機能なので、SQL Server 2008 の sqlcmd ユーティリティを利用する場合は、利用することができません(暗号化接続を行うことができません)。
■ Integration Services のインポート/エクスポート ウィザードの場合
Integration Services の場合は、次のように「Encrypt」を「True」へ設定します。
■ bcp コマンドの場合
bcp コマンドは、残念ながら暗号化接続に対応していないので、セキュアなデータ転送を行いたい場合には、Integration Services を利用するようにします。
■ ADO.NET の場合
ADO.NET の場合は、次のように接続文字列へ「Encrypt=True;」を追加します。
Dim cnstr As String = "Server=サーバー名.database.windows.net;" _ & "Database=データベース名;" _ & "User ID=アカウント名@サーバー名;" _ & "Password=パスワード;" _ & "Encrypt=True;" Using cn As New SqlConnection(cnstr)
■ JDBC の場合
JDBC の場合は、次のように接続文字列へ「TrustServerCertificate=true;」と「encrypt=true;」を追加します。
Class.forName("com.microsoft.sqlserver.jdbc.SQLServerDriver"); String url = "jdbc:sqlserver://サーバー名.database.windows.net:1433;" + "databaseName=データベース名;" + "TrustServerCertificate=true;encrypt=true;"; String user = "ユーザー名@サーバー名"; String password = "パスワード"; Connection cn = DriverManager.getConnection(url, user, password);
SQL Azure の具体的な利用方法については、弊社執筆の SQL Server 2008 R2 自習書シリーズの「SQL Azure 入門」編を参考にしてみてください(下記 URL の右下のリンク)。
http://www.microsoft.com/japan/sqlserver/2008/r2/prodinfo/default.mspx