我整个周末都在谷歌上搜索我的问题,但似乎无法解决这个问题
所以基本上,我有一个查询,当我在查询窗口中手动运行它时,它工作得很好,我的作业也会执行,从而发送一封电子邮件。但是,当我设置一个时间表时,我得到以下错误:
如果你不能阅读它,错误信息会说,
“作业失败。调度9调用了作业。运行的最后一步是步骤1。”
然后下面写着,
“以用户‘adminName(非sa)’身份执行。无法初始化sqlcmd库,错误号为-2147467259 (SQLSTATE 42000) (错误22050)。步骤失败”
因此,我以用户sa登录,显然该用户需要在msdb数据库中具有SQL代理权限。根据这个屏幕截图,sa是所有者:
因此,由于sa是所有者,这意味着它拥有与SQL Agent相关的所有权限,对吧?此外,我使用的代码是从CompanyDB执行的,所以我认为这可能是问题所在。如果我查看属性,在sa下,我得到这个窗口:
因此,用户sa的CompanyDB处于未选中状态,因此,为了允许sa查询SQL Agent中的CompanyDB,它需要哪些权限?我假设这就是问题所在,但我不是很确定,我似乎不能弄清楚,任何帮助都是非常感谢的。
发布于 2018-04-09 22:44:34
作业应具有dbAdmin权限。话虽如此,这取决于你是写信给数据库,更新,还是只是发送电子邮件。
更好的选择是创建一个when服务,并在您想要发送电子邮件时调用它。
https://stackoverflow.com/questions/49741300
复制