Sql server freetds和pyodbc无法连接

Sql 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

我目前正在建立从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 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