DAC を使用したデータベースの配置

データベース エンジンのインスタンスと Windows Azure SQL データベース サーバー間、または 2 つの Windows Azure SQL データベース サーバー間でデータベースを配置するには、SQL Azure へのデータベースの配置ウィザードを使用します。

作業を開始する準備

このウィザードでは、データ層アプリケーション (DAC) の BACPAC アーカイブ ファイルを使用して、データおよびデータベース オブジェクトの定義を配置します。 ウィザードでは、ソース データベースからの DAC エクスポート操作と、配置先への DAC インポート操作を実行します。

データベースのオプションと設定

既定では、配置中に作成されるデータベースには、CREATE DATABASE ステートメントの既定の設定が適用されます。 ただし、データベースの照合順序と互換性レベルはソース データベースの値に設定されます。

TRUSTWORTHY、DB_CHAINING、HONOR_BROKER_PRIORITY などのデータベース オプションは、配置プロセスで調整できません。 ファイル グループの数、ファイルの数やサイズなどの物理プロパティは、配置作業中に変更することはできません。 配置が完了した後で、ALTER DATABASE ステートメント、SQL Server Management Studio、または SQL Server PowerShell を使用して、データベースを調整できます。

制限事項と制約事項

データベース配置ウィザードでサポートされるデータベースの配置は次のとおりです。

  • データベース エンジンのインスタンスから Windows Azure SQL データベース

  • Windows Azure SQL データベースからデータベース エンジンのインスタンス

  • 2 つの Windows Azure SQL データベース サーバー間

データベース エンジンの 2 つのインスタンス間でのデータベースの配置はサポートされません。

ウィザードを使用するには、データベース エンジンのインスタンスで SQL Server 2005 Service Pack 4 (SP4) 以降を実行している必要があります。 データベース エンジンのインスタンス上のデータベースに Windows Azure SQL データベースでサポートされていないオブジェクトが含まれている場合、ウィザードを使用して Windows Azure SQL データベースにデータベースを配置することはできません。 また、Windows Azure SQL データベース上のデータベースに SQL Server 2005 でサポートされていないオブジェクトが含まれている場合、ウィザードを使用して SQL Server 2005 のインスタンスにデータベースを配置することはできません。

セキュリティ

セキュリティを強化するために、SQL Server 認証のログインは、パスワードなしで DAC BACPAC ファイルに格納されます。 BACPAC をインポートすると、ログインはパスワードが生成された無効なログインとして作成されます。 ログインを有効にするには、ALTER ANY LOGIN 権限を持つユーザーとしてログインし、ALTER LOGIN を使用してログインを有効にします。さらに、新しいパスワードを割り当て、そのパスワードを該当ユーザーに通知します。 Windows 認証ログインの場合、ログインのパスワードは SQL Server で管理されていないため、この操作は必要ありません。

権限

ウィザードでは、ソース データベースに対する DAC エクスポート権限が必要となります。 ログインには、ALTER ANY LOGIN 権限とデータベース スコープの VIEW DEFINITION 権限、および sys.sql_expression_dependencies に対する SELECT 権限が少なくとも必要です。 DAC をエクスポートできるのは、DAC をエクスポートするデータベースの database_owner 固定データベース ロールのメンバーでもある、securityadmin 固定サーバー ロールのメンバーです。 sysadmin 固定サーバー ロールのメンバーまたは sa という組み込みの SQL Server システム管理者アカウントも DAC をエクスポートできます。

ウィザードでは、配置先インスタンスまたはサーバーに対する DAC インポート権限が必要となります。 ログインは、sysadmin または serveradmin 固定サーバー ロールのメンバーであるか、dbcreator 固定サーバー ロールに属し、ALTER ANY LOGIN 権限を持っている必要があります。 あらかじめ登録された SQL Server システム管理者アカウント (sa) も DAC をインポートできます。 SQL データベース へのログインが含まれる DAC をインポートするには、loginmanager ロールまたは serveradmin ロールのメンバーシップが必要です。 SQL データベース へのログインが含まれない DAC をインポートするには、dbmanager ロールまたは serveradmin ロールのメンバーシップが必要です。

データベース配置ウィザードの使用

データベース配置ウィザードを使用してデータベースを移行するには

  1. データベースの配置先に接続します。 データベース エンジンのインスタンスまたは Windows Azure SQL データベース サーバーを指定できます。

  2. オブジェクト エクスプローラーで、データベースがあるインスタンスのノードを展開します。

  3. [データベース] ノードを展開します。

  4. 配置するデータベースを右クリックして [タスク] を選択し、[SQL Azure へのデータベースの配置] をクリックします。

  5. ウィザードの各ダイアログを完了します。

    • [説明] ページ

    • 配置の設定

    • 検証

    • [概要] ページ

    • [結果]

[説明] ページ

このページには、データベース配置ウィザードの手順が示されています。

オプション

  • [次回からこのページを表示しない]: 今後 [説明] ページを表示しないようにするには、このチェック ボックスをオンにします。

  • [次へ]: [配置設定] ページに進みます。

  • [キャンセル]: 操作をキャンセルし、ウィザードを閉じます。

[配置設定] ページ

このページを使用して、配置先サーバーと、新しいデータベースの詳細を指定します。

[ローカル ホスト]

  • [サーバー接続]: サーバー接続の詳細を指定し、[接続] をクリックして接続を検証します。

  • [新しいデータベース名]: 新しいデータベースの名前を指定します。

SQL データベース データベースの設定:

  • [SQL データベース のエディション]: SQL データベース のエディションをドロップダウン メニューから選択します。

  • [データベースの最大サイズ (GB)]: データベースの最大サイズをドロップダウン メニューから選択します。

その他の設定:

  • 一時ファイル (BACPAC アーカイブ ファイル) のローカル ディレクトリを指定します。 このファイルは指定した場所に作成され、操作の完了後もそのまま残されます。

[概要] ページ

このページを使用すると、操作の指定ソースとターゲットの設定を確認できます。 指定した設定で配置操作を実行するには、[完了] をクリックします。 配置操作をキャンセルしてウィザードを終了するには、[キャンセル] をクリックします。

[進行状況] ページ

このページには、操作の進行状況を示す進行状況バーが表示されます。 詳細な状態を表示するには、[詳細表示] をクリックします。

[結果] ページ

このページでは、配置操作の成功と失敗が報告され、各アクションの結果が示されます。 エラーが発生したアクションには、[結果] 列にリンクが表示されます。 そのアクションのエラーのレポートを表示するには、リンクをクリックします。

[完了] をクリックして、ウィザードを終了します。

.Net Framework アプリケーションの使用

.Net Framework アプリケーションで DacStore Export() および Import() メソッドを使用してデータベースを配置するには

コード例を参照するには、Codeplex で DAC サンプル アプリケーションをダウンロードしてください。

  1. SMO サーバー オブジェクトを作成し、配置するデータベースがあるインスタンスまたはサーバーに設定します。

  2. ServerConnection オブジェクトを開いて、同じインスタンスに接続します。

  3. Microsoft.SqlServer.Management.Dac.DacStore 型の Export メソッドを使用して、BACPAC ファイルにデータベースをエクスポートします。 エクスポートするデータベースの名前と、BACPAC ファイルの出力先となるフォルダーのパスを指定します。

  4. SMO サーバー オブジェクトを作成し、配置先インスタンスまたはサーバーに設定します。

  5. ServerConnection オブジェクトを開いて、同じインスタンスに接続します。

  6. Microsoft.SqlServer.Management.Dac.DacStore 型の Import メソッドを使用して、BACPAC をインポートします。 エクスポートによって作成された BACPAC ファイルを指定します。

関連項目

概念

データ層アプリケーション

データ層アプリケーションのエクスポート

BACPAC ファイルのインポートによる新しいユーザー データベースの作成