我们使用的是 Sql Server 2019。
我们有一大堆 Sql Agent 作业,默认情况下它们都归 sa 拥有。
公司安全团队发布命令,出于安全原因所有 sa 帐户都将被禁用,这让我有点陷入困境。
我们有一个SQL Agent 作业开始失败。当它失败时,它会出现错误
Login failed for user 'sa'. Reason: The account is disabled.
我想,好吧,这很有道理;我们禁用了该帐户。所以我尝试了几种方法来解决它。
将所有权更改为其他帐户。我尝试了很多次,但它们都是特权帐户,但我仍然不断收到相同的错误。我在论坛上找到一篇帖子,说 Sql Server 将默认任何特权帐户以 sa 身份运行。
我尝试在作业步骤的“高级”部分更改“以用户身份运行”。这将错误更改为
Access to the remote server is denied because the current security context is not trusted
然后我发现我无法取消设置任务定义上的该属性 - 我只能改变它指向的对象,这让我回到“sa 已被禁用”
然后我意识到我们有很多由sa 拥有的代理作业,但只有这一个失败了。我看不出配置差异可以解释为什么这一个失败,而其他由 sa 拥有的 10-20 个没有失败。我们没有设置代理,通常也没有尝试在任何地方更改运行方式。
任何指点都将不胜感激。
谢谢
当我看到列出的错误是
我知道这与链接服务器问题有关。我推测链接服务器使用了登录映射,因此只有特定用户(例如 sa)才能连接到远程服务器,并且/或者远程服务器上的映射用户没有足够的权限。
...也许下面解释得更好。
可能性 A:只有 sa 用户被映射到远程服务器,因此禁止所有其他登录使用远程服务器。
可能性 B:新用户确实有一个映射用户,但是没有映射到远程具有足够权限的用户。
无论哪种情况,我都建议 OP 检查链接服务器配置并确保新用户在整个链中拥有足够的权限;这显然是解决方案。
很高兴能帮上忙。