SQL Azure Team Blog

Creating Tables with Project Houston – SQL Azure Team Blogの内容を簡単に紹介する投稿です。

マイクロソフトのプロジェクト コード名 ”Houston” 入門シリーズ(Part1)2つ目の投稿です。パート1では、基本的なログインと遷移について紹介しました。このエントリーでは、Houstonでテーブルデザイナーの使用方法について紹介します。マイクロソフトのプロジェクト コード名 “Houston”は、SQL Azure用の手軽なデータベース管理ツールで、CTP(コミュニティー テクノロジー プレビュー)版です。Houstonは、権限管理、クエリの実行、データベーススキーマのデザインと編集、テーブルデータの編集などの基本的なデータベース管理ラスクをすることができます。

今のところ、SQL Server Management Studio 2008 R2はSQL Azure用のテーブルデザイナーを提供していません。SQL Server Management Studio 2008 R2でテーブルを作成するには、CREATE TABLE文を実行することになります。プロジェクト Houstonはwebベースのテーブルデザイナーを提供しています。でもHoustonはCTP版ではあるが。。。

Houstonを使用するには、Microsoft Project Code-Named “Houston” CTPにアクセスします。(SQL Azure ラボでは、CTP版、もしくは実験的プロジェクトを扱います。)

 

テーブル構造の編集

 

ログインすると、左上にデータベース ナビゲーションバーが表示されます。

clip_image001

新しいテーブルの作成:

  1. “New Table”を選択します。
  2. ナビゲーションバーがテーブル ナビゲーションに変わります。

     

    clip_image002

  3. メインウィンドーにテーブルデザイナーモードで、新しいテーブルが表示されます。

    clip_image004

    タイトルの前にある星は、新しいテーブルで保存されていないことを示します。Houstonは、新しいテーブルに自動的に3つのカラムを追加します。必要に応じて、名前を変更したり、データ型を変更することができます。追加された新しいカラムを消したい場合は、名前を選択し、リボンバーのColumnsのDeleteボタンを選択します。

カラムを追加したい場合は、 +Columボタンを選択するかリボンバーにあるColumnsのNewボタンを選択します。

Houstonで使用している単語を、SQL Serverのツールで使用されている単語に置き換えられるように説明します。

  • Is Required? nullを登録することはできません。必ずデータを登録する必要があるカラムであることを意味します。
  • Is Primary Key? カラムが主キーであることを示し、クラスター化インデックスが作成されます。
  • Is Identity? 自動インクリメント列です。通常、主キーと連携します。bigint, int, decimal, float, smallint, tinyint データ型のみで提供されます。

 

保存

テーブルデザインのSQL Azureへのcommit準備ができたら、リボンバーの Save ボタンで保存する必要があります。

clip_image005

既知の幾つかの制限があります。複数行の主キーの作成は失敗します。テーブル名やカラム名を変更し、保存しようとすると失敗することがあります。

フィードバック

プロジェクトHoustonは通常のMicrosoftサポートサービスのサポートを受けることはできません。コミュニティベースのサポートは、SQL Azure Labs Support Forumに質問を投稿することができます。プロダクトチームが回答します。

 

バグの登録の仕方

  1. フィードバック | Microsoft Connectに移動する。
  2. すでにフィードバックが報告されていないか検索し確認してください。
  3. まだ報告されていない場合は、ページの一番下に移動し、オレンジの「Submit Feedback」をクリックしてください。
  4. 「Select Feedback」上の、「SQL Server Suggestion Form」をクリックします。
  5. バグフォームで、「Category」=Tools(Houston)を選択します。
  6. 質問を入力します。
  7. マイクロソフトに送信するため「Submit」をクリックします。

フィードバックの仕方

  1. フィードバック | Microsoft Connectに移動する。
  2. すでに問題が報告されていないか検索し確認してください。
  3. まだ報告されていない場合は、ページの一番下に移動し、オレンジの「Submit Feedback」をクリックしてください。
  4. 「Select Feedback」上の、「SQL Server Bug Form」をクリックします。
  5. バグフォームで、「Version」=Houston build CTP 1 – 10.50.9610.34を選択します。
  6. バグフォームで、「Category」=Tools(Houston)を選択します。
  7. 質問を入力します。
  8. マイクロソフトに送信するため「Submit」をクリックします。

SQL Azure Team Blog

この投稿は、Securing Your Connection String in Windows Azure: Part 1からSecuring Your Connection String in Windows Azure: Part 4までの全4回の記事を意訳したものです。一部、表現を変えてるところがありオリジナルと異なる箇所があります。

SQL Azure環境をセキュアに取り扱おうには、SQL Azureへの接続文字列をセキュアに扱う必要があります。Windows AzureでSQL Azureに接続するアプリケーションを動作させるには、Windows Azureのコードに接続文字列を組み込まなければなりません。しかし、Windows Azureのパッケージを作成する開発者に本番環境のデータベースのパスワードを教えたく無い場合があります。
この投稿では、Windows Azure環境で、SQL Azureへの接続文字列をセキュアに扱う方法について説明します。

接続文字列は、ログインIDとパスワードを含んでおり、通常は平文の文字列です。この投稿の目的は、Windows Azureからデータベースに接続するアプリケーションで、プログラムは接続文字列を認識でき、開発者には読めないように暗号化することです。暗号化した接続文字列をアプリケーションが解読できるようにキーを予めWindows Azureに持たせる必要があります。かつ開発者には知ることができないようにする必要があります。

SQL Azure Team Blog

Video: SQL Server to SQL Azure Synchronization using Sync Framework 2.1 – SQL Azure Team Blogを簡単に翻訳したエントリーです。

Liam Cavanaghが、SQL Azure Data Syncを拡張する方法Channel 9のWebcastに投稿しています。
SQL ServerとSQL Azure間の双方向の同期を取ることができる独自の同期アプリケーションを作成することができます。Visual Studio とSync Framework 2.1を使用して、同期プロセスに独自のビジネスロジックや独自の衝突回避ロジックを追加することができます。

上記動画を書き起こしてみた。

蒼の王座 » Sync Framework 2.1 を使用してSQL ServerとSQL Azureを同期させてみた

SQL Azure Team Blog

Microsoft Project Code-Named “Houston” CTP 1 (August 2010 Update) – SQL Azure Team Blog – Site Home – MSDN Blogsをざっくりと紹介したエントリーです。

マイクロソフトのプロジェクトコード名”Houston"はSQL Azure用の手軽に使用できるデータベース管理ツールです。

今回の更新を含むHoustonの大きな特徴は、以下の通りです。

  • オブジェクト検索機能を含むナビゲーションパネル
  • データベースの基本情報と使用方法とリソースへのリンクを含むインフォメーションキューブ
  • テーブルデザイナーとテーブルデータエディター
  • Viewデザイナー
  • ストアドプロシージャデザイナー
  • T-SQLエディター

8月更新内容

  • プロジェクト”Houston”は、すべてのデータセンターに配置しました。データベースがホストされているデータセンターと同じデータセンターにあるHoustonを使用することを推奨します。
  • データベースツールバーにrefreshボタンで、サーバーから最新のデータベースオブジェクトのプロパティを取得します。
  • ユーザーインターフェイスとパフォーマンスの強化

プロジェクト”Houston”の参考情報

 

下で紹介するビデオチュートリアルとドキュメントで、プロジェクト”Houston"の機能について学ぶことができます。

Link

Description

SQL Azure Labs portal

Access Project “Houston.”

Video – Tables

This video demonstrates how use Project “Houston” to create and modify a table in an existing SQL Server database.

Video Queries

This video describes how use Project “Houston” to create, modify, execute, save, and open a Transact-SQL query.

Video – Views

This video shows how use Project “Houston” to create, select, and modify views.

Video – Stored procedures

This video shows how use Project “Houston” to create, select, and modify stored procedures.

Blog

Use the SQL Azure blog to read about this Project “Houston” release, and to access the Project “Houston” application.

 

既知の問題

 

このリリースの既知の問題は以下の通りです。回避策については、元記事の英文を参照してください。

問題1:ログオンページでTerms of Useダイアログが繰り返し表示される。

問題2:Start Page上のステータスがRead-onlyと表示される。

問題3:Start Pageを一度閉じると、再表示できない。

問題4:データベースのプロパティは、ログオン時の情報が表示され、自動更新されない。

問題5:プロジェクト”Houston"のユーザーインターフェイスが、ブラウザのズーム率100%で無かった場合、表示が崩れる。

問題6:カラム名、テーブル名、ビュー名、ストアドプロシージャー名が長い場合、表示が途切れる。

問題7:テーブルデザイナーやストアドプロシージャーデザイナーのタイプ選択ドロップダウンリストに、新しく作成したエイリアスタイプが表示されない。

問題8:選択できない暗い表示のSaveボタンが、変更した後、フォーカスが当たっていないユーザーインターフェイスを選択するまで、Saveボタンを選択できるように更新されない。

問題9:オブジェクトを読み込んでいる間、ナビゲーションパネルや新しいワークスペースは正常に動作しない。

問題10:ログオン試行中、クエリ実行中にStopボタンを押しても、動作が停止しない。

問題11:矛盾した規定値が入力される。

問題12:矛盾した規定値が表示される。

問題13:テーブルデザイナーで既存の値を変更し、更新しようとするとエラーが発生する。

問題14:テーブルデザイナーで主キーの指定ができない。

問題15:テーブルデザイナーで既存の主キーの設定を変更しようとするとエラーが発生する。

問題16:エディターやビューのGUIでサポートされていないデータ型がある。binary、XML、Unique identifier、timestamp、geography、geometry

問題17:全てのdate型は、mm/dd/yyy hh:mm:ss AM/PMfで表示される。

問題18:スキーマを変更したワークスペースを閉じたとき、保存していない変更が破棄される。

問題19:ユーザーインターフェイスでは、オブジェクトの削除には対応していない。

SQL Azure Team Blog

Backing Up Your SQL Azure Database Using Database Copy – SQL Azure Team Blog – Site Home – MSDN Blogsを簡単に翻訳したエントリーです。

異なるSQL Azureサーバー間でDATABASE COPYを実行した も参照してください。

また記事内に誤りがありますので、コメント欄を参照してください。

SQL Azure Service Update 4のリリースで、SQL Azure上で動作しているデータベースのスナップショットを作成できるようになりました。

本番環境のデータベースを変更する前に簡単にバックアップを作成したり、本番環境のデータベースと同じテストデータベースを作成できるようになりました。

元のデータベースのダウンタイム無しでトランザクション・メカニズムを使用して、バックアップがSQL Azureデータセンターで実行されます。データベースは、同じデータセンター内に新しいデータベースに完全にコピーされます。同じデータセンター内の別のサーバにコピーするか、同じサーバの別のデータベース名にコピーするかを選択することができます。

コピープロセスで作成される新しいデータベースは、コピーが完了した時の時点で元のデータベースとのトランザクション一貫性があります。つまり、スナップショットのタイミングは、コピーを開始した時間では無く、コピーが終了した時間です。

事始め

次のようなT-SQLを使用します。

CREATE DATABASE destination_database_name
    AS COPY OF [source_server_name.]source_database_name

同じサーバーにAdventure Worksをコピーするために、次のようなクエリを実行します。

CREATE DATABASE [AdvetureWorksBackup] AS COPY OF [AdventureWorksLTAZ2008R2]

このコマンドは、コピー先のSQL Azureサーバーのmasterデータベースに接続して実行しなければなりません。

コピーのモニタリング

sys.dm_database_copiesと呼ばれる動的管理ビューを使用することで、データベースのコピー状況をモニタリングすることができます。クエリは次のようなものを使用します。

SELECT *
FROM sys.dm_database_copies

Adventure Worksのコピーの状況は次のように表示されます。

clip_image001

必要な権限

別のSQL Azureサーバーにデータベースをコピーするときは、コピー元のサーバーとコピー先のサーバーに、コマンドを実行するログインとパスワードが同じものが存在していなければなりません。コピー元のサーバーのログインには、db_owner権限が必要で、コピー先のサーバーのログインには、dbmanager権限が必要です。権限についての詳細情報はMSDNのドキュメント(Copying Databases in SQL Azure)を参照してください。

注意点は、コピー先のデータベースとコピー元のデータベースは同じサービスアカウント(Live ID)に所属している必要が無いということです。実際、あなたのデータベースをコピーコマンドを使用して、第三者のサーバーにコピーすることができます。

なぜ他のサーバーにコピーするのですか?

同じサーバーか、別のサーバーにデータベースをコピーした場合、同じデータセンター内で同じリソースを配分することになります。それぞれのサーバーは、同じエンドポイントですが、物理マシンは異なります。このことの詳細は、A Server Is Not a Machineにて説明しています。では、なぜ他のサーバーにコピーするのですか?その理由は2つあります。

  • 新しいデータベースでは、SQL Azureポータルの管理者アカウントを別の物にしたいときです。本番サーバーからテストサーバーにテストサーバーにデータベースをコピーした場合、テスト責任者がテストサーバーにデータベースを作成したり削除したりできるようにします。
  • 新しいデータベースの支払いを、別の支払い用のサービスアカウントに課金されるようにしたい時です。

まとめ

データベースコピーに関する追加情報は、MSDNのドキュメント(Copying Databases in SQL Azure)を参照してください。