Database Edition 中必需的权限
更新:2007 年 11 月
在能够对 Visual Studio Team System Database Edition 中的数据库执行操作之前,必须使用对该数据库具有特定权限的帐户登录。所需的特定权限随要执行的操作的不同而有所不同。以下几节介绍可能需要执行的每项操作以及执行该操作所需的特定权限。
创建或部署数据库的权限
重构数据库的权限
对数据库执行单元测试的权限
执行数据生成的权限
比较架构和数据的权限
运行 Transact-SQL (T-SQL) 编辑器的权限
创建或部署数据库的权限
您必须具有下列权限才能创建或部署数据库。
操作 |
必需的权限 |
导入数据库架构 |
您必须能够连接到源数据库。如果源数据库基于 SQL Server 2005,您还必须对每个对象都拥有 VIEW DEFINITION 权限。 |
创建或更新数据库项目 |
在为设计时验证指定的服务器实例中,您必须是 dbcreator 和 securityadmin 固定服务器角色的成员。此外,如果您在没有管理凭据的情况下运行 Visual Studio,则必须对服务器具有“查看服务器状态”权限,而且必须针对为设计时验证指定的数据库实例执行如下操作: USE MASTER GO GRANT EXECUTE ON sp_detach_db TO public GO |
部署新数据库或使用“始终重新创建数据库”选项集进行部署 |
您必须拥有 CREATE DATABASE 权限或者是目标服务器上的 dbcreator 角色的成员。 |
部署对现有数据库的更新 |
您必须是有效的数据库用户。此外,您在目标数据库上还必须是 db_ddladmin 角色的成员、拥有架构或拥有要创建或修改的对象。若要在预先部署或后期部署脚本中处理更高级的概念(例如,登录或链接服务器),您还需要拥有其他权限。 |
在数据库项目中创建或修改程序集 |
您必须是用于设计时验证的数据库实例中 sysadmin 角色的成员。 |
在数据库项目中使用带有 EXTERNAL_ACCESS 选项的程序集 |
您必须设置数据库项目的 TRUSTWORTHY 属性。此外,您必须拥有 EXTERNAL ACCESS ASSEMBLY 权限才能进行 SQL Server 登录 有关更多信息,请参见 Microsoft 网站上的 TRUSTWORTHY 数据库属性和 Creating an Assembly(创建程序集)。 |
将程序集部署到新数据库或现有数据库 |
您必须是目标部署服务器上的 sysadmin 角色的成员。 |
使用 Team Foundation Build 生成或部署数据库项目 |
默认情况下,Team Foundation Build 的服务帐户是 Network Service 帐户。Network Service 帐户不具有访问用于部署的 SQL Server 实例(生成计算机上的 SQL Server 的本地实例)必需的权限。 您必须向 Network Service 帐户授予必需的权限,或者将 Team Foundation Build 的服务帐户更改为具有所需权限的帐户。 |
有关更多信息,请参见 SQL Server 2005 联机丛书或 SQL Server 2000 联机丛书。
重构数据库的权限
数据库重构仅发生在数据库项目中。您必须拥有使用数据库项目的权限。向目标数据库部署更改前,您不需要拥有对该数据库的权限。
对数据库执行单元测试的权限
您必须拥有下列权限才能对数据库执行单元测试。
操作 |
必需的权限 |
执行测试操作 |
您必须使用执行上下文数据库连接。有关更多信息,请参见连接字符串和权限概述。 |
执行预先测试或后期测试操作 |
您必须使用特权上下文数据库连接。此数据库连接比执行上下文连接拥有更多权限。 |
运行 TestInitialize 和 TestCleanup 脚本 |
您必须使用特权上下文数据库连接。 |
在运行测试前部署数据库更改 |
您必须使用特权上下文数据库连接。有关更多信息,请参见如何:配置数据库单元测试执行。 |
在运行测试前生成数据 |
您必须使用特权上下文数据库连接。有关更多信息,请参见如何:配置数据库单元测试执行。 |
执行数据生成的权限
您必须对目标数据库中的对象拥有插入权限才能使用数据生成器生成测试数据。
比较架构和数据的权限
您必须拥有下列权限才能比较架构或数据。
操作 |
必需的权限 |
比较两个数据库的架构 |
您必须能够连接到目标数据库。如果源数据库基于 SQL Server 2005,您还必须对每个对象都拥有 VIEW DEFINITION 权限。 |
比较数据库和数据库项目的架构 |
您必须能够连接到目标数据库。如果源数据库基于 SQL Server 2005,则还必须对每个对象拥有或具有 VIEW DEFINITION 权限。您还必须在 Visual Studio 中打开数据库项目。 |
比较两个数据库的数据 |
除了比较两个数据库的架构所需的权限外,您还需要对要比较的所有表拥有 SELECT 权限。 |
有关更多信息,请参见 Microsoft 网站上的“SQL Server 联机从书”。
运行 Transact-SQL (T-SQL) 编辑器的权限
您可以在 T-SQL 编辑器中执行的操作取决于您的目标数据库执行上下文。