逐步解說:建立和部署會參考共用登入的資料庫專案
如果有多個資料庫參考同一個「伺服器物件」(Server Object),您可以為每一個資料庫建立一個專案和一個「伺服器專案」(Server Project),並將物件如共用登入、索引鍵或自訂錯誤訊息匯入此伺服器專案中。 在此逐步解說中,您會為參考匯入「伺服器專案」(Server Project) 之共用登入的資料庫設定「隔離的開發環境」(Isolated Development Environment)。 此環境是以「資料庫專案」(Database Project) 為基礎,其中包含實際執行資料庫中所有物件的定義。
這個逐步解說將說明下列工作:
設定共用伺服器專案
建立複合資料庫專案
將專案提供給小組使用 (選擇性)
必要條件
您必須已安裝 Visual Studio Premium,並且具備存取可從中匯入伺服器物件之 SQL Server 的權限。 該 SQL Server 複本必須在可部署資料庫專案的伺服器上執行。
設定共用伺服器專案
當您參考開發環境中的共用登入時,這些登入通常是在已存在且伺服器系統管理員維護的伺服器專案中定義。
若要建立伺服器專案
在 [檔案] 功能表中,指向 [新增],然後按一下 [專案]。
[新增專案] 對話方塊隨即出現。
展開 [已安裝的範本] 底下的 [資料庫] 節點,然後按一下 [SQL Server]。
注意事項 如果您正在使用 Visual Studio Professional,請查看 [已安裝的範本],依序展開 [資料庫] 節點、[SQL Server] 節點,然後按一下 [進階]。
在範本清單中,按一下 [SQL Server 2008 伺服器專案]。
在 [名稱] 中,輸入 SharedServerProject。
您不需要變更 [位置] 和 [方案名稱] 中的值。
選取 [為方案建立目錄] 核取方塊 (若尚未選取)。
清除 [加入至原始檔控制] 核取方塊 (若尚未清除),然後按一下 [確定]。
空的伺服器專案會加入至方案,並且出現在 [方案總管] 中。
接著匯入伺服器物件和設定。
若要匯入伺服器物件和設定
在 [方案總管] 中,按一下 SharedServerProject 專案。
按一下 [專案] 功能表上的 [匯入物件和設定]。
注意事項 或者,您可以用滑鼠右鍵按一下 [SharedServerProject],然後按一下 [匯入物件和設定] 以取代步驟 1 和 2。
在 [匯入資料庫精靈] 中,指定要從其中匯入物件和設定的伺服器連接,然後按一下 [啟動]。
重要事項 在此逐步解說中,您必須指定將在其中部署資料庫專案的同一部伺服器。
伺服器的物件和設定會匯入到專案中。
物件和設定匯入完成後,按一下 [完成]。
按一下 [檢視] 功能表上的 [資料庫結構描述檢視]。
依序展開 [SharedServerProject] 節點、[伺服器層級物件] 節點、[安全性] 節點及 [登入] 節點。
找出並記下出現的其中一個登入,以便稍後在本逐步解說中使用。
接著建置伺服器專案。
若要建置伺服器專案
在 [建置] 功能表上,按一下 [建置方案]。
當您建置方案時,會建立 SharedServerProject.dbschema 檔,其中包含伺服器專案中物件和設定的定義。 您稍後將在本逐步解說中參考此檔案。
接著建立使用此伺服器專案中所定義登入的資料庫專案。
建立複合資料庫專案
若要建立資料庫專案
在 [檔案] 功能表中,指向 [新增],然後按一下 [專案]。
[新增專案] 對話方塊隨即出現。
展開 [已安裝的範本] 底下的 [資料庫] 節點,然後按一下 [SQL Server]。
注意事項 如果您正在使用 Visual Studio Professional,請查看 [已安裝的範本],依序展開 [資料庫] 節點、[SQL Server] 節點,然後按一下 [進階]。
在範本清單中,按一下 [SQL Server 2008 資料庫專案]。
在 [名稱] 中,輸入 CompositeDBProject。
您不需要變更 [位置] 和 [方案名稱] 中的值。
選取 [為方案建立目錄] 核取方塊 (若尚未選取)。
清除 [加入至原始檔控制] 核取方塊 (若尚未清除),然後按一下 [確定]。
空的資料庫專案會加入至方案,並且出現在 [方案總管] 中。
接著從稍早在本逐步解說中定義的伺服器專案加入輸出的參考。
若要加入伺服器專案的參考
在 [方案總管] 中,展開 CompositeDBProject 專案的節點,然後按一下 [參考] 節點。
在 [專案] 功能表中按一下 [加入資料庫參考]。
注意事項 或者,您可以用滑鼠右鍵按一下 [參考] 節點,然後按一下 [加入資料庫參考] 以取代步驟 1 和 2。
[加入資料庫參考] 對話方塊隨即出現。 由於方案僅包含一個資料庫專案,因此會選取 [資料庫專案結構描述 (.dbschema)]。
按一下 [瀏覽]。
[選取資料庫檔案] 對話方塊隨即出現。
指定稍早在本逐步解說中建立的 SharedServerProject.dbschema 檔。
例如,您可能會指定下列位置:
My Documents\Visual Studio 2010\Projects\SharedServerProject\SharedServerProject\sql\debug\SharedServerProject.dbschema
按一下 [開啟]。
當您建立從伺服器專案建立之 dbschema 檔案的參考時,會預設將此參考設定為使用常值 "master" 來參考其物件。 這並非複合參考,因為您已定義資料庫變數值。 如果這個值表示不同的資料庫,您只需要定義資料庫變數。
按一下 [確定]。
參考會加入至伺服器專案。 現在您可以該伺服器專案中定義的任何物件,就如同在目前資料庫專案中定義一般。
接著將使用者物件加入至資料庫專案。 使用者物件會使用伺服器專案中定義的登入。
若要將使用者加入至資料庫專案
按一下 [檢視] 功能表上的 [資料庫結構描述檢視]。
依序展開 [CompositeDBProject] 節點和 [安全性] 節點,以滑鼠右鍵按一下 [使用者] 節點,指向 [加入],然後按一下 [使用者]。
[加入新項目] 對話方塊隨即出現。
在 [名稱] 中輸入 MyUser,然後按一下 [加入]。
使用者會加入至資料庫專案,並且出現在 [結構描述檢視] 中。 Transact-SQL 編輯器隨即開啟,並且會顯示使用者的定義。
在 Transact-SQL 編輯器中,更新使用者定義使其符合下列範例:
CREATE USER [MyUser] FOR LOGIN [SharedLogin] WITH DEFAULT_SCHEMA = dbo;
重要事項 您必須將 [SharedLogin] 取代為您在標題為「若要匯入伺服器物件和設定」之程序的步驟 7 中識別的登入。
按一下 [檔案] 功能表上的 [儲存 MyUser.user.sql]。
接著定義資料庫角色。
若要定義資料庫角色
在 [結構描述檢視] 中,依序展開 [CompositeDBProject] 節點、[安全性] 節點和 [角色] 節點。
以滑鼠右鍵按一下 [資料庫角色] 節點,指向 [加入],然後按一下 [資料庫角色]。
[加入新項目] 對話方塊隨即出現。
在 [名稱] 中輸入 DbAccounting,然後按一下 [加入]。
角色會加入至資料庫專案,並且出現在 [結構描述檢視] 中。 Transact-SQL 編輯器隨即開啟,並且會顯示角色的定義。
在 [檔案] 功能表上,按一下 [儲存 DbAccounting.role.sql]。
接著設定資料庫專案的部署屬性。
若要將使用者與新的資料庫角色產生關聯
依序展開 [指令碼] 節點和 [部署後] 節點,然後按一下 [Script.PostDeployment.sql]。
Transact-SQL 編輯器隨即開啟,並且會顯示部署後指令碼。
在部署後指令碼的底部加入下列 Transact-SQL 陳述式:
exec sp_addrolemember 'DbAccounting','MyUser';
按一下 [檔案] 功能表上的 [儲存 Script.PostDeployment.sql]。
接著設定資料庫專案的部署屬性。
若要設定部署的資料庫專案
在 [方案總管] 中按一下 [CompositeDBProject] (資料庫專案)。
按一下 [專案] 功能表上的 [CompositeDBProject 屬性]。
專案的屬性隨即出現。
按一下 [部署] 索引標籤。
在 [部署動作] 清單中,按一下 [建立部署指令碼 (.sql) 並部署到資料庫]。
在 [目標資料庫設定] 下方按一下 [編輯],並且指定伺服器的連接,以及要在其中部署資料庫專案的資料庫。
注意事項 如果您未指定匯出伺服器物件的同一部伺服器,則部署將會失敗,因為登入是在該伺服器上定義。
在 [檔案] 功能表上,按一下 [儲存選取項目]。
接下來,您要建置資料庫專案。
若要建置資料庫專案
在 [建置] 功能表上,按一下 [建置方案]。
專案隨即建置而不會出錯。
接著將資料庫專案部署到目標伺服器和資料庫。
若要部署資料庫專案
按一下 [建置] 功能表上的 [部署 CompositeDBProject]。
專案將會部署無誤。
將專案提供給小組使用 (選擇性)
若要將專案加入至版本控制
在 [方案總管] 中,按一下 CompositeDBProject 方案的節點。
指向 [檔案] 功能表上的 [原始檔控制],然後按一下 [將方案加入至原始檔控制]。
注意事項 這時您會與安裝的任何版本控制軟體互動。 本逐步解說提供將專案加入 Visual Studio Team Foundation Server 的步驟。 如果您使用不同的版本控制軟體,則必須以同等的步驟取代。
如果使用 Team Foundation Server,[連接到 Team Foundation Server] 對話方塊隨即出現。
在 [連接到 Team Foundation Server] 中按一下伺服器,此伺服器裝載要在其中加入方案的 Team 專案。
注意事項 如果沒有可以加入資料庫專案的 Team 專案,請參閱計劃和追蹤專案。
在 [Team 專案] 中,按一下要加入資料庫專案的 Team 專案,然後按一下 [確定]。
[將方案 CompositeDBProject 加入至原始檔控制] 對話方塊隨即出現。
按一下 [確定] 接受預設值。
您的資料庫專案及其包含的檔案隨即加入版本控制。 一開始仍為簽出狀態。 您必須簽入專案和檔案,才能讓其他小組成員存取。
指向 [檢視] 功能表上的 [其他視窗],然後按一下 [暫止的變更]。
[暫止的變更] 視窗隨即出現。
在 [註解] 中輸入 Initial database project creation。
在 [暫止的變更] 視窗的工具列上,按一下 [簽入]。
簽入資料庫專案和它所包含的檔案時,[簽入進度] 對話方塊隨即出現。 [方案總管] 中的圖示會變更,表示檔案已簽入版本控制。
後續步驟
資料庫專案簽入版本控制後,小組成員就可以繼續開發資料庫專案。 資料庫開發人員不需要修改伺服器專案。 因此,您可以限制其權限,讓他們能夠看見但不能變更共用物件。