【发布时间】:2020-01-24 23:06:15
【问题描述】:
我有一个在 MacOS 10.14 上运行的 python3 脚本,它使用 pyodbc 连接到 SQL Server 数据库。当我手动运行它时,它工作正常,但是当我使用 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 托管帐户是不可行的。
【问题讨论】:
-
你为什么使用
/usr/local/lib/libmsodbcsql.17.dylib;作为驱动程序而不是{ODBC Driver 14 for SQL Server}只是好奇?
标签: python sql-server cron pyodbc