2014-01-23 7 views
7

Gibt es eine Möglichkeit für Python, auf MS SQL Server mit Windows-Authentifizierung sogar zu verbinden, wenn nicht die Python-Anwendung auf einer Windows-Box läuft?pymssql: Wie Windows-Authentifizierung verwenden, wenn auf einer Nicht-Windows-Box läuft

Ich versuche, dies mit Pymssql zu tun, aber die Beispiele scheinen meist davon auszugehen, dass Sie auf Windows laufen.

Wenn es eine Möglichkeit gibt, diese Verbindung mit einer anderen Bibliothek herzustellen, zögern Sie nicht, mir einen Vorschlag zu machen, aber ich mag, dass pymssql einfach über pip installiert und bereitgestellt werden kann.

Ich möchte 2005/2008 Datenbanken verbinden, und ich bin mit Ubuntu 13.04 (aber ich kann zu einem späteren Ubuntu aktualisieren, wenn es einen Unterschied macht)

LÖSUNG:

Es stellt sich heraus, dass Pymssql über meinen Windows-Benutzernamen und Passwort mit meiner Datenbank verbinden kann. Aber dies zu tun, muss ich wie dies die tatsächliche Benutzername/Passwort weitergeben müssen:

pymssql.connect(host, 'THEDOMAIN\\theusername', 'thepassword', db) 

Die Lösung EkoostikMartin vorgesehen noch gut, aber (wenn man irgendwo ein Passwort nicht speichern möchten, das ist wahrscheinlich der Punkt Windows-Authentifizierung sowieso)

+1

Ich denke, das immer noch den SQL Server erfordert konfigurierte ‚gemischte‘ Authentifizierung zu ermöglichen - ohne die Kerberos-Token, sind Sie nicht integrierte Windows-Authentifizierung verwenden, auch wenn die Anmeldeinformationen sind die gleiche . – northben

+0

Mit Windows 10 könnte dieses Passwort Ihr gesamtes Microsoft-Konto-Passwort sein. Es kann eine gute Idee sein, den 'sa' Benutzer mit einem benutzerdefinierten Passwort zu aktivieren, anstatt Ihren Microsoft Account zu verwenden. – CMCDragonkai

Antwort

5

Sie können den SQL Server-ODBC-Treiber für Linux verwenden und Kerberos einrichten.

diesen Artikel - http://technet.microsoft.com/en-us/library/hh568450.aspx

+3

das ist eigentlich ziemlich einfach - Ich habe das pyodbc python-Paket installiert und dann wie folgt mit dem SQL Server verbunden: 'pyodbc.connect (" Treiber = {SQL Server}; Server = Servername \ Instanzname; Trusted_Connection = yes; Datenbank = Datenbankname ") ' – northben

Verwandte Themen