次の方法で共有


データベースから DACPAC を抽出する

適用対象:SQL ServerAzure SQL DatabaseAzure SQL Managed InstanceMicrosoft Fabric 内の SQL データベース

抽出プロセスでは、データベース オブジェクトとその関連するインスタンス レベル要素の定義を含む DAC パッケージ ファイル (.dacpac) が作成されます。 たとえば、 .dacpac ファイルには、データベース テーブル、ストアド プロシージャ、ビュー、およびユーザーと、データベース ユーザーにマップされるログインが含まれます。 .dacpac ファイルを使用して、SQL Server または Azure SQL Database の別のインスタンスにデータベースをデプロイしたり、データベースを現在のインスタンスにデータ層アプリケーション (DAC) として登録したりできます。

.dacpacを抽出するためのオプションは次のとおりです。

  1. SQL Server Management Studio (SSMS) の データ層アプリケーションの抽出 ウィザード
  2. SQL Server データ ツール
  3. SqlPackage コマンド ライン ユーティリティ

権限

.dacpacを抽出するには、少なくともALTER ANY LOGINとデータベース スコープVIEW DEFINITIONアクセス許可と、sys.sql_expression_dependenciesに対するSELECTアクセス許可が必要です。 database_owner固定データベース ロールのメンバーでもある securityadmin 固定サーバー ロールのメンバーは、 .dacpacを抽出する資格があります。 sysadmin 固定サーバー ロールのメンバーまたは sa という組み込みの SQL Server システム管理者アカウントも .dacpac を抽出できます。

データ層アプリケーションの抽出ウィザードを使用する

ウィザードを使用して DAC を抽出するには

  1. オブジェクト エクスプローラーで.dacpacの抽出元となるデータベースを含むインスタンスのノードを展開します。
  2. データベース ノードを展開します。
  3. .dacpacを抽出するデータベースのノードを右クリックし、[タスク] をポイントして、[データ層アプリケーションの抽出] を選択します。
  4. ウィザードのダイアログを完了します。
    1. 概要ページ
    2. データ選択ページ
    3. [プロパティの設定] ページ
    4. [検証と概要] ページ
    5. パッケージのビルドページ

ウィザードの概要ページ

このページでは、データ層アプリケーションを抽出する手順について説明します。

このページをもう一度表示しないでください。 - ページが今後表示されないようにするには、チェック ボックスをオンにします。

次の > - [ メソッドの選択 ] ページに進みます。

キャンセル - データベースからデータ層アプリケーションを抽出せずにウィザードを終了します。

[データの選択] ページ

データ層アプリケーション (DAC) パッケージ ファイルに含める参照データを選択します。 DAC パッケージへのデータの含め方は省略可能です。 .dacpacには、サポートされているすべてのデータベース オブジェクトと、データベースに関連するインスタンス オブジェクトのスキーマが含まれます。

DAC パッケージ ファイルには、最大 10 MB の参照データを含めることができます。 ただし、DAC に含めるテーブルには、 imagevarchar(max) などのバイナリ ラージ オブジェクト (BLOB) データ型が含まれていない場合があります。 別のデータベースに転送するために大量のデータを抽出するには、SQL Server Integration Services、一括コピー ユーティリティ、またはその他の多くのデータ移行手法のいずれかを使用します。

データベース テーブル - DAC パッケージに含めるデータを含むデータベース テーブルの横にあるチェック ボックスをオンにします。 10,000 行以下の最大 10 個のテーブルを選択できます。

プロパティ設定ページ

ウィザードのこのページを使用して、データ層アプリケーション (DAC) について説明します。 これらのプロパティは、DAC を識別し、他の DAC と区別するために使用されます。

名前 - この名前は DAC を識別します。 DAC パッケージ ファイルの名前とは異なる場合があり、アプリケーションを記述する必要があります。 たとえば、データベースが財務アプリケーションに使用されている場合は、DAC Finance という名前を付ける必要があります。

Version (use xx.xx.xx.xx, where x is a number) - DAC のバージョンを識別する数値。 DAC バージョンは、開発者が作業している DAC のバージョンを識別するために Visual Studio で使用されます。 .dacpacが展開されると、バージョンは msdb データベースに格納され、後で SQL Server Management Studio の [データ層アプリケーション] ノードで表示できます。

説明: - 省略可能。 DAC について説明します。 .dacpacが展開されると、説明は msdb データベースに格納され、後で Management Studio の [データ層アプリケーション] ノードで表示できます。

DAC パッケージ ファイル (ファイル名に .dacpac 拡張子を含む): - DAC を .dacpac 拡張子を持つ DAC パッケージ ファイルに保存します。 [ 参照 ] ボタンを選択して、ファイルの名前と場所を指定します。

[既存のファイルを上書き する] - DAC パッケージ ファイルが同じ名前で既に存在する場合は、このチェック ボックスをオンにします。

検証と概要ページ

このページでは、すべてのデータベース オブジェクトがデータ層アプリケーション (DAC) でサポートされていることを確認します。 また、データベース オブジェクト間の依存関係をチェックして、DAC に正常に含めることができるオブジェクトのセットを決定します。 その後、検証レポートが表示され、このウィザードで選択したオプションが要約されます。 オプションを変更するには、 [前へ] を選択します。 DAC の抽出を開始するには、[ 次へ] を選択します。

DAC で 1 つ以上のオブジェクトがサポートされていない場合は、[ 次へ ] ボタンが無効になり、抽出プロセスが続行されない可能性があります。 このような場合は、サポートされていないオブジェクトを削除してから、このウィザードをもう一度実行することをお勧めします。

概要 - 選択したオプションの概要が DAC プロパティの下に一覧表示されます。 検証の結果は、 DAC オブジェクトの下に一覧表示されます。 検証の結果には、次の 3 種類があります。

  • DAC に正常に含まれるオブジェクト: これらのオブジェクトとその依存関係はサポートされており、DAC に正常に含めることができます。

  • 警告付きの DAC に含まれるオブジェクト: これらのオブジェクトはサポートされていますが、DAC でサポートされていない他のオブジェクトによって異なります。

  • DAC に含まれていないオブジェクト: これらのオブジェクトはサポートされていないため、DAC を正常に抽出する前にデータベースから削除する必要があります。

検証プロセスでは、複数のレベルの依存関係がチェックされます。 たとえば、ストアド プロシージャがサポートされていない CLR データ型を使用するテーブルに依存している場合、ストアド プロシージャは DAC に含まれるオブジェクトの下に警告と共に一覧表示されます。

DAC で 1 つ以上のオブジェクトがサポートされていない場合、[ 次へ ] ボタンは無効になり、抽出プロセスは続行されません。 このような場合は、サポートされていないオブジェクトを削除してから、このウィザードをもう一度実行することをお勧めします。

レポートの保存 - 概要の [DAC オブジェクト] ノードのすべてのオブジェクトを一覧表示する HTML ベースのファイルを保存できます。 このレポートは、データベース オブジェクトの一部が DAC でサポートされていない場合に役立ちます。 DAC を再度抽出する前に、レポートを使用して、サポートされていないオブジェクトを変更または削除します。

[パッケージのビルド] ページ

このページを使用して、データ層アプリケーション (DAC) を抽出するウィザードの進行状況を監視します。

アクション - DAC パッケージ ファイルの作成と保存 アクション中に、ウィザードによって SQL Server データベースから DAC が抽出されます。 次に、DAC パッケージがメモリ内に作成され、指定した場所に保存されます。 [結果] 列のリンクを選択して、対応するステップの結果を確認します。

[レポートの保存] - 選択すると、ウィザードの進行状況の結果がファイルに保存されます。

[完了] - 処理が完了した後、またはエラーが発生した場合にウィザードを閉じる場合に選択します。