0

I'm running a Gentoo Linux and I'm trying to connect to MS SQL via pyodbc using freetds.

I enabled the debug log in freetds. Now when I try to connect I'm seeing this:

18:13:00.841828 13523 (net.c:270):tds_open_socket: connect(2) returned "Operation now in progress"
18:13:00.955976 13523 (net.c:310):tds_open_socket() succeeded
18:13:00.955996 13523 (util.c:156):Changed query state from DEAD to IDLE
18:13:00.956017 13523 (net.c:741):Sending packet
0000 12 01 00 34 00 00 00 00-00 00 15 00 06 01 00 1b |...4.... ........|
0010 00 01 02 00 1c 00 0c 03-00 28 00 04 ff 08 00 01 |........ .(......|
0020 55 00 00 02 4d 53 53 51-4c 53 65 72 76 65 72 00 |U...MSSQ LServer.|
0030 d3 34 00 00            -                        |.4..|

18:13:01.190745 13523 (net.c:555):Received header
0000 04 01 00 25 00 00 01 00-                        |...%....|

18:13:01.190772 13523 (net.c:609):Received packet
0000 04 01 00 25 00 00 01 00-00 00 15 00 06 01 00 1b |...%.... ........|
0010 00 01 02 00 1c 00 01 03-00 1d 00 00 ff 0a 32 10 |........ ......2.|

18:13:01.190781 13523 (login.c:1057):detected flag 3
18:13:01.190783 13523 (login.c:1068):server required encryption but support is not compiled in
18:13:01.190785 13523 (login.c:466):login packet rejected
18:13:01.190821 13523 (util.c:156):Changed query state from IDLE to DEAD

This sounds like the support for some encryption is missing, but I don't know which one. My freetds is complied with these configure parameters:

./configure --prefix=/usr --build=x86_64-pc-linux-gnu --host=x86_64-pc-linux-gnu --mandir=/usr/share/man --infodir=/usr/share/info --datadir=/usr/share --sysconfdir=/etc --localstatedir=/var/lib --disable-dependency-tracking --libdir=/usr/lib64 --with-tdsver=7.0 --enable-msdblib --enable-odbc --with-unixodbc=/usr --enable-krb5

As far as I know it's using libkrb5 for the encryption. These are the configure flags for my libkrb5:

./configure --prefix=/usr --build=x86_64-pc-linux-gnu --host=x86_64-pc-linux-gnu --mandir=/usr/share/man --infodir=/usr/share/info --datadir=/usr/share --sysconfdir=/etc --localstatedir=/var/lib --libdir=/usr/lib64 --without-ldap --without-tcl --enable-pkinit --enable-thread-support --without-hesiod --enable-shared --with-system-et --with-system-ss --enable-dns-for-realm --enable-kdc-lookaside-cache --with-system-verto --disable-rpath  --with-pkinit-crypto-impl=openssl

Does somebody know which configure flags I'm missing to be able to connect to MS SQL?

0

I figured it out myself, in the freetds configure parameters i was missing --with-openssl. Once I added that and reinstalled freetds everything worked fine.

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service, privacy policy and cookie policy

Not the answer you're looking for? Browse other questions tagged or ask your own question.