我有许多运行 CmdExec 语句的 SQL Server Agent 作业。
它们是调用简单批处理文件的简单作业。
它们以 Run As: 运行Proxy account
,该运行具有以 运行的权限CmdExec proxy
,并定义了相关链接Credential
。
但是,当我尝试运行该作业时,出现以下错误:
Executed as user: PROXY_ACCOUNT.
The process could not be created for step 2 of job (reason: Access is denied).
The step failed.
当我向 SQL Server 代理帐户授予代理帐户尝试访问的驱动器的权限时,一切正常。
尽管代理帐户已拥有相关驱动器的权限。
根据定义代理账户我正在运行的作业步骤的安全上下文应该由代理帐户定义。
到目前为止,我能找到的有关代理帐户的文档和文章都表明,在运行定义了代理帐户的作业步骤时,SQL Server 代理应该模拟凭据,并使用代理帐户安全上下文运行它。
那么为什么代理帐户也需要相关驱动器的权限?
我是否误解了 SQL Server 代理代理帐户的工作原理?