在 SSMS 中,当使用服务帐户和 SQL 服务器身份验证连接到我们的任何 Azure SQL 数据库时,连接本身可能需要 10 到 15 秒才能建立。
连接后,右键单击任何表并单击“选择前 1000 行”,这也需要 10 到 15 秒来响应并在 SSMS 中显示行。
使用“Active Directory - Universal with MFA Supprt”身份验证时不会发生这种延迟/延迟 - 但是,这不是使用相同的服务帐户。
如何解决/调查 SQL Server 身份验证滞后?
在 SSMS 中,当使用服务帐户和 SQL 服务器身份验证连接到我们的任何 Azure SQL 数据库时,连接本身可能需要 10 到 15 秒才能建立。
连接后,右键单击任何表并单击“选择前 1000 行”,这也需要 10 到 15 秒来响应并在 SSMS 中显示行。
使用“Active Directory - Universal with MFA Supprt”身份验证时不会发生这种延迟/延迟 - 但是,这不是使用相同的服务帐户。
如何解决/调查 SQL Server 身份验证滞后?
这是微软对此问题的解释:
https://techcommunity.microsoft.com/t5/azure-database-support-blog/lesson-learned-132-delays-connecting-to-azure-sql-database-from/ba-p/1502030
它们描述了两种类型的经过身份验证的用户。具有实例 LOGIN 的实例和只能访问单个数据库的实例(“包含”数据库用户)。
SSMS 连接速度慢的问题仅影响第一种类型的身份验证(当他们有权访问数据库但无权访问“主”数据库时的登录实例)。如果您能够切换到“包含”数据库用户,那么您可以完全避免该问题。
我想我想通了。SSMS 似乎正在尝试与“主”数据库交互,即使这不是正在连接的数据库。我怀疑它正在悄悄地失败/重试 - 最终结果是我们经历的缓慢(......即使实际上没有向我们报告错误消息)。
有官方文档解释了如何在通过 SSMS 连接时更改所选数据库。您可以这样做以连接到“master”以外的东西。请参阅此处: https ://learn.microsoft.com/en-us/azure/azure-sql/database/troubleshoot-common-errors-issues
虽然所选数据库的更改在技术上确实解决了连接问题,但仍然会出现缓慢。这似乎与您的数据库用户仍然没有对“主”数据库的完全访问权限有关。
解决方法:使用 sql server 管理员连接到“master”数据库。然后运行以下。
完成此操作后,您的 sql-problem-user 将能够更快地连接到您想要连接的原始数据库。(它现在也可以连接到“master”)。希望这很清楚。一旦我发现了这一点,我就能找到很久以前使用过这种方法的其他人。请参阅https://stackoverflow.com/questions/29561876/azure-sql-database-slow
我正在使用 SSMS v18.5 (15.0.18330.0)。
我还注意到 Azure Data Studio 从未遇到过这种连接延迟。因此,也许有些人可以考虑迁移到该工具。我怀疑这是微软认为将取代 SSMS 的工具。
使用任何版本的 SSMS 并连接到 azure sql database.windows.net 时,我遇到了同样的问题
解决方案 - 转到选项>>并选择连接属性选项卡...