Ne peut pas établir de connexion à sql server à l'aide de pyodbc sur Windows 7
Je suis en utilisant ActivePython 2.7.2.5 sur Windows 7.
Tout en essayant de se connecter à sql server de base de données avec le pyodbc module à l'aide du code ci-dessous, je reçois le subséquentes Traceback. Toutes les idées sur ce que je fais mal?
CODE:
import pyodbc
driver = 'SQL Server'
server = '**server-name**'
db1 = 'CorpApps'
tcon = 'yes'
uname = 'jnichol3'
pword = '**my-password**'
cnxn = pyodbc.connect('DRIVER={SQL Server};SERVER=server;DATABASE=db1;UID=uname;PWD=pword;Trusted_Connection=yes')
cursor = cnxn.cursor()
cursor.execute("select * from appaudit_q32013")
rows = cursor.fetchall()
for row in rows:
print row
TRACEBACK:
Traceback (most recent call last):
File "pyodbc_test.py", line 9, in <module>
cnxn = pyodbc.connect('DRIVER={SQL Server};SERVER=server;DATABASE=db1;UID=uname;PWD=pword;Trusted_Connection=yes')
pyodbc.Error: ('08001', '[08001] [Microsoft][ODBC SQL Server Driver][DBNETLIB]SQL Server does not exist or access denied. (17) (SQLDriverConnect); [01000] [Microsoft][ODBC SQL Server Driver][DBNETLIB]ConnectionOpen (Connect()). (53)')
Dans mon cas, suivant les noms de pilote a fonctionné pour moi. "SQL Server Native Client 11.0" et "Pilote ODBC 11 pour SQL Server"
OriginalL'auteur James Nicholson | 2013-09-17
Vous devez vous connecter pour publier un commentaire.
Vous utilisez une chaîne de connexion de
'DRIVER={SQL Server};SERVER=server;DATABASE=db1;UID=uname;PWD=pword;Trusted_Connection=yes'
, vous essayez de vous connecter à un serveur appeléserver
, une base de données appeléedb1
, etc. Il n'utilise pas les variables que vous définissez avant, ils ne sont pas utilisés.Il est possible de passer les paramètres de chaîne de connexion en tant que mot-clé arguments à la
se connecter
de la fonction, de sorte que vous pouvez utiliser:Vous aurez également besoin de retirer la
trusted_connection
attribut de votre chaîne de connexion puisque vous êtes en fournissant un nom d'utilisateur et mot de passe. Vous pouvez utiliser l'authentification Windows (trusted_connection
attribut), ou l'authentification SQL Server (user
etpassword
attributs), mais pas les deux. Dans mes tests, si les deux sont fournis, la connexion par défaut pour l'authentification Windows.pouvez-vous soumettre une réponse qui fournit des exemples de code? Il serait très utile de voir comment vous construire la chaîne de connexion dans les deux cas. Merci.
Veuillez voir ce réponse existant montrant
pyodbc.connect
des exemples pour les deux authentification SQL et Windows.merci. Existe-il des risques de sécurité associés à l'utilisation de l'un ou de l'autre?
OriginalL'auteur mata
J'ai eu le même message d'erreur et dans mon cas, la question a été l' [SQL Server] les pilotes requis TLS 1.0 qui est désactivé sur mon serveur. Modification de la version la plus récente de la nouvelle activité,
SQL Server Native Client 11.0
résolu le problème.Donc ma chaîne de connexion ressemble à:
fonctionne comme un charme
OriginalL'auteur jinksPadlock
Différents risques de sécurité existent avec l'une ou l'autre méthode. Si vous utilisez l'authentification Sql Server, vous exposez votre nom d'utilisateur/mot de passe dans le code. Mais au moins, vous traitez avec les mêmes informations d'identification. Si vous utilisez l'authentification Windows, vous avez à s'assurer que tous les utilisateurs possibles sont le programme d'installation avec le droit de construire dans le Sql server. Avec l'authentification Sql, vous pouvez configurer un seul utilisateur, mais plusieurs personnes peuvent utiliser qu'un Utilisateur Sql autorisations sage.
OriginalL'auteur RobPrell
J'avais fait face à cette erreur due à une autre raison.
C'était parce que mon serveur a eu un "port" en dehors de l'adresse.
Je pouvais résoudre ce problème en attribuant la valeur suivante "Serveur" paramètre de la chaîne de connexion.
Remarque que c'est un 'virgule' et pas 'colon'/'période'
OriginalL'auteur murphy1310