包执行:
SQL Server 数据工具:
正在运行的用户凭据SQL Server Data Tools (SSDT)
将用于执行在 SSDT 中执行的包。
在 Windows 开始\所有程序\Microsoft SQL Server 2012 下,如果您单击 SQL Server Data Tools,它将在您的凭据下运行。要在不同的用户帐户下运行,您可以按Ctrl+Shift选择Run as different user
选项。
集成目录服务:
当您右键单击下面的包Integration Services Catalog \ SSISDB \ <Folder name> \ Projects \ <Project name> \ Packages \ <Package name>
并选择Execute...
运行包时。该包将在用于连接到 SQL Server Management Studio 的凭据下运行。
请注意,如果您尝试使用 SQL Server 身份验证运行包,您将收到以下错误消息:
使用 SQL Server 身份验证的帐户无法启动该操作。使用使用 Windows 身份验证的帐户启动操作。
按 后Execute...
,SQL Server
旋转一个进程ISServerExec.exe
,启动一个Console Window Host
进程:
ISServerExec.exe
是一个在 SSIS 目录中执行包的程序。在这种情况下,它是在从 SQL Server Management Studio 执行 SSIS 包的同一用户下启动的。
没有代理的 SQL Server 代理作业:
从SQL Server 代理作业中运行 SSIS 包时,作业步骤默认在SQL Server Agent Service Account
. 可以通过导航找到与 SQL Server 代理服务关联的用户帐户Windows Start \ Administrative Tools \ Services
,查找服务 SQL Server 代理 ( Your Instance Name
) 并找到下面列出的用户帐户Log On As
使用代理的 SQL Server 代理作业:
您还可以通过创建代理帐户在不同的凭据下运行 SQL Server 代理作业。当作业步骤在代理帐户下执行时,作业步骤中的包将在代理帐户上指定的凭据下执行。
下面的 SO 答案提供了创建代理帐户以运行 SQL Server 代理作业的分步说明。
如何在我的 SQL Server 代理作业中创建一个将运行我的 SSIS 包的步骤?
如何验证:
示例 SSIS 2012 包:
这是我为验证上述关于用于包执行的用户帐户所做的陈述。
打开 SQL Server Data Tools 并创建名为SO_15289442.dtsx
.
创建一个名为ExecutionUser
data type的变量String
。将表达式分配@[System::UserName]
给变量。UserName
是一个系统变量,提供执行包的用户的信息。
将发送邮件任务拖放到数据流选项卡上。
创建一个 SMTP 连接并将其分配给SmtpConnection
发送邮件任务编辑器 - 邮件页面上的。
指定From
电子邮件To
地址。
将MessageSourceType更改为Variable
.
设置MessageSource
为User::ExecutionUser
。
右键单击包并选择部署以将项目部署到您选择的服务器上可用的集成服务目录。
包执行
在 SSDT 中运行包。
使用 Run as different user 选项打开 SSDT。提供与您不同的凭据并再次运行该程序包。
从集成服务目录运行包。
创建 SQL Server 代理作业以使用 SQL Server 代理服务帐户运行包。
创建 SQL Server 代理作业以使用代理帐户运行包。
对于上面提到的每次执行,您都会收到一封电子邮件,其中包含用于执行包的用户帐户。
您的问题:
在您的情况下,如果您右键单击并选择从集成服务目录执行,该包将在您的帐户下执行(假设您使用您的凭据访问 SSISDB )。确保该帐户有权访问网络路径。
如果您从 SQL Server 代理作业中运行包,则代理帐户是run as another user
您正在查看的选项。