【发布时间】:2014-01-14 17:16:58
【问题描述】:
我在 SQL Server 代理中设置了一个 T-SQL 作业,每周运行一次。在 SQL Server Management Studio 中,我可以将脚本作为查询成功运行,但是当作业运行时会出错:
“以用户身份执行:DOMAIN\user。用户没有权限 执行此操作。 [SQLSTATE 42000](错误 15247)。步骤 失败了。”
该脚本正在从一台 SQL 服务器导出表数据并将其转储到另一台链接服务器。从我收集的信息来看,T-SQL 不使用代理和凭据,它在执行脚本时使用所有者登录我是两个数据库上的 db_owner 和两个服务器上的 sysadmin 和 serveradmin,我错过了什么?
【问题讨论】:
-
作业设置运行的用户是什么?要找到你需要去general->Owner。它将在作业的属性中。
-
所有者设置为我的网络登录。
-
所以在上述错误中,出于安全原因,我将网络登录替换为 DOMAIN\user。
-
尝试将工作所有者更改为
sa。您的登录名可能没有(也可能不应该)运行作业等。 -
Job Step Properties -> Advanced -> Run as user,这应该是左岸吗?如果将其留空并且我使用“sa”作为所有者,则会收到以下错误“作为用户执行:NT AUTHORITY\NETWORK SERVICE。用户 'DOMAIN\server$' 登录失败。[SQLSTATE 28000](错误 18456)。步骤失败。”
标签: sql-server