Windows Azure Platform速習シリーズ:SQL Azure(後編)

SQL Azureを実際に活用する

Windows Azure Community 山本 昭宏 (監修 市川 龍太)
2010/01/22
Page1 Page2 Page3

SQL Server Management StudioによるSQL Azure Databaseの操作

 SQL Server 2008 R2バージョンから、それに同梱されているSQL Server Management Studio(以下SSMS)でのSQL Azure Databaseへの接続がサポートされる(現在はCTP版が利用可能)。SQL ServerのGUI版管理ツールであるSSMSにより、SQL Azure Databaseのオブジェクトのツリー表示など、GUIによる操作が可能になる。

 そこで以下に、SSMSのインストール手順と、SQL Azure Databaseへの接続手順、およびSQL Azure Databaseの操作方法の説明を行う。

SQL Server Management Studioのインストール手順

 まず、「Microsoft SQL Server 2008 R2 Community Technology Preview 11月版ダウンロード・ページ」からSQL Server 2008 R2のインストーラをダウンロードして、インストールを実行する。

 途中、[機能の選択]ページが表示されるが、SQL Azure Databaseに接続するために必要となるのは、[管理ツール - 基本]と[SQL クライアント接続 SDK]のみなので、この2つにチェックすればよい。

SSMSに必要な機能の選択

SSMSを使用したSQL Azure Databaseへの接続手順

 SSMSのインストールが完了した後、SSMSを起動すると[サーバへの接続]ダイアログが表示されるので、以下の画面のように各パラメータを入力する。

SQL Azure Databaseへの接続の設定
SQL Azure Databaseへ接続するための各パラメータを入力する。
  [サーバ名]に「<サーバ名>.database.windows.net」と入力する。
  [認証]から「SQL Server 認証」を選択する。
  [ログイン名]に管理ユーザー名を入力する。
  [パスワード]にパスワードを入力する。

 入力するサーバ名と管理ユーザー名の確認は、WebブラウザでSQL Azureポータルにアクセスし、プロジェクトの一覧から対象のプロジェクトを選択すると表示されるSQL Azure Databaseのサーバ管理画面から確認できる。

 以下の画面は、サーバ管理画面に表示される項目とSQL Azure Databaseへの接続に必要なパラメータとの対応を示したものである。

SQL Azure Databaseのサーバ管理画面
上の「SQL Azure Databaseへの接続の設定」で必要なパラメータと対応する項目を示している。
  サーバ名。
  管理ユーザー名。

次に、以下の画面のように、[接続プロパティ]タブの[暗号化接続]チェックボックスにチェックする。*1

*1 筆者がSQL Azureの暗号化について調べたところ、MSDNのフォーラムや、SQL Azure Team Blogには、SQL Azure接続時は強制的に暗号化通信が有効になるという説明を行っている個所があった。
 しかし、「SSMSのリファレンス(英語)」にはSQL Azure Databaseを経由してSQL Serverのデータベース・エンジンのインスタンスにアクセスする場合は、SQL Server認証を使用し、[接続プロパティ]タブの[暗号化接続]チェックボックスにチェックを入れる必要があると記述されている。ほかにも、MSDNマガジン2009年8月号の「Azure のサービス プラットフォームのリレーショナル データベース」や、MSDNマガジン2010年1月号の「Crypto Services and Data Security in Windows Azure(英語)」には暗号化通信の設定を行う必要があるとの記述があった。さらに、2009年12月ごろから、SQL Azure ポータルのサーバ管理画面で取得する接続文字列に、"Encrypt=True"(暗号化接続を有効にする)というパラメータが追加されている。
 これらのことから、本稿ではSSMS、ADO.NET、SQLCMD(後述)でのSQL Azureへの接続は、明示的に暗号化接続を行う設定としている。

 補足になるが、SQL Azure接続時は強制的に暗号化通信が有効になる。ただし、SSMSのリファレンス(英語)には、SQL Azure Databaseを経由してSQL Serverのデータベース・エンジンのインスタンスにアクセスする場合は、SQL Server認証を使用し、[接続プロパティ]タブの[暗号化接続]チェックボックスにチェックする必要があると記述されている。念のため、以下の画面のように暗号化接続を明示的に有効にしておいた方がよいだろう。

暗号化接続の設定

 最後に、[接続]ボタンをクリックしてSQL Azure Databaseに接続する。接続に成功すると、以下の画面のように、[オブジェクト エクスプローラ]にSQL Azure Databaseのオブジェクトがツリー上に表示される。

オブジェクト・エクスプローラに表示されるSQL Azure Databaseのオブジェクト

SSMSを使用したSQL Azure Databaseの操作

 それではさっそく、実際にSSMSでSQL Azure Databaseを操作してみよう。ここではデータベースの作成、テーブルの作成、テーブルへのレコードの挿入/参照といった操作を通して、SQL Azure Databaseの基本的な操作方法を説明する。

 まず、データベースを作成する。ここではデータベース名を「TestDB」とする。なお、データベースの作成はSQL Azure Databaseのサーバ管理画面から行うことも可能だが、本稿での手順の説明は割愛する。

 新しいデータベースを作成するには、SSMSのツールバーの[新しいクエリ]をクリックし、クエリ・エディタを表示する。

新しいクエリの作成

 表示したクエリ・エディタに以下のクエリ文を入力する*2

CREATE DATABASE TestDB (MaxSize = 1GB)
GO
データベースの作成文
データベースの最大サイズを指定する、「(MaxSize = 1GB)」の指定はオプションで、既定値は1GB。ほかに10GBが指定可能。

*2 本来であれば[オブジェクト エクスプローラ]の[データベース]を右クリックして[データベースの作成]を選択したいところだが、現在のCTP版のSSMSでは、オブジェクトの作成や変更などはSQL文のテンプレートを編集して実行するという形式となっている。そのため、GUIから直接これらの操作を行うことができない。さらに、自動で作成されるテンプレートの構文にはSQL Azure Databaseでサポートされないものが含まれており、実際には手動で入力する必要がある。残念だが、このあたりはCTP版と割り切って今後の対応に期待したいところだ。

 実行には[実行]ボタンをクリックするか、[F5]キーを押す。実行後、[オブジェクト エクスプローラ]の表示を更新して、データベースが作成されていることが確認できる。

作成されたTestDBデータベース

 次にデータベース内にテーブルを作成する。ここではテーブル名は「T1」とする。[オブジェクト エクスプローラ]で先ほど作成した[TestDB]を選択して、[新しいクエリ]をクリックし、以下のCREATE TABLE文を入力する。

CREATE TABLE T1(Col1 INT PRIMARY KEY, Col2 NVARCHAR(20));
GO
テーブルの作成文

 実行するには、[実行]ボタンをクリックするか、[F5]キーを押してクエリを実行する。実行後、[オブジェクト エクスプローラ]の表示を更新してテーブルが作成されていることが確認できる。

作成されたT1テーブル

 次に、テーブルへのレコードの挿入と参照を行う。再度[新しいクエリ]をクリックし、以下のINSERT文とSELECT文を入力する。

INSERT INTO T1 (Col1, Col2)
  VALUES (1, 'string 1'), (2, 'string 2'), (3, N'文字列 3');
SELECT * FROM T1;
GO
コードの挿入と参照文
3番目のレコードは日本語が使用できることを確認するためのものである。

 [実行]ボタンをクリックするか、[F5]キーを押してクエリを実行する。実行後、その結果が[結果]ウィンドウに返されればOKだ。

T1テーブルに挿入したレコードの表示

 以上でSSMSを使用したSQL Azure Databaseの操作方法の説明を完了する。ここでは割愛したが、当然UPDATE文やDELETE文、ストアド・プロシージャの実行も可能なので確認してみてほしい。

 ここまでSSMSを使用したSQL Azure Databaseの操作方法を説明してきたが、最も基本的なSQLCMDユーティリティによる、コマンド・プロンプトからのSQL Azure Databaseの操作も可能である。以下にその手順を説明する。

 コマンド・プロンプトを開き、以下の書式のコマンドを各パラメータで置き換えたものを入力すればSQL Azure Databaseに接続され、あとは従来のSQLCMDと同様に操作ができる。

C:\>sqlcmd -U <管理ユーザー名>@<サーバ名> -P <パスワード> -S <サーバ名>.database.windows.net -d <データベース名> -N
SQL Azure Databaseへの接続コマンド

 SQL Azure Databaseに対応したSQLCMDユーティリティの詳細は「sqlcmd ユーティリティの使用(該当部分は英語)」を参照してほしい。

 また、SQL Azure DatabaseとBCPユーティリティやSQL Server Integration Services(以下SSIS)との連携も可能だ。

 BCPは「Bulk Copy Program(一括コピー・プログラム)」の略であり、BCPユーティリティはその名のとおり、データベースの大量のレコードを一括で効率よくインポート、またはエクスポートするユーティリティである。

 SSISはデータ統合サービスで、いわゆるETLツールの機能である「Extract(データの抽出)」「Transform(データの変換)」「Load(データのロード)」機能を含む。SSISのデータ・ソースとしてSQL Azure Databaseを使用できるので、SQL Azure Databaseに対して先に述べたETL操作が行える。また、BCP機能と連携した一括処理にも対応している(詳しくはSSMS Team Blog(英語)を参考されたい)。

 BCPユーティリティやSSISをSQL Azure Databaseに対して用いることにより、データの移行やバックアップを行うことができる。本稿では割愛するが、「BCPを使用したデータのインポートとエクスポート(英語)」と「SSISを使用したデータのインポートとエクスポート(英語)」にてBCPユーティリティとSSISを使用したSQL Azure Databaseのデータのインポートとエクスポート方法が解説されているので適宜参照してほしい。

 次に、SQL Azure Databaseを使用したデータベース・アプリケーションの開発手法を説明する。


 INDEX
  Windows Azure Platform速習シリーズ:SQL Azure(前編) 
  SQL Azureの機能と制約を理解する
    1.SQL Azureの概要と特徴/SQL Azure Databaseの制約
    2.SQL Azure Databaseに今後追加される機能の予定/料金体系とSLA
 
  Windows Azure Platform速習シリーズ:SQL Azure(後編)
  SQL Azureを実際に活用する
    1.SQL Azureの契約とSQL Azure Databaseの準備
  2.SQL Server Management StudioによるSQL Azure Databaseの操作
    3.SQL Azure Databaseの開発手法

インデックス・ページヘ  「Windows Azure Platform速習シリーズ」
Insider.NET フォーラム 新着記事
  • 第2回 簡潔なコーディングのために (2017/7/26)
     ラムダ式で記述できるメンバの増加、throw式、out変数、タプルなど、C# 7には以前よりもコードを簡潔に記述できるような機能が導入されている
  • 第1回 Visual Studio Codeデバッグの基礎知識 (2017/7/21)
     Node.jsプログラムをデバッグしながら、Visual Studio Codeに統合されているデバッグ機能の基本の「キ」をマスターしよう
  • 第1回 明瞭なコーディングのために (2017/7/19)
     C# 7で追加された新機能の中から、「数値リテラル構文の改善」と「ローカル関数」を紹介する。これらは分かりやすいコードを記述するのに使える
  • Presentation Translator (2017/7/18)
     Presentation TranslatorはPowerPoint用のアドイン。プレゼンテーション時の字幕の付加や、多言語での質疑応答、スライドの翻訳を行える
@ITメールマガジン 新着情報やスタッフのコラムがメールで届きます(無料)

キャリアアップ

.NET未来展望台

未来展望台コーナースポンサーからのお知らせ


- PR -
- PR -
ソリューションFLASH

「ITmedia マーケティング」新着記事

トランプ氏圧勝で気になる「TikTok禁止法」の行方
米大統領選で共和党のトランプ前大統領が勝利した。これにより、TikTokの米国での将来は...

インバウンド消費を左右する在日中国人の影響力
アライドアーキテクツは、独自に構築した在日中国人コミュニティーを対象に、在日中国人...

SEOは総合格闘技である――「SEOおたく」が語る普遍のマインド
SEOの最新情報を発信する「SEOおたく」の中の人として知られる著者が、SEO担当者が持つべ...