最初的情况:
我在虚拟机(群集实例)上使用Microsoft SQL Server 2008(SP4) - 10.0.6241.0(X64),Enterprise Edition(64位)。
在政策管理下......
......我定义了以下条件:
ExecuteSql('Numeric', '
USE [msdb];
SELECT [enabled]
FROM [dbo].[sysjobs]
WHERE [name] = ''updSTAT Agentur- und Bildempfangsdatum'';
')
使用此条件的策略处于活动状态,评估模式设置为"按计划"。
最后,如果出现错误34052,我会设置一个向操作员发送消息的警报。
到目前为止一切顺利!
如果我手动评估该政策,一切正常。如果按计划评估策略,则会引发以下错误(错误229,策略历史记录中的严重性14 ,而不是作业代理的历史记录):
对象' sysjobs',数据库上的SELECT权限被拒绝 ' msdb',架构' dbo'。
自动生成的作业有2个步骤。第一步名为"验证是否已启用自动化。" 的类型为 Transact-SQL-Script :
IF (msdb.dbo.fn_syspolicy_is_automation_enabled() != 1)
BEGIN
RAISERROR(34022, 16, 1)
END
字段运行方式为空。据我所知,使用SQL Server代理服务帐户。 SQL Server代理正在使用具有sysadmin权限的AD用户帐户运行。
另一方面,我无法为子系统T-SQL分配代理。
第二步名为"评估政策。" 具有 PowerShell 类型,并作为SQL Server代理服务帐户执行。
问题到底是什么问题?我错过了什么?
提前多多感谢!