Как выполнить скрипт Python от имени администратора в задании агента SQL Server - PullRequest
0 голосов
/ 14 февраля 2019

У меня есть файл Python (3.7.2), который извлекает данные от стороннего производителя API, сохраняет данные в локальном файле CSV на Windows Server 2016, а затем делает bulk import в экземпляре SQL Server 2016 (13.0.4224.16).

Это работает без проблем, если я вручную запускаю сценарий из командной строки с повышенными привилегиями.Однако я не хочу запускать этот скрипт вручную, так как хочу, чтобы он выполнялся каждый час.Я знаю, как планировать с Task Scheduler на серверной ОС, но я бы хотел запланировать как автоматизированное задание с использованием SQL Server Agent.Таким образом, я могу напрямую управлять / отслеживать задания с помощью SSMS, и мне не нужно входить на сам сервер для проверки запланированных заданий.

В настоящее время у меня задание, настроенное с 1 шагом типа Operating system (CmdExec)и Command:, установленный на "C:\Windows\System32\cmd.exe" "python C:\PythonScripts\myPython.py":

enter image description here

Я думаю, что cmd.exe будет открыто и вызовет python.exe программа с указанным мною путем python.

Однако, когда я запускаю задание, оно просто зависает в состоянии In progress и никогда не завершается.Скрипт при запуске вручную успешно завершается за 9 секунд:

enter image description here

Есть идеи?

Ответы [ 2 ]

0 голосов
/ 14 февраля 2019

Мне удалось решить проблему с моим вопросом, добавив учетную запись / учетную запись прокси-сервера, назначив ее на шаге Run as, а затем изменив Command, чтобы он выглядел следующим образом:

C:\Windows\System32\cmd.exe /C python "C:\PythonScripts\myPython.py"

0 голосов
/ 14 февраля 2019

Вы пытались использовать sp_execute_external_script?

execute sp_execute_external_script 
@language = N'Python', 
@script = N'
a = 1
b = 2
c = a/b
d = a*b
print(c, d)
'

Например, этот код можно запланировать в SqlAgent.

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