如何在Azure SQL数据库上调试"用户登录失败"?

Mar*_*ark 4 azure azure-sql-database

这是困扰我的错误消息:

在此输入图像描述

我的Web应用程序似乎有正确的连接字符串.当我单击Show Connection String时,这正是Azure为我提供的:

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;
Run Code Online (Sandbox Code Playgroud)

这是我在Visual Studio发布设置默认连接设置中放置的连接字符串:

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;
Run Code Online (Sandbox Code Playgroud)

在此输入图像描述

我已经确认用户名和密码是正确的...我使用相同的用户名和密码通过Microsoft SQL Server Management Studio进行连接.

我尝试按如下方式设置诊断设置,但我不确定在哪里可以找到生成的日志.我没有在Kudo服务中看到它们,但我相信它们会被其他地方访问.

有谁知道它们存放在哪里?

此外,调试此登录失败的用户错误消息的其他方式是什么?

在此输入图像描述

Vei*_*kko 6

该错误看起来像您可以连接到服务器但服务器拒绝登录.在服务器日志中进行调试会有所帮助,因此您正在查找正确的位置.

您可以启用Azure SQL数据库审核和处理检测.您可以通过打开SQL Server资源并选择Security/Auditing&Treat Detection来在SQL Server实例级别上启用它.选择存储帐户以将日志存储在存储详细信息中(参见下图).有关更多信息,请参阅https://docs.microsoft.com/en-us/azure/sql-database/sql-database-auditing. 审核和处理检测设置

启用审核后尝试登录到您的数据库.之后,您可以在名为sqldbauditlogs的 blob容器中的指定Azure存储帐户中找到日志.日志位于文件夹/ servername/databasename/SqlDbAuditing_ServerAudit_NoRetention/yyyy-mm-dd /中,带有xel扩展名的文件.您可以在SSMS(文件/打开/文件...)中下载并打开.xel文件.xel文件包含事件,您可以在那里看到登录尝试.

事件字段成功告知登录是否失败,字段server_principal_name在两种情况下都包含用户名.从字段additional_information中的文本中,您可以找到error_code(在xml中).防火墙阻止了错误代码40615,代码18456的用户名或密码错误.(错误代码来自https://docs.microsoft.com/en-us/azure/sql-database/sql-database-develop-error-messages)

您还可以在数据库系统表中找到用于分析连接的一些信息,例如sys.event_log(请参阅:https://docs.microsoft.com/en-us/sql/relational-databases/system-catalog-views/sys -event-log-azure-sql-database?view = azuresqldb-current).

有关Azure SQL数据库连接故障排除的更多信息,请访问:https://docs.microsoft.com/en-us/azure/sql-database/sql-database-troubleshoot-common-connection-issues.

我希望这有助于您调试连接.