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

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

  • 作業を開始する準備: 制限事項と制約事項、権限

  • DAC のアップグレード: データ層アプリケーションの登録ウィザードの使用、PowerShell の使用

作業を開始する準備

登録プロセスでデータベース オブジェクトを定義する DAC 定義を作成します。 DAC の定義とデータベースを組み合わせたものが DAC インスタンスになります。 データベース エンジンのマネージ インスタンス上で DAC としてデータベースを登録した場合は、SQL Server ユーティリティ コレクション セットをこのインスタンスからユーティリティ コントロール ポイントへ次に送信するときに、登録した DAC が SQL Server ユーティリティに組み込まれます。 その後、DAC は、Management Studio のユーティリティ エクスプローラー[配置済みのデータ層アプリケーション] ノードに表示され、[配置済みのデータ層アプリケーション] 詳細ページで報告されます。

制限事項と制約事項

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

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

[先頭に戻る]

権限

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

[先頭に戻る]

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

ウィザードを使用して DAC を登録するには

  1. オブジェクト エクスプローラーで、DAC として登録するデータベースを含んだインスタンスのノードを展開します。

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

  3. 登録するデータベースを右クリックし、[タスク] をポイントして [データ層アプリケーションとして登録] をクリックします。

  4. ウィザードの各ダイアログの手順を実行します。

    1. [説明] ページ

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

    3. [検証と概要] ページ

    4. [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 を使用した DAC の登録

PowerShell スクリプトから Register() メソッドを使用してデータベースを DAC として登録するには

  1. SMO サーバー オブジェクトを作成し、DAC として登録するデータベースを含んだインスタンスに設定します。

  2. データベースの名前を指定する変数を追加します。

  3. DAC のメタデータ (DAC 名、バージョン、説明など) を指定します。

  4. 上記で指定した情報を使用して Register メソッドを実行します。

[先頭に戻る]

例 (PowerShell)

次の例は、DAC として MyDB というデータベースを登録します。

## Set a SMO Server object to the default instance on the local computer.
CD SQLSERVER:\SQL\localhost\DEFAULT
$srv = get-item .

## Specify the database to register as a DAC.
$dbname = "MyDB"

## Specify the DAC metadata.
$applicationname = "MyApplication"
$version = "1.0.0.0"
$description = "This DAC defines the database used by my application."

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

[先頭に戻る]

関連項目

概念

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