Используя SMO.Agent для получения состояния выполнения задания SQL - проблема безопасности

У меня есть программа C#, которая исчерпывает задания SQL Server Agent с помощью Объектов управления SQL Server (SMO) интерфейсы. Это смотрит что-то как:

Server ssis_server = new Server(
    new ServerConnection(SERVER_NAME, SERVER_USERNAME, SERVER_PASSWORD)
);

var agent = ssis_server.JobServer;
var ssis_job = agent.Jobs[job_name];

var current_status = ssis_job.CurrentRunStatus;

if (current_status == JobExecutionStatus.Idle)
{
    ssis_job.Start();
    OnSuccess("Job started: " + job_name);
}
else
{
    OnError("Job is already running or is not ready.");
}

Я использую аутентификацию SQL Server в этой точке к simplfy вещам, пока я разрабатываю это.

Теперь, моя проблема - это если SERVER_USERNAME часть 'системного администратора' dbo роль, ssis_job.CurrentRunStatus всегда'Idle'-даже когда я знаю, задание работает. Это убирает не ошибку, просто всегда сообщает неактивный.
Если пользователь является администратором, то состояние возвращается как ожидалось.

Ролевое членство Вы говорите?
Ну, я добавил SERVER_USERNAME Вход в систему SQL Server msdb Роли SQLAgentOperatorRole, который, казалось, не помог.
Владелец задания является учетной записью системного администратора - если это - проблема, я не уверен, как работать вокруг этого.

Какие-либо идеи?

6
задан davmos 22 December 2015 в 09:57
поделиться