pyodbc на MacOS 10.14, соединяющийся с SQL Server, завершается неудачно с заданием cron - PullRequest
0 голосов
/ 24 сентября 2019

У меня есть скрипт python3, который я запускаю на MacOS 10.14, который подключается к базе данных SQL Server с помощью pyodbc.Когда я запускаю его вручную, он работает нормально, но когда я планирую его с помощью crontab, я получаю эту ошибку:

'DRIVER=/usr/local/lib/libmsodbcsql.17.dylib;' pyodbc.Error: ('HY000','[HY000] [Microsoft][ODBC Driver 17 for SQL Server]SSPI Provider:  No credentials were supplied, or the credentials were unavailable or inaccessible. (458752) (SQLDriverConnect)')

Я работаю как управляемый пользователь, подключенный через AD, и моя учетная запись имеет разрешение наполучить доступ к базе данных, используя эти учетные данные.

Это питон:

#!/usr/bin/env python

import pyodbc

conn = pyodbc.connect(
  'DRIVER=/usr/local/lib/libmsodbcsql.17.dylib;'
  'SERVER=[SERVER NAME];'
  'DATABASE=[DATABASE];'
  'Trusted_Connection=yes;'
)

cursor = conn.cursor()
cursor.execute("SELECT * FROM [TABLE]")

Разумеется, с соответствующим сервером, базой данных и таблицей.

Я предполагаю, что это как-то связано с небольшой разницеймежду управляемым пользователем и пользователем cron, но я не знаю, как обойти эту проблему.По соображениям безопасности было бы непросто создать управляемую SQL учетную запись для этого сервера.

1 Ответ

0 голосов
/ 25 сентября 2019

В сообщении об ошибке сообщается, что вам нужны учетные данные.Добавьте UID = имя пользователя; PWD = пароль к строковому аргументу pyodbc.connect, например,

pyodbc.connect('DRIVER={ODBC Driver 17 for SQL Server};SERVER='+server+';DATABASE='+database+';UID='+username+';PWD='+ password)
...