Sql server freetds和pyodbc无法连接
我目前正在建立从Linux设备到Microsoft SQL server的连接。我已经在Linux机器上安装了FreeTDS和pyodbc 我已设置以下文件: /etc/freetds/freetds.confSql server freetds和pyodbc无法连接,sql-server,linux,pyodbc,freetds,Sql Server,Linux,Pyodbc,Freetds,我目前正在建立从Linux设备到Microsoft SQL server的连接。我已经在Linux机器上安装了FreeTDS和pyodbc 我已设置以下文件: /etc/freetds/freetds.conf [sqlserver] host = <ip address> port = 1433 tds version = 8.0 client charset = UTF-8 当我尝试运行tsql-S sqlserver-U username-p
[sqlserver]
host = <ip address>
port = 1433
tds version = 8.0
client charset = UTF-8
当我尝试运行tsql-S sqlserver-U username-p password时,出现以下错误:
locale is "en_US.UTF-8"
locale charset is "UTF-8"
using default charset "UTF-8"
Msg 18452 (severity 14, state 1) from SYMPLECTIC03 Line 1:
"Login failed. The login is from an untrusted domain and cannot be used with Windows authentication."
Error 20002 (severity 9):
Adaptive Server connection failed
There was a problem connecting to the server
('001', '[001] [nxDC[reD]SLSre]nbet onc odt ore (0) (SQLDriverConnect)')
我还尝试通过以下脚本连接pyodbc:
import pyodbc
try:
cnxn = pyodbc.connect('DRIVER=FreeTDS;SERVER=same_ip_as_above;DATABASE=Reports;UID=myusername;PWD=mypassword')
except pyodbc.Error, err:
print err
将打印以下错误:
locale is "en_US.UTF-8"
locale charset is "UTF-8"
using default charset "UTF-8"
Msg 18452 (severity 14, state 1) from SYMPLECTIC03 Line 1:
"Login failed. The login is from an untrusted domain and cannot be used with Windows authentication."
Error 20002 (severity 9):
Adaptive Server connection failed
There was a problem connecting to the server
('001', '[001] [nxDC[reD]SLSre]nbet onc odt ore (0) (SQLDriverConnect)')
这并不是最有用的错误消息
当我尝试连接时,是否有什么地方我做错了
另外,我们的数据库需要Windows身份验证,而不是集成。
我可以通过telnet连接到主机,所以这也不是问题。使用Windows身份验证可能很棘手。。。而且很丑。关于最佳做法:
- 在SQL Server中创建经过SQL身份验证的用户,以便以尽可能有限的权限进行连接
- 请注意,TDS 8.0版可以工作,但为了正确起见,您应该使用TDS 7.2版:
- TDS版本在2012年和2014年有所更改,但向后兼容。我在2012年和2014年与Django的pyodbc没有任何问题
- 您还需要更改此行以包括TDS版本: cnxn=pyodbc.connect('DRIVER=FreeTDS;SERVER=同上;DATABASE=Reports;UID=myusername;PWD=mypassword;TDS\u Version=7.2;')
-Tim设置看起来很好。我有一个类似的东西在工作,在服务器升级到后坏了。测试
tsql
时,这会出现“…不受信任的域”…”错误
我只需要在我的freetds.conf
spec中包含use ntlmv2=yes