將資料庫註冊為 DAC
您可以使用 [註冊資料層應用程式精靈] 或 Windows PowerShell 指令碼來建立資料層應用程式 (DAC) 定義,以便描述現有資料庫中的物件,並在 msdb 系統資料庫 (在 Windows Azure SQL 資料庫 中為 master) 中註冊 DAC 定義。
**開始之前:**限制事項、權限
**使用下列項目,升級 DAC:**註冊資料層應用程式精靈、PowerShell
開始之前
註冊程序會建立 DAC 定義,以定義資料庫中的物件。 DAC 定義和資料庫的組合會形成 DAC 執行個體。 如果將資料庫註冊為 Database Engine 之受管理的執行個體上的 DAC,下次從執行個體將公用程式收集組傳送到公用程式控制點時,註冊的 DAC 將會合併到 SQL Server 公用程式中。 然後 DAC 會出現在 Management Studio [公用程式總管] 的 [部署的資料層應用程式] 節點中,並在 [部署的資料層應用程式] 詳細資料頁面中報告。
限制事項
DAC 註冊只能在 SQL 資料庫 或 SQL Server 2005 Service Pack 4 (SP4) 或更新版本的資料庫上執行。 如果已經針對資料庫註冊 DAC,將無法執行 DAC 註冊。 例如,如果資料庫是藉由部署 DAC 所建立,您將無法執行 [註冊資料層應用程式精靈]。
如果 DAC 或包含的使用者中不支援資料庫中的物件,則無法註冊 DAC。 如需有關 DAC 中支援之物件類型的詳細資訊,請參閱<SQL Server 物件與版本的 DAC 支援>。
[回到頁首]
權限
在 Database Engine 執行個體中註冊 DAC 至少需要 ALTER ANY LOGIN 和資料庫範圍 VIEW DEFINITION 權限、sys.sql_expression_dependencies 的 SELECT 權限,以及 dbcreator 固定伺服器角色的成員資格。 系統管理員 (sysadmin) 固定伺服器角色的成員或是內建 SQL Server 系統管理員帳戶 sa 也可以註冊 DAC。 在 SQL 資料庫 中註冊不包含登入的 DAC,需要 dbmanager 或 serveradmin 角色的成員資格。 在 SQL 資料庫 中註冊包含登入的 DAC,需要 loginmanager 或 serveradmin 角色的成員資格。
[回到頁首]
使用註冊資料層應用程式精靈
使用精靈註冊 DAC
在 [物件總管] 中,展開含有要註冊為 DAC 的資料庫之執行個體的節點。
展開 [資料庫] 節點。
在要註冊的資料庫上按一下滑鼠右鍵,然後指向 [工作],再選取 [註冊為資料層應用程式…]。
完成精靈對話方塊:
簡介頁面
設定屬性頁面
驗證與摘要頁面
註冊 DAC 頁面
[回到頁首]
簡介頁面
此頁面描述註冊資料層應用程式的步驟。
不要再顯示此頁面。- 按一下此核取方塊,之後就不會再顯示此頁面。
下一步 >:繼續進行 [設定屬性] 頁面。
取消:結束精靈,而不註冊 DAC。
[註冊精靈]
設定屬性頁面
使用此頁面來指定 DAC 層級屬性,例如應用程式名稱和版本。
應用程式名稱- 指定用來識別 DAC 定義之名稱的字串,此欄位已經填入資料庫名稱。
版本- 可識別 DAC 版本的數值。 DAC 版本會用於 Visual Studio 中,以便識別開發人員正在處理的 DAC 版本。 部署 DAC 時,此版本會儲存在 msdb 資料庫中,而且您之後可以在 SQL Server Management Studio 的 [資料層應用程式] 節點底下檢視此版本。
描述- 選擇性。 說明 DAC 用途的文字。 部署 DAC 時,此描述會儲存在 msdb 資料庫中,而且您之後可以在 Management Studio 的 [資料層應用程式] 節點底下檢視此描述。
< 上一步 - 返回 [簡介] 頁面。
下一步 > - 確認 DAC 可以從資料庫的物件建立而來,並在 [驗證與摘要] 頁面中顯示結果。
取消:結束精靈,而不註冊 DAC。
[註冊精靈]
驗證與摘要頁面
使用此頁面來檢閱註冊 DAC 時,精靈將會採取的動作。 當精靈驗證可以從資料庫中的物件建立 DAC 時,此頁面會在三種狀態之間轉換。
[註冊精靈]
擷取物件
擷取資料庫與伺服器物件。- 當精靈從資料庫及 Database Engine 執行個體擷取所有必要的物件時,將會顯示進度列。
< 上一步 - 回到 [設定屬性] 頁面來變更輸入。
下一步 > - 註冊 DAC,並在 [註冊 DAC] 頁面中顯示結果。
取消:結束精靈,而不註冊 DAC。
[註冊精靈]
驗證物件
檢查 SchemaName**.ObjectName.- 當精靈驗證擷取之物件的相依性,並驗證這些對於 DAC 都是有效的物件時,將會顯示進度列。 SchemaName.**ObjectName 識別目前正在驗證哪一個物件。
< 上一步:回到 [設定屬性] 頁面來變更輸入。
下一步 > - 註冊 DAC,並在 [註冊 DAC] 頁面中顯示結果。
取消:結束精靈,而不註冊 DAC。
[註冊精靈]
摘要
下列設定將用來註冊 DAC。- 顯示將包含在 DAC 中的屬性和物件的報表。
儲存報表 - 選取此按鈕可以將驗證報表複本儲存為 HTML 檔。 預設資料夾為 Windows 帳戶之文件資料夾中的 SQL Server Management Studio\DAC Packages 資料夾。
< 上一步 - 回到 [設定屬性] 頁面來變更輸入。
下一步 > - 註冊 DAC,並在 [註冊 DAC] 頁面中顯示結果。
取消:結束精靈,而不註冊 DAC。
[註冊精靈]
註冊 DAC 頁面
此頁面會報告註冊作業成功或失敗。
註冊 DAC - 報告為了註冊 DAC 所採取的每個動作成功或失敗。 檢閱資訊以判斷每個動作成功或失敗。 發生錯誤的所有動作在 [結果] 資料行中都會有一個連結。 選取連結來檢視該動作的錯誤報告。
儲存報表 - 選取此按鈕可以將註冊報告儲存到 HTML 檔。 此檔案會報告每個動作的狀態,包括所有動作所產生的所有錯誤。 預設資料夾為 Windows 帳戶之文件資料夾中的 SQL Server Management Studio\DAC Packages 資料夾。 檔案名稱格式為 <DACPackageName>_RegisterDACReport_yyyymmdd.html,其中 <DACPackageName> 是要部署之封裝的名稱、yyyy = 目前的年份、mm = 目前的月份,而 dd = 目前的日期。
完成 - 結束精靈。
[註冊精靈]
使用 PowerShell 註冊 DAC
在 PowerShell 指令碼中使用 Register() 方法,將資料庫註冊為 DAC
建立 SMO Server 物件,並將它設定為包含要註冊為 DAC 之資料庫的執行個體。
加入可指定資料庫名稱的變數。
指定 DAC 的中繼資料,例如 DAC 名稱、版本及描述。
使用上述指定的資訊執行 Register 方法。
[回到頁首]
範例 (PowerShell)
下列範例會將名稱為 MyDB 的資料庫註冊為 DAC。
## 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()
[回到頁首]