データ層アプリケーションの配置
ウィザードまたは PowerShell スクリプトを使用して、DAC パッケージから データベース エンジン または SQL Database の既存のインスタンスにデータ層アプリケーション (DAC) を配置できます。 配置プロセスでは、DAC 定義を msdb システム データベース (SQL Database の master ) に格納して DAC インスタンスを登録し、データベースを作成し、DAC で定義されているすべてのデータベース オブジェクトをデータベースに設定します。
開始する前に: SQL サーバー ユーティリティ、 Database のオプションと設定、 制限と制限、 Prerequisites、 Security、 Permissions
DAC を配置するには、次を使用します:データ層アプリケーションの配置ウィザードPowerShell
始める前に
同じ DAC パッケージをデータベース エンジンの 1 つのインスタンスに複数回配置できますが、デプロイは一度に 1 つずつ実行する必要があります。 各デプロイに指定される DAC インスタンス名は、 データベース エンジンのインスタンス内で一意である必要があります。
SQL Server ユーティリティ (SQL Server Utility)
データベース エンジンのマネージド インスタンスに DAC を配置した場合、その配置した DAC は、次回ユーティリティ コレクション セットがインスタンスからユーティリティ コントロール ポイントへと送信されるときに SQL Server ユーティリティに組み込まれます。 その後、DAC は Management Studio のユーティリティ エクスプローラーの [配置済みのデータ層アプリケーション] ノードに現れるようになり、[配置済みデータ層アプリケーション] の詳細ページで報告されます。
データベースのオプションと設定
既定では、配置中に作成されたデータベースには、CREATE DATABASE ステートメントによる既定の設定すべてが適用されます。ただし、次の設定は除きます。
データベースの照合順序および互換性レベルは、DAC パッケージで定義された値に設定されます。 SQL Server 開発者ツールでデータベース プロジェクトから構築された DAC パッケージでは、データベース プロジェクトに設定された値が使用されます。 既存のデータベースから抽出されたパッケージでは、元のデータベースの値が使用されます。
一部のデータベース設定 (データベース名やファイル パスなど) は、 [構成の更新] ページで調整できます。 SQL Database にデプロイするときにファイル パスを設定することはできません。
TRUSTWORTHY、DB_CHAINING、HONOR_BROKER_PRIORITY など、データベース オプションによっては、配置作業中の調整はできない場合があります。 ファイル グループの数、ファイルの数やサイズなどの物理プロパティは、配置作業中に変更することはできません。 デプロイが完了すれば、ALTER DATABASE ステートメント、SQL Server Management Studio、または SQL Server PowerShell を使用して、データベースを調整できます。
制限事項と制約事項
DAC は、SQL Database または SQL Server 2005 Service Pack 4 (SP4) 以降を実行しているデータベース エンジンのインスタンスに配置できます。 新しいバージョンを使用して DAC を作成する場合、DAC に SQL Server 2005 でサポートされていないオブジェクトが含まれている可能性があります。 これらの DAC を SQL Server 2005 のインスタンスに展開することはできません。
前提条件
ソースが不明または信頼されていない DAC パッケージは配置しないことをお勧めします。 こうしたパッケージには、意図しない Transact-SQL コードを実行したり、スキーマを変更してエラーを発生したりする、悪意のあるコードが含まれている可能性があります。 パッケージのソースが不明または信頼されていない場合は、使用する前に、DAC をアンパックして、ストアド プロシージャやその他のユーザー定義コードなどのコードもご確認ください。 これらのチェックの実行方法の詳細については、「 Validate a DAC Package」をご覧ください。
セキュリティ
セキュリティを強化するために、SQL Server 認証のログインは、パスワードなしで DAC パッケージに格納されます。 パッケージが配置またはアップグレードされると、ログインは、生成されたパスワードを伴う無効なログインとして作成されます。 ログインを有効にするには、ALTER ANY LOGIN 権限を持つユーザーとしてログインし、ALTER LOGIN を使用してログインを有効にします。さらに、新しいパスワードを割り当て、そのパスワードを該当ユーザーに通知します。 Windows 認証ログインの場合、ログインのパスワードは SQL Server で管理されていないため、この操作は必要ありません。
アクセス許可
DAC を配置できるのは、 sysadmin または serveradmin 固定サーバー ロールのメンバーか、 dbcreator 固定サーバー ロールに存在する ALTER ANY LOGIN 権限を持つログインのみです。 あらかじめ登録されたシステム管理者アカウント sa でも DAC をデプロイできます。 SQL Database へのログインが含まれる DAC をデプロイするには、loginmanager ロールまたは serveradmin ロールのメンバーシップが必要です。 SQL Database へのログインが含まれない DAC をデプロイするには、dbmanager ロールまたは serveradmin ロールのメンバーシップが必要です。
データ層アプリケーションの配置ウィザードの使用
ウィザードを使用して DAC を配置するには
オブジェクト エクスプローラーで、DAC を配置するインスタンスのノードを展開します。
[データベース] ノードを右クリックし、[データ層アプリケーションの配置] をクリックします。
ウィザードの各ダイアログの手順を実行します。
[説明] ページ
このページでは、データ層アプリケーションを配置する手順について説明します。
[次回からこのページを表示しない] : 今後このページを表示しないようにするには、このチェック ボックスをオンにします。
次の > - DAC パッケージの選択 ページに進みます。
[キャンセル]: DAC を配置せずにウィザードを終了します。
[DAC パッケージの選択] ページ
このページでは、配置するデータ層アプリケーションを含む DAC パッケージを指定できます。 このページは、3 つの状態を遷移します。
DAC パッケージの選択
ページの初期状態では、配置する DAC パッケージを選択します。 DAC パッケージは有効な DAC パッケージ ファイルで、拡張子は .dacpac である必要があります。
[DAC パッケージ] : 配置するデータ層アプリケーションを含む DAC パッケージのパスとファイル名を指定します。 ボックスの右にある [参照] をクリックして、DAC パッケージの場所に移動することができます。
[アプリケーション名] : DAC が作成されたとき、またはデータベースから抽出されたときに割り当てられた DAC 名が表示される読み取り専用のボックスです。
[バージョン] : DAC が作成されたとき、またはデータベースから抽出されたときに割り当てられたバージョンが表示される読み取り専用のボックスです。
[説明] : DAC が作成されたとき、またはデータベースから抽出されたときに記述された説明が表示される読み取り専用のボックスです。
< [戻る] : 概要 ページに進みます。
[次へ]> : 選択したファイルが有効な DAC パッケージかどうかが確認され、進捗状況バーが表示されます。
[キャンセル] : DAC を配置せずにウィザードを終了します。
DAC パッケージの検証
選択したファイルが有効な DAC パッケージかどうかが確認され、進捗状況バーが表示されます。 DAC パッケージが検証されると、 [DAC パッケージの選択] ページの最終状態に進み、検証の結果を確認できます。 ファイルが有効な DAC パッケージでない場合は、 [DAC パッケージの選択]が表示されたままになります。 別の有効な DAC パッケージを選択するか、ウィザードを取り消して新しい DAC パッケージを生成してください。
[DAC パッケージの内容を検証しています] : 検証プロセスの現在の状態を示す進捗状況バーです。
<[戻る] : [パッケージの選択] ページの初期状態に戻ります。
[次へ >]>: [パッケージの選択] ページの最終状態に進みます。
[キャンセル] : DAC を配置せずにウィザードを終了します。
[ポリシーの確認] ページ
このページでは、DAC にポリシーが含まれている場合に DAC サーバーの選択ポリシーを評価した結果を確認します。 DAC サーバーの選択ポリシーは、省略可能で、Visual Studio で DAC を作成するときに割り当てられます。 このポリシーでは、サーバーの選択ポリシーのファセットを使用して、データベース エンジンのインスタンスで DAC をホストするために満たす必要がある条件を指定します。
[ポリシー条件の評価結果] : DAC 配置ポリシーの条件が満たされたかどうかを示す読み取り専用のレポートです。 各条件の評価結果が、レポートの各行に表示されます。
サーバーの選択ポリシー (オペレーティング システムのバージョン、言語、名前付きパイプの有効化、プラットフォーム、および TCP の有効化) は、DAC を SQL Database にデプロイする場合は常に false となります。
[ポリシー違反を無視します] : ポリシー条件が満たされていない場合に配置を続行するには、このチェック ボックスを使用します。 すべての条件が満たされていなくても DAC を正常に操作できるようにする場合のみ、このチェック ボックスをオンにしてください。
< 前へ - Select パッケージ ページに戻ります。
次の > - Update 構成 ページに進みます。
[キャンセル] : DAC を配置せずにウィザードを終了します。
[構成の更新] ページ
このページでは、配置された DAC インスタンスと配置によって作成されたデータベースの名前を指定し、データベース オプションを設定します。
[データベース名] : 配置によって作成されるデータベースの名前を指定します。 既定では、DAC の抽出元であるソース データベースの名前です。 この名前は、データベース エンジンのインスタンス内で一意であり、データベース エンジン識別子のルールに従っている必要があります。
データベース名を変更した場合、データ ファイルとログ ファイルの名前も新しいデータベース名に合わせて変更されます。
また、データベース名は、DAC インスタンスの名前としても使用されます。 インスタンス名は、 オブジェクト エクスプローラー の [データ層アプリケーション]ノードまたは ユーティリティ エクスプローラー の [配置済みのデータ層アプリケーション]ノードの下にある、DAC のノードに表示されます。
次のオプションは SQL Database には適用されず、SQL Database へのデプロイ時には表示されません。
[既定のデータベースの場所の使用] : データベースのデータ ファイルおよびログ ファイルをデータベース エンジンのインスタンスの既定の場所に作成するには、このオプションを選択します。 ファイル名は、データベース名を使用して作成されます。
[データベース ファイルの指定] : データ ファイルおよびログ ファイルに別の場所または名前を指定するには、このオプションを選択します。
[データ ファイルのパスと名前] : データ ファイルの完全パスとファイル名を指定します。 このボックスには、既定のパスとファイル名が表示されます。 ボックス内の文字列を編集して既定値を変更するか、[参照] をクリックしてデータ ファイルを配置するフォルダーに移動してください。
[ログ ファイルのパスと名前] : ログ ファイルの完全パスとファイル名を指定します。 このボックスには、既定のパスとファイル名が表示されます。 ボックス内の文字列を編集して既定値を変更するか、 [参照] をクリックしてログ ファイルを配置するフォルダーに移動してください。
<[戻る] : [DAC パッケージの選択] ページに戻ります。
[次へ]> : [概要] ページに進みます。
[キャンセル] : DAC を配置せずにウィザードを終了します。
[概要] ページ
このページでは、DAC の配置時にウィザードが行うアクションを確認します。
[次の設定を使用して DAC を配置します。] : 表示された情報を確認し、実行されるアクションが正しいかどうかを確認します。 このウィンドウには、選択した DAC パッケージと、配置される DAC インスタンス用に選択した名前が表示されます。 また、DAC に関連付けられたデータベースを作成する際に使用される設定も表示されます。
< [前へ - Update 構成 ページに戻り、選択内容を変更します。
次の > - DAC を配置し、結果を Deploy DAC ページに表示します。
[キャンセル] : DAC を配置せずにウィザードを終了します。
[配置] ページ
このページには、配置操作の成功または失敗が表示されます。
[DAC を配置しています] : DAC を配置するために行った各アクションの成功または失敗が表示されます。 内容を確認して、各アクションの成功または失敗を判断します。 エラーが発生したアクションには、 [結果] 列にリンクが表示されます。 そのアクションのエラーのレポートを表示するには、リンクをクリックします。
[レポートの保存] : 配置レポートを HTML ファイルに保存します。 ファイルには、アクションで発生したすべてのエラーを含む、各アクションのステータスが報告されます。 既定のフォルダーは、Windows アカウントの Documents フォルダーにある SQL Server Management Studio\DAC Packages フォルダーです。
[完了] : ウィザードを終了します。
PowerShell の使用
PowerShell スクリプトで Install() メソッドを使用して DAC を配置するには
SMO サーバー オブジェクトを作成し、DAC を配置するインスタンスに設定します。
ServerConnection
オブジェクトを開いて、同じインスタンスに接続します。System.IO.File
を使用して、DAC パッケージ ファイルを読み込みます。add_DacActionStarted
およびadd_DacActionFinished
を使用して、DAC 配置イベントをサブスクライブします。DatabaseDeploymentProperties
を設定します。DacStore.Install
メソッドを使用して DAC を配置します。DAC パッケージ ファイルの読み取りに使用するファイル ストリームを閉じます。
例 (PowerShell)
次の例では、MyApplication.dacpac パッケージから DAC 定義を使用して、MyApplication という名前の DAC をデータベース エンジンの既定のインスタンスに配置します。
## Set a SMO Server object to the default instance on the local computer.
CD SQLSERVER:\SQL\localhost\DEFAULT
$srv = Get-Item .
## Open a Common.ServerConnection to the same instance.
$serverconnection = New-Object Microsoft.SqlServer.Management.Common.ServerConnection($srv.ConnectionContext.SqlConnectionObject)
$serverconnection.Connect()
$dacstore = New-Object Microsoft.SqlServer.Management.Dac.DacStore($serverconnection)
## Load the DAC package file.
$dacpacPath = "C:\MyDACs\MyApplication.dacpac"
$fileStream = [System.IO.File]::Open($dacpacPath,[System.IO.FileMode]::OpenOrCreate)
$dacType = [Microsoft.SqlServer.Management.Dac.DacType]::Load($fileStream)
## Subscribe to the DAC deployment events.
$dacstore.add_DacActionStarted({Write-Host `n`nStarting at $(get-date) :: $_.Description})
$dacstore.add_DacActionFinished({Write-Host Completed at $(get-date) :: $_.Description})
## Deploy the DAC and create the database.
$dacName = "MyApplication"
$evaluateTSPolicy = $true
$deployProperties = New-Object Microsoft.SqlServer.Management.Dac.DatabaseDeploymentProperties($serverconnection,$dacName)
$dacstore.Install($dacType, $deployProperties, $evaluateTSPolicy)
$fileStream.Close()