web-dev-qa-db-fra.com

Impossible de se connecter à SQL Server 2008 en utilisant ODBC connexion via le système DSN sur Windows 2012

J'ai un serveur Windows 2012 et je peux me connecter à une instance SQL Server 2008 via Visual Studio Server Explorer en créant une connexion de données. Je peux également utiliser SQL Server Management Studio et me connecter à ce serveur SQL. Mais pour une raison quelconque, lorsque j'essaie de me connecter à l'aide de l'administrateur de source de données ODBC pour configurer un DSN, l'erreur suivante apparaît.

La connexion a échoué:
SQLState: '01000'
Erreur SQL: 1
[Microsoft] [Pilote ODBC SQL Server] [DBNETLIB] ConnectionOpen (SECCreateCredentials ()).
La connexion a échoué:
SQLState: '08001'
Erreur SQL: 18
[Microsoft] [Pilote ODBC SQL Server] [DBNETLIB] Erreur de sécurité SSL

Je n'arrive pas à trouver quoi que ce soit à ce sujet en particulier et à me demander si quelqu'un est au courant de ce problème.

J'ajouterais que ni le client ni le serveur n'appliquent le chiffrement, donc je suis un peu dérouté par le fait que j'aurais une erreur liée à ssl.

7
Bastyon

Après avoir activé la journalisation ODBC, le message d'événement a été reçu.
Une erreur irrécupérable s'est produite lors de la création des informations d'identification du client SSL. L'état d'erreur interne est 10013.

cela ne m'a pas conduit au problème exact mais m'a conduit au correctif d'une erreur semblable.

HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\SecurityProviders\SCHANNEL\Protocols\TLS 1.0\Client\Enabled devait être basculé de 0 à 1

8
Bastyon

Sur Windows Server 2016 avec SQL Server 2016, j'ai désactivé TLS 1.0 et 1.1 et j'ai rencontré un problème avec un seul ancien site (d'autres sites Web plus récents sur le serveur fonctionnaient correctement).

J'ai essayé de mettre à jour la version cible de la version 4.0 à la version 4.7, mais cela n'a pas résolu le problème.

Le problème était un code très ancien qui appelait la base de données en utilisant OleDbDataReader, je l'ai mis à niveau pour utiliser SqlDataReader et cela a fonctionné.

Je ne l'ai trouvé nulle part ailleurs, alors j'ai pensé qu'un post ici pourrait aider quelqu'un d'autre à l'avenir ...

0
Matt Kemp

Si TLS 1.0 et TLS 1.1 sont désactivés sur votre SQL Server (ce qui est une bonne pratique de sécurité), vous devrez peut-être le désactiver sur vos ordinateurs clients. J'ai eu un serveur Win 2012 R2, avec ce problème.

Dans le registre: 

HKLM\SYSTEM\CurrentControlSet\Control\SecurityProviders\SCHANNEL\Protocols\ ...
 \TLS1.0\Client (and Server): set DisabledByDefault = 1, Enabled = 0
 \TLS1.1\Client (and Server): set DisabledByDefault = 1, Enabled = 0

Vous devrez probablement redémarrer votre ordinateur pour que les paramètres prennent effet.

0
tgolisch