У меня есть скрипт python3, который я запускаю на MacOS 10.14, который подключается к базе данных SQL Server с помощью pyodbc. Когда я запускаю его вручную, он работает нормально, но когда я планирую его с помощью crontab, эта ошибка генерируется при запуске:
'ДРАЙВЕР = / usr / local / lib / libmsodbcsql.17.dylib;' pyodbc.Error: ('HY000', '[HY000] [Microsoft] [Драйвер ODBC 17 для SQL Server] Поставщик SSPI: учетные данные не были предоставлены, либо учетные данные были недоступны или недоступны. (458752) (SQLDriverConnect)')
Моя учетная запись MacOS является управляемым пользователем, мои учетные данные предоставляются 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, для этого сервера не является основанием для начала.