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

適用対象:SQL ServerAzure SQL DatabaseAzure SQL Managed Instance

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

はじめに

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

制限事項と制約事項

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

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

アクセス許可

データベース エンジンのインスタンスに DAC を登録するには、少なくとも ALTER ANY サインインとデータベース スコープ VIEW DEFINITION のアクセス許可、、および dbcreator 固定サーバー ロールのメンバーシップに対する sys.sql_expression_dependenciesSELECT アクセス許可が必要です。 sysadmin 固定サーバー ロールのメンバーまたは sa という組み込みの SQL Server システム管理者アカウントも DAC を登録できます。 SQL Databaseにログインを含まない DAC を登録するには、dbmanager ロールまたは serveradmin ロールのメンバーシップが必要です。 SQL Databaseにログインを含む 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()

関連項目