连接字符串和权限概述

更新:2007 年 11 月

若要运行数据库单元测试,必须通过使用一个或两个特定连接字符串连接到数据库服务器。每个连接字符串代表一个帐户,该帐户具有一些特定权限,您必须具有这些权限才能在特定脚本中执行作为测试一部分的某个任务或一组任务。可以在“项目配置”对话框中或者通过手动编辑测试项目的 app.config 文件来指定这些字符串。

连接字符串

在“项目配置”对话框中,可以为下列每个帐户指定连接字符串。

说明:

仅当使用 SQL Server 身份验证时,执行上下文和特权上下文才会不同。如果使用 Windows 身份验证,将为两个连接字符串使用相同凭据。

  • 执行上下文(必需)- 用于运行测试脚本的用户帐户。此连接字符串应具有您希望您的用户所具有的凭据。这对于确保将适当的权限应用于您的数据库很重要。有关更多信息,请参见如何:配置数据库单元测试执行

    在测试项目的 app.config 文件中,这是 ExecutionContext 元素。

  • 特权上下文(可选)- 此帐户具有的权限比运行预先测试操作、后期测试操作、TestInitialize 和 TestCleanup 脚本所需的权限要高。这些脚本设置数据库状态;在后期测试操作中,还可以用于验证数据库中的对象。还可以使用该连接字符串来部署数据库更改和生成数据。

    在测试项目的 app.config 文件中,这是 PrivilegedContext 元素。如果数据库单元测试仅运行测试脚本,则无需指定特权上下文。

在“项目配置”对话框中指定的字符串存储在测试项目的 app.config 文件中。也可以直接编辑该文件并重新生成项目,这样做之后,该对话框中将显示新值。

Windows 身份验证和 SQL 身份验证

指定连接字符串时,必须选择使用 Windows 身份验证还是 SQL 身份验证。选择 Windows 身份验证的一个原因是它支持团队使用测试,这一点优于 SQL 身份验证。如果选择 SQL 身份验证,将使用数据保护 (DPAPI) 基于您的用户凭据对连接字符串进行加密。这意味着该测试项目中的测试仅为您运行,而在您签入测试之后通过源代码管理系统获得这些测试的团队其他成员则无法运行它们。若要运行该测试项目中的测试,团队中的其他成员必须使用其自己的凭据重新配置测试项目。为此,他们应编辑其 app.config 文件的副本或使用“项目配置”对话框。

权限

测试脚本在执行上下文权限级别运行,在处于通常使用状况下的数据库中运行的用户命令也将在该权限级别运行。预先测试操作、后期测试操作、TestInitialize 和 TestCleanup 脚本在特权上下文权限级别运行。

由于用于后期测试操作脚本的连接权限更高,因此您可以在该脚本中执行验证。在该脚本中,还可以运行对权限进行测试的脚本命令。有关权限的更多信息,请参见Database Edition 中必需的权限 的数据库单元测试部分。

请参见

概念

数据库单元测试中的脚本

数据库单元测试文件

Database Edition 术语概述