Я могу получить статус заданий, которые уже выполнены, и получить продолжительность и так далее.То, что я сейчас пытаюсь сделать, это посмотреть, запущено ли задание и когда оно началось.Я обнаружил следующий запрос SQL, который показывает, работает ли он в настоящее время и работает ли он нормально, когда я запускаю его из SQL Server Management Studio, но я получаю сообщение об ошибке при запуске его из VBScript.
Код SQL:
EXEC sp_help_job @job_name = '(job name)', @job_aspect = 'JOB'
VBScript:
Option Explicit
Dim strConn, objConn, objRS, strQuery, i
strConn = "Provider=SQLOLEDB.1;Data Source=server;Initial Catalog=msdb"
Set objConn = CreateObject( "ADODB.Connection" )
objConn.Open strConn, "user","password"
Set objRS = CreateObject( "ADODB.Recordset" )
strQuery = "EXEC sp_help_job @job_name = '(job name)', @job_aspect = 'JOB'"
Set objRS = objConn.Execute( strQuery )
Do while not objRS.EOF
For i = 0 To ( objRS.Fields.Count - 1 )
MsgBox i & vbCr & objRS.Fields( i ).Name & vbCr & objRS.Fields( i ).Value
Next
objRS.MoveNext
Loop
Я получаю сообщение об ошибке:
Line: 8
Char: 1
Error: The specified @job_name ('job name') does not exist
Code: 80040E14
Source: Microsoft OLE DB Provider for SQL Server
Учетная запись, которую я использую для выполнения запроса из VBScript, является учетной записью SQL и имеет права SELECT наMSDB.Может ли это быть проблема с разрешениями?Я хотел бы предоставить учетной записи как можно меньше прав.
Есть идеи?Спасибо