Azure SQL 登录被拒绝,错误 18456 状态 113

Azure SQL Login Denied, error 18456 state 113

我们有一个 Azure SQL 服务器。我们无法从我们 Azure 订阅中的某些机器连接到我们的 SQL 服务器,但从其他机器上没问题。在 Azure 之外的机器上,我们完全没有问题。

抛出的错误是

Login failed for user 'SQLAdminUser'

并且 SQL 日志本身显示:

<login_information><error_code>18456</error_code><error_state>113</error_state></login_information>

复制非常简单。在受影响的机器上,在 Powershell 中执行:

$sqlConnection = New-Object System.Data.SqlClient.SqlConnection  "Server=tcp:ourdb-sql.database.windows.net,1433;Initial Catalog=SitesEE;Persist Security Info=False;User ID=SQLAdminUser;Password=[password]"
$sqlConnection.Open()

Exception calling "Open" with "0" argument(s): "Login failed for user 'SQLAdminUser'."

我没有看到记录的错误 113 anywhere on the official documentation。我假设它以某种方式与虚拟机有关,因为其他机器可以毫无问题地执行该代码。

在与 Microsoft 进行支持通话后,他们确认错误 113 是连接 IP 地址的临时防火墙禁令。

我们有一个配置了无效密码的进程,它尝试了足够多的错误,以至于 IP 地址被列入了黑名单。它一直在重试,所以它一直在禁令名单上。因此也禁止使用该出站 IP 地址的每个 VM。

修复错误的进程在几分钟内清除了禁令。

在此处记录,希望它可以让其他人免去打开支持票以查找应该是 public 文档的麻烦。