次の方法で共有


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

適用対象: SQL Server Azure SQL データベース Azure SQL Managed Instance

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

始める前に

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

制限事項と制約事項

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

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

アクセス許可

DAC をデータベース エンジンのインスタンスに登録するには、少なくとも ALTER ANY サインイン権限とデータベース スコープの VIEW DEFINITION 権限、sys.sql_expression_dependencies に対する SELECT 権限、および dbcreator 固定サーバー ロールのメンバーシップが必要です。 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()

関連項目