web-dev-qa-db-fra.com

Comment déboguer "Échec de la connexion pour l'utilisateur" sur une base de données SQL Azure?

Voici le message d'erreur qui m'agace:

 enter image description here

Mon application Web semble avoir la chaîne de connexion correcte. C’est exactement ce que me fournit Azure lorsque je clique sur Afficher la chaîne de connexion:

Server=tcp:myservertest.database.windows.net,1433;Initial Catalog=MyDatabaseTest;Persist Security Info=False;User ID={your_username};Password={your_password};MultipleActiveResultSets=False;Encrypt=True;TrustServerCertificate=False;Connection Timeout=30;

Voici la chaîne de connexion que je mets dans le paramètre Connexion par défaut de Visual Studio Publish Settings:

Server=tcp:myservertest.database.windows.net,1433;Initial Catalog=MyDatabaseTest;Persist Security Info=False;User ID=*****;Password=***********;MultipleActiveResultSets=False;Encrypt=True;TrustServerCertificate=False;Connection Timeout=30;

 enter image description here

J'ai confirmé que le nom d'utilisateur et le mot de passe sont corrects ... J'ai utilisé les mêmes pour me connecter via Microsoft SQL Server Management Studio.

J'ai essayé de configurer les paramètres de diagnostic comme suit, mais je ne sais pas exactement où je peux trouver les journaux résultants. Je ne les vois pas dans les services Kudo, mais je crois qu'ils seraient accessibles ailleurs.

Est-ce que quelqu'un sait où ils sont stockés?

En outre, quels autres moyens ce Login a échoué pour l'utilisateur le message d'erreur a été débogué?

 enter image description here

4
Mark

L'erreur semble indiquer que vous pouvez vous connecter au serveur, mais le serveur refuse la connexion. Le débogage dans les journaux du serveur peut aider, vous cherchez donc le bon endroit. 

Vous pouvez activer la détection de traitement et d'audit de base de données Azure SQL. Vous pouvez l'activer au niveau de l'instance SQL Server en ouvrant votre ressource SQL Server et en sélectionnant Sécurité/Audit et détection de traitement. Sélectionnez un compte de stockage pour stocker les journaux dans les détails de stockage (voir l'image ci-dessous). Pour plus d'informations, voir https://docs.Microsoft.com/en-us/Azure/sql-database/sql-database-auditing .  Auditing & Treat Detection settings

Après avoir activé l'audit, essayez de vous connecter à votre base de données. Ensuite, vous pouvez trouver les journaux dans le compte de stockage Azure spécifié dans un conteneur d'objets blob nommé sqldbauditlogs . Les journaux se trouvent dans le dossier/nom_serveur/nom-base-de-données/SqlDbAuditing_ServerAudit_NoRetention/yyyy-mm-jj/dans des fichiers avec l'extension xel. Vous pouvez télécharger et ouvrir le fichier .xel dans SSMS (Fichier/Ouvrir/Fichier…). Le fichier xel contient des événements et vous pouvez y voir les tentatives de connexion. 

Le champ d'événement successed indique si la connexion a échoué ou non, et le champ server_principal_name contient le nom d'utilisateur dans les deux cas. Du texte dans le champ additional_information you peut trouver error_code (dans le xml). Le code d'erreur 40615 est bloqué par le pare-feu et le code 18456 est un nom d'utilisateur ou un mot de passe incorrect. (codes d'erreur de https://docs.Microsoft.com/en-us/Azure/sql-database/sql-database-develop-error-messages

Vous pouvez également trouver des informations dans les tables système de la base de données pour analyser les connexions, par exemple. sys.event_log (voir: https://docs.Microsoft.com/en-us/sql/relational-databases/system-catalog-views/sys-event-log-Azure-sql-database?view=azuresqldb- actuel ). 

Vous trouverez plus d'informations sur le dépannage de la connectivité de la base de données Azure SQL à l'adresse suivante: https://docs.Microsoft.com/en-us/Azure/sql-database/sql-database-troubleshoot-common-connection-issues

J'espère que cela vous aide à avancer avec le débogage de la connexion. 

5
Veikko

Vous avez vérifié que Allow access to Azure services est activé. C’est généralement là où on se fait tripoter. Si cela venait d'un endroit extérieur, nous voudrions vérifier la liste d'adresses IP ici. Sachant que ce n'est pas ça, creusons plus profondément.

Vous avez accédé à la console Kudu pour vérifier tout. À partir de cette console, installez mssql-cli . Exécutez pip install mssql-cli à partir de la console Kudu. Si cela ne fonctionne pas, recherchez URL directes curl ou téléchargez-le sur votre PC et utilisez la console Kudu Console pour télécharger le fichier sur votre service de l'application.

Une fois que vous avez installé mssql-cli, essayez de vous connecter avec les informations d'identification que vous avez définies dans appSettings.json. (Voir https://github.com/dbcli/mssql-cli/blob/master/doc/usage_guide.md#options pour les options de ligne de commande.) Très probablement, une erreur Nice sera commise message sur pourquoi il ne peut pas se connecter, vous donnant plus d'indices.

Si mssql-cli se connecte correctement, quelque chose remplace les paramètres de votre application. Avez-vous défini la chaîne de connexion dans l'onglet Paramètres de l'application du portail Azure? Temporairement, vous pouvez modifier votre application pour écrire des parties de la chaîne de connexion sur une page obscure. Et dès que vous aurez l'information, SUPPRIMEZ LA PAGE, puis changez le mot de passe .

Une autre chose à essayer: extrayez tous les détails de l'exception - y compris Data et de manière récursive via des exceptions internes. Il y a probablement un indice enfoui là-dedans. Vous pouvez déboguer à distance l'application sur Azure. Avant de pouvoir déboguer, vous devez vous assurer que vous avez activé le débogage à distance et sélectionné la version correcte de Visual Studio à partir du panneau Paramètres de l'application dans votre service d'application.

0
robrich

Continuez à partir du commentaire - Où se trouverait-on dans le Kudu? Justin dans l'explorateur général de fichiers?

Allez à Debug console > CMD - site > wwwroot - cliquez sur Edit icon

 enter image description here

Assurez-vous également que Allow access to Azure services est ON

 enter image description here

0
Win