共用方式為


Visual Studio 資料庫功能的必要權限

在 Visual Studio中對資料庫執行動作之前,您必須使用對該資料庫有特定權限的帳戶登入。 需要的權限會視要執行的動作而定。 下列章節將描述您可能會想執行的動作,以及執行該動作所需的特定權限。

  • 建立或部署資料庫所需權限

  • 重構資料庫所需權限

  • 在資料庫上執行單元測試所需權限

  • 產生資料所需權限

  • 比較結構描述和資料所需權限

  • 執行 Transact-SQL (T-SQL) 編輯器所需權限

  • SQL Server Common Language Runtime (SQL CLR) 專案的權限

建立或部署資料庫所需權限

您必須擁有下列權限才能建立或部署資料庫。

動作

必要的使用權限

匯入資料庫物件和設定

您必須能夠連接到「來源」(Source) 資料庫。

  • 如果來源資料庫使用 SQL Server 2005,您也必須對每個物件擁有 VIEW DEFINITION 權限。

  • 如果來源資料庫使用 SQL Server 2008,您也必須對每個物件擁有 VIEW DEFINITION 權限。 您的登入必須具有 VIEW SERVER STATE 權限 (適用於資料庫加密金鑰)。

匯入伺服器物件和設定

您必須能夠連接到指定之伺服器上的 "master" 資料庫。

  • 如果伺服器執行的是 SQL Server 2005,您就必須擁有伺服器的 VIEW ANY DEFINITION 權限。

  • 如果來源資料庫是以 SQL Server 2008 為基礎,您必須擁有伺服器的 VIEW ANY DEFINITION 權限。 您的登入必須具有 VIEW SERVER STATE 權限 (適用於資料庫加密金鑰)。

建立或更新資料庫專案

您不需要任何資料庫權限,便可建立或修改資料庫專案。

部署新資料庫或在設定 [永遠重新建立資料庫] 選項的情況下部署

您必須擁有 CREATE DATABASE 權限,或是「目標」(Target) 伺服器上的 dbcreator 角色成員。

當您建立資料庫時,Visual Studio 會連接至模型資料庫並複製其內容。 您用來連接至目標資料庫的初始登入 (例如,yourLogin) 必須具有 db_creator 和 CONNECT SQL 權限。 在模型資料庫上,此登入必須具有使用者對應。 如果擁有 sysadmin 權限,您可以透過發出下列 Transact-SQL 陳述式來建立對應:

USE [model]
CREATE USER yourUser FROM LOGIN yourLogin

使用者 (在這個範例中是 yourUser) 必須擁有模型資料庫的 CONNECT 和 VIEW DEFINITION 權限。 如果擁有 sysadmin 權限,您可以透過發出下列 Transact-SQL 陳述式來授與這些權限:

USE [model]
GRANT CONNECT to yourUser
GRANT VIEW DEFINITION TO yourUser

如果您部署的資料庫包含未命名的條件約束,而且 [CheckNewContraints] 選項已啟用 (預設為啟用),則必須擁有 db_owner 或 sysadmin 權限,否則部署將會失敗。 不過,只有在條件約束未命名時才是這種情形。 如需 [CheckNewConstraints] 選項的詳細資訊,請參閱資料庫專案設定概觀

部署更新至現有資料庫

您必須是有效的資料庫使用者。 您也必須是 db_ddladmin 角色的成員、擁有結構描述,或擁有要在目標資料庫上建立或修改的物件。 您需要其他權限才能在預先部署或部署後指令碼中運用更進階的概念,例如登入或連結伺服器。

重要事項重要事項
如果您部署至 Master 資料庫,則也必須擁有目標部署伺服器的 VIEW ANY DEFINITION 權限。

在資料庫專案中使用組件搭配 EXTERNAL_ACCESS 選項

您必須設定資料庫專案的 TRUSTWORTHY 屬性。 您必須擁有 EXTERNAL ACCESS ASSEMBLY 權限來登入 SQL Server。

部署組件至新的或現有的資料庫

您必須是目標部署伺服器上的系統管理員 (sysadmin) 角色成員。

如需詳細資訊,請參閱 SQL Server 2005 線上叢書或 SQL Server 2008 線上叢書

重構資料庫所需權限

「資料庫重構」(Database Refactoring) 只會發生在資料庫專案內。 您必須擁有使用資料庫專案的權限。 目標資料庫的權限只有在部署變更時才需要。

對資料庫執行單元測試所需權限

您必須擁有下列權限才能對資料庫執行單元測試。

動作

必要的使用權限

執行測試動作

您必須使用執行內容資料庫連接。 如需詳細資訊,請參閱連接字串與權限概觀

執行測試前或測試後動作

您必須使用授權的內容資料庫連接。 此資料庫連接比執行內容連接擁有更多的權限。

執行 TestInitialize 和 TestCleanup 指令碼

您必須使用授權的內容資料庫連接。

執行測試前部署資料庫變更

您必須使用授權的內容資料庫連接。 如需詳細資訊,請參閱 HOW TO:設定資料庫單元測試執行

執行測試前產生資料

您必須使用授權的內容資料庫連接。 如需詳細資訊,請參閱 HOW TO:設定資料庫單元測試執行

產生資料所需權限

您必須對目標資料庫中的物件擁有 INSERT 和 SELECT 權限,才能使用「資料產生器」產生測試資料。 如果在產生資料前清除資料,您也必須對目標資料庫中的物件擁有 DELETE 權限。 若要在資料表上重設 IDENTITY 資料行,您必須擁有該資料表,或必須是 db_owner 或 db_ddladmin 角色的成員。

比較結構描述和資料所需權限

您必須擁有下列權限才能比較結構描述或資料。

動作

必要的使用權限

比較兩個資料庫的結構描述

您必須擁有建立或部署資料庫所需權限中描述的權限才能從這些資料庫匯入物件和設定。

比較資料庫與資料庫專案的結構描述

您必須擁有建立或部署資料庫所需權限中描述的權限才能從這個資料庫匯入物件和設定。 您也必須在 Visual Studio 中開啟資料庫專案。

寫入更新至目標資料庫

您必須擁有建立或部署資料庫所需權限中描述的權限才能將更新部署到目標資料庫。

比較兩個資料庫的資料

除了比較兩個資料庫的結構描述所需的權限,您也必須在所要比較的所有資料表上擁有 SELECT 權限。

如需詳細資訊,請參閱 Microsoft 網站上的下列頁面:SQL Server 2008 線上叢書SQL Server 2005 線上叢書

執行 Transact-SQL 編輯器所需權限

您可以在 Transact-SQL 編輯器內執行的動作,將視您對目標資料庫的執行內容而定。

SQL Server Common Language Runtime (SQL CLR) 專案的權限

下表列出部署或偵錯 SQL CLR 專案時必須具備的權限:

動作

必要的使用權限

部署 (初始或累加) 安全權限集合組件

  • db_DDLAdmin:此權限針對您部署的組件和物件型別授與 CREATE 和 ALTER 權限

  • 資料庫層級 VIEW DEFINITION:部署時的必要權限

  • 資料庫層級 CONNECT:授與連接資料庫的能力

部署外部存取權限集合組件

  • db_DDLAdmin:此權限針對您部署的組件和物件型別授與 CREATE 和 ALTER 權限

  • 資料庫層級 VIEW DEFINITION:部署時的必要權限

  • 資料庫層級 CONNECT:授與連接資料庫的能力

此外,還必須滿足下列條件:

  • 將 TRUSTWORTHY 資料庫選項設為 ON

  • 用於部署的登入必須具有 External Access Assembly 伺服器權限。

部署不安全權限集合組件

  • db_DDLAdmin:此權限針對您部署的組件和物件型別授與 CREATE 和 ALTER 權限

  • 資料庫層級 VIEW DEFINITION:部署時的必要權限

  • 資料庫層級 CONNECT:授與連接資料庫的能力

此外,還必須滿足下列條件:

  • 將 TRUSTWORTHY 資料庫選項設為 ON

  • 用於部署的登入必須具有 Unsafe Assembly 伺服器權限。

遠端偵錯 SQL CLR 組件

您必須擁有 sysadmin 固定角色權限。

重要事項重要事項

在所有情況下,組件擁有人必須是您要用於部署組件的使用者,或者是該使用者成員所屬的角色。 這項要求也適用於您部署之組件所參考的任何組件。

請參閱

概念

在 Visual Studio 中建立和管理資料庫與資料層應用程式

開始以小組開發資料庫