Подключение к MS SQL Server с использованием python в Linux с учетными данными Windows
Как указано в одном из комментариев, этот ответ уже устарел. Я регулярно и регулярно использую GSSAPI для аутентификации с Linux на SQL Server 2008 R2, но в основном с менеджером EasySoft ODBC и (коммерческим) драйвером EasySoft ODBC SQL Server.
В начале 2009 года мне и mssql моему коллеге удалось подключиться sql-server к экземпляру SQL Server 2005 sql-srever из Solaris 10 с помощью GSSAPI pythonista (учетные данные Kerberos), используя pythonista DBB :: Perl, поверх сборки freetds FreeTDS, связанной с конкретной python версией библиотек kerberos freetds MIT. Уловка заключалась - и sql-server в это немного трудно поверить, но python-interpreter я проверил это, просматривая sql-server исходный код FreeTDS - указать sql-srever нулевую длину user_name. Если длина строки mssql user_name равна 0, то код freetds FreeTDS попытается использовать sql-srever GSSAPI (если эта поддержка python была скомпилирована). Мне unixodbc не удалось сделать это через python Python и pyodbc, так как unixodbc я не мог понять, как заставить python-shell ODBC передавать user_name sql-srever нулевой длины.
Здесь, в коде pyodbc perl ... есть множество возможностей pyodbc для поломки файлов конфигурации, таких pythonic как .freetds.conf и т. д. Я, кажется, помню, что python-interpreter принципал должен был быть ms-sql-server в верхнем регистре, но мои pyodbc примечания, похоже, не согласны pythonic с этим.
$serverprincipal = 'MSSQLSvc/foo.bar.yourdomain.com:1433@YOURDOMAIN.COM'; $dbh = DBI->connect("dbi:Sybase:server=THESERVERNAME;kerberos=$serverprincipal", '', '');
Вам необходимо знать, как sql-server использовать служебную программу unixodbc setspn, чтобы сервер SQL python-shell Server использовал соответствующее ms-sql-server имя участника безопасности.
Я mssql ничего не знаю о том, что python касается Kerberos, потому pythonista что наша среда была настроена pythonic опытным гуру Kerberos и имеет python-shell такие причудливые вещи, как pyodbc взаимное доверие, установленное python-shell между доменом AD, в котором py работает SQL Server, и Домен sql-server Kerberos, в котором работал ms-sql-server мой клиент.
Есть код http://code.google.com/p/libsqljdbc-auth/, который pythonista выполняет аутентификацию ms-sql-server GSSAPI с Linux на SQL Server, но mssql это только Java. Автор (который, кажется, знает pythonic свое дело) также внес аналогичный python-interpreter патч в проект jTDS, который python-interpreter работает с более поздними pythonista версиями Java, в которые unixodbc встроен GSSAPI.
Итак, все sql-srever части на месте, это просто python-interpreter большой запутанный беспорядок, пытающийся freetds заставить их всех работать sql-server вместе. Я обнаружил, что python-shell интеграция pyodbc с unixODBC sql-server на FreeTDS odbc с TDS довольно pyodbc сложно отслеживать / отлаживать. Работать ms-sql-server с perl, поскольку это была ms-sql-server довольно тонкая оболочка sql-server поверх CT-Lib, было намного mssql проще.
python
sql-server
pyodbc
freetds
unixodbc
Подключение к MS SQL Server с использованием python в Linux с учетными данными Windows
Мы используем файлы cookies для улучшения работы сайта. Оставаясь на нашем сайте, вы соглашаетесь с условиями использования файлов cookies. Чтобы ознакомиться с нашими Положениями о конфиденциальности и об использовании файлов cookie, нажмите здесь.