Je rencontre une erreur lors de la connexion de ma base de données qui est dans le rôle VM (j'ai un rôle SQL VM) à partir du site Web Azure. Le rôle VM et le site Web Azure se trouvent tous deux dans la zone ouest. Je suis confronté au problème suivant:
SqlException (0x80131904): Une connexion a été établie avec le serveur, mais une erreur s'est produite lors du processus de connexion. (fournisseur: fournisseur SSL, erreur: 0 - la chaîne de certificats a été émise par une autorité non approuvée.)]
Je peux me connecter à ma base de données à l'aide de SSMS. Le port 1433 est ouvert sur mon rôle VM. Quel est le problème avec ma connexion?
Aucun certificat signé par une autorité de certification n'est probablement installé dans le magasin racine approuvé de votre machine virtuelle SQL.
Si vous avez Encrypt=True
dans la chaîne de connexion, désactivez cette option (non recommandé) ou ajoutez les éléments suivants dans la chaîne de connexion:
TrustServerCertificate=True
SQL Server créera un certificat auto-signé si vous n'en installez pas un pour l'utiliser, mais l'appelant ne fera pas confiance à l'appelant puisqu'il n'est pas signé par une autorité de certification, à moins que vous ne demandiez à la chaîne de connexion d'approuver tout certificat de serveur par défaut.
À long terme, je vous recommanderais d'utiliser Let's Encrypt pour obtenir gratuitement un certificat signé par une autorité de certification reconnue, et l'installer sur la VM. N'oubliez pas de le configurer pour qu'il s'actualise automatiquement. Pour plus d'informations sur ce sujet, consultez les manuels en ligne de SQL Server sous les rubriques "Hiérarchie de cryptage" et "Utilisation du cryptage sans validation".
HTH
Si vous voyez ce message d'erreur lorsque vous essayez de vous connecter à l'aide de SQL Management Studio, ajoutez TrustServerCertificate = True pour les paramètres de connexion supplémentaires.
Si vous essayez d'y accéder via les connexions de données dans Visual Studio 2015 et obtenez l'erreur ci-dessus, cliquez sur Avancé et définissez TrustServerCertificate=True
.__ pour que l'erreur disparaisse.
La même chose peut être obtenue à partir du client ssms lui-même. Ouvrez simplement le fichier ssms, insérez le nom du serveur, puis, à partir des options situées sous l’en-tête des propriétés de connexion, assurez-vous que le certificat du serveur de confiance est coché.
J'ai eu ce problème lors de l'importation de données Excel dans une base de données SQL via SSMS. La solution consiste à sélectionner TrustServerCertificate = True dans la section Sécurité
Lorsque je le fais et que je saisis mes informations d'identification, l'erreur suivante apparaît:
La connexion a échoué pour l'utilisateur ''. (Microsoft SQL Server, erreur: 18456)
Au cas où cela aiderait quelqu'un d'autre, j'ai rencontré cette erreur en essayant d'exécuter le profileur, même si le certificat de serveur de confiance de ma connexion avait été vérifié et que j'avais ajouté TrustServerCertificate = True dans la section Advanced. J'ai changé pour une instance de SSMS s'exécutant en tant qu'administrateur et profileur démarré sans problème. (J'avais déjà constaté que lorsque ma connexion, même locale, prenait beaucoup de temps, je pouvais aussi exécuter en tant qu'administrateur).