web-dev-qa-db-fra.com

Python pyodbc se connecte à Sql Server à l'aide de l'authentification SQL Server

Les détails de l'utilisateur de la fenêtre sont différents de ceux de l'utilisateur Sql Server auxquels je me connecte. J'ai donc essayé d'utiliser la connexion pyodbc à la base de données en utilisant le nom d'utilisateur (Admin_JJack) et le mot de passe. Mais l'émission de connexion échoue pour l'utilisateur de la fenêtre (Jack) et je ne sais pas où va mal.

ma chaîne de connexion:

connection = pyodbc.connect(
    "Driver={"SQL Driver"};"
    "Server= "ServerName";"
    "Database="DatabaseName";"
    "UID="UserName";"
    "PWD="Password";"
    "Trusted_Connection=yes"
)

pyodbc.InterfaceError: ('28000', "[28000] [Microsoft] [SQL Server Native Client 11.0] [SQL Server] La connexion a échoué pour l'utilisateur 'Jack'. (18456) (SQLDriverConnect);

Comment se connecter à la base de données en utilisant l'authentification SQL Server?

3
Jack Lim

Lorsque vous utilisez "Trusted_Connection = yes", les clés UID et PWD sont ignorées et le compte Windows est utilisé pour l'authentification.

Si vous souhaitez utiliser les valeurs UID et PWD pour l'authentification au lieu du compte Windows NTLM, vous devez utiliser "Trusted_Connection = No" ou supprimer cette option de la chaîne de connexion.

Trusted_Connection

Spécifie si un utilisateur se connecte via un compte d'utilisateur à l'aide de Kerberos [RFC4120] ou d'une autre authentification spécifique à la plate-forme, comme spécifié par le champ fIntSecurity (pour plus de détails, voir la section 2.2.6.4 de [MS-TDS]).

Les valeurs valides sont "Oui", "1" ou une chaîne vide, qui sont équivalentes, ou "Non". Si la valeur "Non" n'est pas spécifiée, la valeur "Oui" est utilisée.

Si la valeur est "Non", les clés UID et PWD doivent être utilisées pour établir une connexion avec la source de données.

Si la clé DSN et la clé UID ne sont pas incluses dans la chaîne de connexion ou si la valeur de la clé UID est une chaîne vide, la valeur de la clé Trusted_Connection doit être "Oui". Si la clé Trusted_Connection n'est pas spécifiée dans la chaîne de connexion, la valeur doit être obtenue à partir du contenu des paramètres de la clé DSN. Si la clé Trusted_Connection n'est pas spécifiée dans DSN ou si le DSN donné n'existe pas, la valeur par défaut est "Non".

Si la valeur de la clé Trusted_Connection est "Oui", les clés UID et PWD sont ignorées. Sinon, la clé UID doit être spécifiée.

Dans les implémentations Microsoft, ce compte d'utilisateur est un compte d'utilisateur Windows et l'authentification NTLM [MSDN-NTLM] est utilisée lorsque la valeur de la clé Trusted_Connection est "Oui".

source: https://msdn.Microsoft.com/

8
Paulo Scardine