コメントの1つで指摘されているように、この回答は今ではかなり古くなっています。Linux から SQL Server 2008 R2 への認証に GSSAPI を定期的かつ日常的に使用していますが、ほとんどの場合、EasySoft ODBC マネージャーと (商用の) EasySoft ODBC SQL Server ドライバーを使用しています。
2009 年の初めに、同僚と私は、特定のバージョンの MIT kerberos ライブラリにリンクされた FreeTDS ビルドを介して DBB::Perl を使用し、GSSAPI (Kerberos 資格情報) を使用して、Solaris 10 から SQL Server 2005 インスタンスに接続することに成功しました。その秘訣は -- これは少し信じがたいことですが、私は FreeTDS ソース コードを調べて確認しました --長さゼロのuser_name を指定することです。user_name 文字列の長さが 0 の場合、FreeTDS コードは GSSAPI を使用しようとします (そのサポートがコンパイルされている場合)。ODBC に長さ 0 の user_name を渡す方法を理解できなかったため、Python と pyodbc を介してこれを行うことができませんでした。
ここの perl コードでは、.freetds.conf などの wrt 構成ファイルが破損する可能性が複数あります。プリンシパルは大文字にする必要があったことを思い出すようですが、私のメモはそれと一致していないようです。
$serverprincipal = 'MSSQLSvc/foo.bar.yourdomain.com:1433@YOURDOMAIN.COM';
$dbh = DBI->connect("dbi:Sybase:server=THESERVERNAME;kerberos=$serverprincipal", '', '');
SQL Server サーバーに適切なセキュリティ プリンシパル名を使用させるには、setspn ユーティリティの使用方法を知っておく必要があります。
私たちの環境は Kerberos の第一人者によって設定されており、SQL Server が実行されている AD ドメインと、私のクライアントが走っていました。
Linux から SQL Server への GSSAPI 認証を行うコードhttp://code.google.com/p/libsqljdbc-auth/がありますが、これは Java のみです。作者 (彼のことをよく知っているようです) も、GSSAPI が組み込まれている Java の最近のバージョンで動作する jTDS プロジェクトに同様のパッチを提供しています。
つまり、ピースはすべてそこにあり、それらをすべて一緒に機能させようとするのは、大きなもつれた混乱です。pyodbc から unixODBC から FreeTDS odbc から TDS への統合を追跡/デバッグするのはかなり難しいことがわかりました。perl は CT-Lib の上にある非常に薄いラッパーだったので、はるかに簡単に作業を進めることができました。