次の方法で共有


データベースを DAC として登録する方法

データ層アプリケーションの登録ウィザードまたは Windows PowerShell スクリプトを使用して、既存のデータベース内のオブジェクトを表すデータ層アプリケーション (DAC) 定義を作成し、その DAC 定義を msdb システム データベース (SQL Azure では master データベース) に登録します。

作業を開始する準備

SQL Azure データベース または SQL Server 2005 Service Pack 4 (SP4) 以降のデータベースから DAC を登録できます。 データベース エンジンのマネージ インスタンスの場合は、SQL Server ユーティリティ コレクション セットをこのインスタンスからユーティリティ コントロール ポイントへ次に送信するときに、登録した DAC が SQL Server ユーティリティに組み込まれます。 その後、DAC は、Management Studio のユーティリティ エクスプローラー[配置済みのデータ層アプリケーション] ノードに表示され、[配置済みのデータ層アプリケーション] 詳細ページで報告されます。

    DAC をデータベース エンジンのインスタンスに登録するには、少なくとも ALTER ANY LOGIN 権限とデータベース スコープの VIEW DEFINITION 権限**、sys.sql_expression_dependencies** に対する SELECT 権限、および dbcreator 固定サーバー ロールのメンバーシップが必要です。 sysadmin 固定サーバー ロールのメンバーまたは sa という組み込みの SQL Server システム管理者アカウントも DAC を登録できます。 SQL Azure へのログインが含まれない DAC を登録するには、dbmanager ロールまたは serveradmin ロールのメンバーシップが必要です。 SQL Azure へのログインが含まれる DAC を登録するには、loginmanager ロールまたは serveradmin ロールのメンバーシップが必要です。

制限事項

DAC は、SQL Azure または SQL Server 2005 SP4 以降でのみ登録できます。 DAC が既にデータベースに登録されている場合は、DAC の登録を実行できません。 たとえば、DAC を配置してデータベースを作成した場合、データ層アプリケーションの登録ウィザードを実行できません。

DAC でサポートされていないオブジェクトがデータベースに含まれている場合は、DAC を登録できません。 DAC でサポートされるオブジェクトの種類の詳細については、「SQL Server オブジェクトとバージョンの DAC サポート」を参照してください。

PowerShell による DAC の登録

次のコードを含む RegisterDAC.ps1 ファイルを作成します。

  1. SMO サーバー オブジェクトを作成し、DAC を抽出するデータベースが含まれているインスタンスにそのオブジェクトを設定するためのコードを追加します。 この例では、サーバー オブジェクトをローカル コンピューター上の既定のインスタンスに設定しています。

    ## Set a SMO Server object to the default instance on the local computer.
    CD SQLSERVER:\SQL\localhost\DEFAULT
    $srv = get-item .
    
  2. データベースを指定するためのコードを追加します。 この例では、MyDB というデータベースを指定しています。

    ## Specify the database to register as a DAC.
    $dbname = "MyDB"
    
  3. DAC のメタデータを指定するためのコードを追加します。 この例では、DAC 名、バージョン、および説明を指定しています。

    ## Specify the DAC metadata.
    $applicationname = "MyApplication"
    $version = "1.0.0.0"
    $description = "This DAC defines the database used by my application."
    
  4. 上で指定された情報を使用して Register メソッドを実行するためのコードを追加します。

    ## Register the DAC.
    $registerunit = New-Object Microsoft.SqlServer.Management.Dac.DacExtractionUnit($srv, $dbname, $applicationname, $version)
    $registerunit.Description = $description
    $registerunit.Register()
    

SQL Server PowerShell スナップインを読み込んだ PowerShell セッションから、または sqlps コマンド プロンプト ユーティリティを使用して、RegisterDAC.ps1 を実行します。

データ層アプリケーションの登録ウィザードの使用

Management Studio から、次の方法でデータ層アプリケーションの登録ウィザードを開始できます。

  • オブジェクト エクスプローラーで、データベース ノードを右クリックし、[タスク] をポイントして [データ層アプリケーションの登録] をクリックします。

オブジェクト エクスプローラーで選択したノードに該当するデータベース内のオブジェクトを表す DAC 定義が作成されます。 DAC 定義は、msdb システム データベース (SQL Azure では master) に格納されます。 DAC の説明とデータベースを組み合わたものが DAC インスタンスになります。次のユーティリティ コレクション セットがユーティリティ コントロール ポイントに送信されると、DAC インスタンスに関する情報が SQL Server ユーティリティにアップロードされます。 これらの情報は、ユーティリティ エクスプローラーの [配置済みのデータ層アプリケーション] ノードで確認できます。

次の一覧にあるリンクをクリックすると、ウィザードのページの詳細に移動できます。

  • [説明] ページ

  • [プロパティの設定] ページ

  • [検証と概要] ページ

  • [DAC の登録] ページ

[説明] ページ

このページには、データ層アプリケーションの登録手順が表示されます。

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

[次へ >] : [プロパティの設定] ページに進みます。

[キャンセル] : DAC を登録せずにウィザードを終了します。

[プロパティの設定] ページ

このページでは、アプリケーション名やバージョンなど DAC レベルのプロパティを指定します。

[アプリケーション名] : DAC 定義を識別するための名前。このフィールドには、選択したデータベースの名前が自動的に入力されます。

[バージョン] : DAC のバージョンを表す数値。 DAC のバージョンは、開発者が操作している DAC のバージョンを特定するために Visual Studio で使用します。 DAC を配置すると、バージョンは msdb データベースに格納され、後で SQL Server Management Studio の [データ層アプリケーション] ノードの下に表示できます。

[説明] : 省略可。 この DAC の目的についての説明。 DAC を配置すると、説明は msdb データベースに格納され、後で Management Studio の [データ層アプリケーション] ノードの下に表示できます。

[< 戻る] : [説明] ページに戻ります。

[次へ >] : データベースのオブジェクトから DAC を作成できるかどうかを検証し、その結果を [検証と概要] ページに表示します。

[キャンセル] : DAC を登録せずにウィザードを終了します。

[検証と概要] ページ

このページでは、DAC の登録時にウィザードが行うアクションを確認します。 データベース内のオブジェクトから DAC を作成できるかどうかを検証する際、次の 3 つの処理が順番に実行されます。

オブジェクトの取得

[データベース オブジェクトとサーバー オブジェクトを取得しています。] : データベースおよびデータベース エンジンのインスタンスから必要なすべてのオブジェクトを取得する間、進行状況バーが表示されます。

[< 戻る] : [プロパティの設定] ページに戻り、現在の設定を変更できます。

[次へ >] : DAC が登録され、[DAC の登録] ページが表示されます。

[キャンセル] : DAC を登録せずにウィザードを終了します。

オブジェクトの検証

**[SchemaName.ObjectName. を確認しています] : 取得したオブジェクトの依存関係を検証し、それらすべてのオブジェクトが DAC に対して有効かどうかを確認する間、進行状況バーが表示されます。 SchemaName.**ObjectName は、現在検証されているオブジェクトを示します。

[< 戻る] : [プロパティの設定] ページに戻り、現在の設定を変更できます。

[次へ >] : DAC が登録され、[DAC の登録] ページが表示されます。

[キャンセル] : DAC を登録せずにウィザードを終了します。

概要

[次の設定を使用して DAC を登録します。] : DAC に追加されるプロパティとオブジェクトのレポートが表示されます。

[レポートの保存] : 検証レポートのコピーを HTML ファイルに保存します。 既定のフォルダーは、Windows アカウントの Documents フォルダーにある SQL Server Management Studio\DAC Packages フォルダーです。

[< 戻る] : [プロパティの設定] ページに戻り、現在の設定を変更できます。

[次へ >] : DAC が登録され、[DAC の登録] ページが表示されます。

[キャンセル] : DAC を登録せずにウィザードを終了します。

[DAC の登録] ページ

このページには、登録の成功または失敗が表示されます。

[DAC の登録] : DAC を登録するために行った各アクションの成功または失敗が表示されます。 内容を確認して、各アクションの成功または失敗を判断します。 エラーが発生したアクションには、[結果] 列にリンクが表示されます。 そのアクションのエラーのレポートを表示するには、リンクをクリックします。

[レポートの保存] : 登録レポートを HTML ファイルに保存します。 ファイルには、アクションで発生したすべてのエラーを含む、各アクションのステータスが報告されます。 既定のフォルダーは、Windows アカウントの Documents フォルダーにある SQL Server Management Studio\DAC Packages フォルダーです。 ファイル名の形式は、<DACPackageName>_RegisterDACReport_yyyymmdd.html です。ここで、<DACPackageName> は、配置しているパッケージの名前、yyyy は現在の年、mm は現在の月、dd は現在の日です。

[完了] : ウィザードを終了します。

変更履歴

変更内容

PowerShell の使用についてのセクションを追加しました。