Выполнение One Sql Agent Job от 2 пользователей

102
9

У меня есть сценарий, где есть среда dev и prod. Вся разработка SSIS произойдет в dev SQL Server, а затем она будет предоставлена отдельной команде для развертывания в производстве.

Итак, теперь мое требование, как разработчик пакета SSIS, я должен иметь возможность подключаться к prod-серверу через SSMS и выполнять работу, развернутую другой командой в prod. И я не должен видеть других рабочих мест на сервере.

Какова наилучшая настройка для этого сценария?

спросил(а) 2021-01-27T16:34:15+03:00 8 месяцев, 3 недели назад
1
Решение
79

Пользовательский интерфейс SSMS может делать только то, что он может сделать. Помимо подхода, описанного JodyT, где вы сможете увидеть все задания, но только выполнить те, которые у вас есть, вы просите что-то индивидуальное, поэтому вам понадобится специальное решение.

В этом случае я, скорее всего, решу проблему с хранимой процедурой. Мы будем использовать предложение EXECUTE AS, чтобы вы могли запускать хранимую процедуру, но когда она выполняется, действия будут выполняться как привилегированный пользователь.

msdb.dbo.sp_start_job - это метод, который вызывается при щелчке правой кнопкой мыши по заданию и "Начать работу на этапе..."

Зная, что имя задания, которое вы хотите запустить, и человека, который может его запустить, - это все, что вам нужно для создания соответствующей хранимой процедуры.

CREATE PROCEDURE 
dbo.AnandPhadkeRunJob
WITH EXECUTE AS 'domain\username'
BEGIN
SET NOCOUNT ON;
EXECUTE msdb.dbo.sp_startjob @job_name = 'Do Something';
END

Здесь я создаю хранимую процедуру, которая запускает задание под названием "Сделать что-то" и запускает его в контексте учетной записи домена "имя пользователя". Портной, чтобы соответствовать вашей среде.

ответил(а) 2021-01-27T16:34:15+03:00 8 месяцев, 3 недели назад
65

На этой странице описаны различные роли базы данных, доступные для агента SQL Server.

Если вы являетесь владельцем задания, и вы являетесь членом роли базы данных SQLAgentUserRole вы сможете выполнять задания, которые у вас есть. Тем не менее вы также сможете видеть другие задания, но не сможете ничего делать с этими заданиями.

ответил(а) 2021-01-27T16:34:15+03:00 8 месяцев, 3 недели назад
Ваш ответ
Введите минимум 50 символов
Чтобы , пожалуйста,
Выберите тему жалобы:

Другая проблема