Какой «Запуск от имени» выбрать на шаге задания SQL Server Agent T- SQL - PullRequest
0 голосов
/ 16 апреля 2020

У меня есть пакет служб SSIS, который я хочу запустить в SQL Серверный агент T- SQL, использующий хранимую процедуру, поскольку у меня есть проблема с разрешениями, описанная в моем другом посте:

Использование Прокси для предоставления SQL Server Agent windows учетных данных для доступа к azure db не работает (все еще не решено)

Я создал контрольный пример, описанный ниже:

1. Пакет SSIS для запуска: вставьте строку в Azure базу данных

2.Script для выполнения пакета:

/* Create the execution object */

DECLARE @execution_id BIGINT

EXEC [SSISDB].[catalog].[create_execution] 

    @package_name = N'Package.dtsx'

    , @project_name = N'test'

    , @folder_name = N'test'

    , @use32bitruntime = False

    , @reference_id = NULL

    , @execution_id = @execution_id OUTPUT



/* System parameters */

EXEC [SSISDB].[catalog].[set_execution_parameter_value] 

    @execution_id

    , @object_type = 50                     -- System parameter

    , @parameter_name = N'SYNCHRONIZED'

    , @parameter_value = 1



/* Execute the package */

EXEC [SSISDB].[catalog].[start_execution] @execution_id



/* Check package status, and fail script if the package failed

IF 7 <> (SELECT [status] FROM [SSISDB].[catalog].[executions] WHERE execution_id = @execution_id)

RAISERROR('The package failed. Check the SSIS catalog logs for more information', 16, 1) 

PS: с этим кодом проблем нет. Он был успешно выполнен при запуске его в запросе.

3.Создание задания

Владелец: DOMAIN \ USER_NAME

Шаг (только один шаг):

Type: T-SQL


3.1 Database: master

    Advanced --> run as user: blank

    Error message:

        "Executed as user: DOMAIN\LAPTOP-4I64GKE3$. The package failed. Check the SSIS catalog logs   
         for more information [SQLSTATE 42000] (Error 50000).  The step failed"

3.2 Database: master

    Advanced --> run as user: dbo

    Error message:

        "Executed as user: dbo. The server principal "sa" is not able to access the database 
         "SSISDB" under the current security context. [SQLSTATE 08004] (Error 916).  The step 
         failed."

3.3 Database: SSISDB

    Advanced --> run as user: blank

    Error message:

        "Executed as user: DOMAIN\LAPTOP-4I64GKE3$. The package failed. Check the SSIS catalog logs 
         for more information [SQLSTATE 42000] (Error 50000).  The step failed"

3.4 Database: SSISDB

    Advanced --> run as user: dbo

    Error message:

        "Executed as user: dbo. The operation cannot be started by an account that uses SQL Server 
         Authentication. 
         Start the operation with an account that uses Integrated Authentication. 
         [SQLSTATE 42000] (Error 27123)  The operation cannot be started by an account that uses SQL 
         Server Authentication.
         Start the operation with an account that uses Integrated Authentication. 
         [SQLSTATE 42000] (Error 27123)  The operation cannot be started by an account that uses SQL 
         Server Authentication. 
         Start the operation with an account that uses Integrated Authentication. 
         [SQLSTATE 42000] (Error 27123).  The step failed."

Конец тестового примера.

Кажется, что только подход с подходом 3.4 немного ближе к моей цели, но не уверен, что делать дальше.

Должен ли я попробовать другой комбинации или я должен создать пользователя имеет windows аутентификацию?

Любая идея помогает

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...