Как указано в одном из комментариев, этот ответ довольно устарел. Я регулярно и регулярно использую GSSAPI для аутентификации с Linux на SQL Server 2008 R2, но в основном с менеджером EasySoft ODBC и (коммерческим) драйвером EasySoft ODBC SQL Server.
В начале 2009 года мы с коллегой смогли подключиться к экземпляру SQL Server 2005 из Solaris 10 с использованием GSSAPI (учетных данных Kerberos) с использованием DBB :: Perl над строкой FreeTDS, связанной с конкретной версией библиотек kerberos MIT , Трюк был - и это немного сложно поверить, но я проверил его, просмотрев исходный код FreeTDS - указать нулевую длину user_name. Если длина строки user_name равна 0, то код FreeTDS будет пытаться использовать GSSAPI (если эта поддержка была скомпилирована). Я не смог сделать это через Python и pyodbc, поскольку я не мог понять, как заставить ODBC передавать имя пользователя с нулевой длиной.
Здесь, в коде perl .. существует множество возможностей для поломки файлов конфигурации, таких как .freetds.conf и т. Д. Я, кажется, помню, что основной должен был быть в верхнем регистре, но мои заметки, похоже, не согласны с этим ,
$serverprincipal = 'MSSQLSvc/foo.bar.yourdomain.com:[email protected]';
$dbh = DBI->connect("dbi:Sybase:server=THESERVERNAME;kerberos=$serverprincipal", '', '');
Вы должны знать, как использовать SETSPN утилиту для того, чтобы получить сервер SQL Server использовать соответствующее имя участника безопасности.
У меня нет знаний о стороне кебероса, потому что наша среда была создана гуру Kerberos и имеет причудливые вещи, такие как взаимное доверие, установленное между доменом AD, в котором работает SQL Server, и домен Kerberos, в котором работал мой клиент.
Существует код http://code.google.com/p/libsqljdbc-auth/, который выполняет аутентификацию GSSAPI от Linux до SQL Server, но это только Java. Автор (который, похоже, знает свои вещи) также внес аналогичный патч в проект jTDS, который работает с более поздними версиями Java, в которых встроен GSSAPI.
Итак, все это есть, это просто большой запутанный беспорядок, пытаясь заставить их всех работать вместе. Я нашел pyodbc для unixODBC для FreeTDS odbc для интеграции с TDS довольно сложно отслеживать/отлаживать. Perl-материал, потому что это была довольно тонкая оболочка на вершине CT-Lib, было намного легче начать.
Это эпическая сказка, но это слишком вводит в заблуждение, поскольку текущее состояние дел является как самым высоким, так и принятым ответом. Дайте мне знать, если вы отредактируете заявление об отказе от ответственности, и я удалю свой нижний план. – steamer25