データベースを DAC として登録する方法
適用対象:SQL Server
Azure SQL Database
Azure SQL Managed Instance
データ層アプリケーションの登録ウィザードまたはWindows PowerShell スクリプトを使用して、既存のデータベース内のオブジェクトを記述するデータ層アプリケーション (DAC) 定義を作成し、DAC 定義を msdb システム データベース (Azure SQL データベースのマスター) に登録します。
Before you begin:Limitations and Restrictions, Permissions
DAC のアップグレード:データ層アプリケーションの登録ウィザードの使用、 PowerShell の使用
はじめに
登録プロセスでデータベース オブジェクトを定義する 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 LOGIN およびデータベース スコープ VIEW DEFINITION 権限、 sys.sql_expression_dependenciesに対する SELECT 権限、および dbcreator 固定サーバー ロールのメンバーシップが必要です。 sysadmin 固定サーバー ロールのメンバーまたは sa という組み込みの SQL Server システム管理者アカウントも DAC を登録できます。 SQL Databaseにログインを含まない DAC を登録するには、dbmanager ロールまたは serveradmin ロールのメンバーシップが必要です。 SQL Databaseにログインを含む DAC を登録するには、loginmanager ロールまたは serveradmin ロールのメンバーシップが必要です。
データ層アプリケーションの登録ウィザードの使用
ウィザードを使用して DAC を登録するには
オブジェクト エクスプローラーで、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 として登録するには
SMO サーバー オブジェクトを作成し、DAC として登録するデータベースを含んだインスタンスに設定します。
データベースの名前を指定する変数を追加します。
DAC のメタデータ (DAC 名、バージョン、説明など) を指定します。
上記で指定した情報を使用して 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()