我在本地用户帐户下运行 SQL 代理。如果我在 cmdExec 步骤中使用本地帐户凭据,则作业运行良好。如果我尝试使用域用户帐户(之前在代理帐户中创建),作业开始并“挂起”(仍在运行但什么也没做),我在事件查看器的系统部分得到一个事件 id 10016。
这是正常行为吗?我是否必须使用域用户帐户启动 SQL 代理服务?本地用户帐户是否会继续工作?
我在本地用户帐户下运行 SQL 代理。如果我在 cmdExec 步骤中使用本地帐户凭据,则作业运行良好。如果我尝试使用域用户帐户(之前在代理帐户中创建),作业开始并“挂起”(仍在运行但什么也没做),我在事件查看器的系统部分得到一个事件 id 10016。
这是正常行为吗?我是否必须使用域用户帐户启动 SQL 代理服务?本地用户帐户是否会继续工作?
是的。不幸的是,您的本地帐户没有查找域用户的凭据,因此它无法判断您的域帐户是否被授权。您必须使用域用户帐户。
Is it a normal behavior
它可能是,取决于你的任务是什么。
Do I have to restart the SQL Agent service after changing to a domain user account?
是的。更改任何服务的用户帐户后,您必须重新启动。在您这样做之前,它不会在新帐户的上下文中运行。
Does the local user account continue to work
如果我正确理解了这个问题,那么您是在询问将服务切换到域用户后是否会继续使用本地用户帐户。如果是这样,那么没有。
如果您拥有正确的 SQL 代理凭据和代理集,并且您已将作业步骤配置为使用该代理,则不必将 SQL 代理服务切换到域用户。但是,代理正在使用的凭据中的帐户确实需要在操作系统级别具有适当的权限,才能执行该作业步骤尝试执行的任何操作。这就是我认为你的事情正在下降的地方。
您需要为我们发布更多信息,以帮助您了解它为何挂起。包括步骤正在做什么(运行脚本/批处理文件、复制文件等)以及您不仅在事件查看器中而且还从 SQL 日志中获得的特定错误。