Azure AD 用户无法连接到 Azure SQL 错误:18456,状态:1,类别:14

问题描述 投票:0回答:3

背景

用户在 Azure AD 和 Azure SQL 中定义。

  • [email protected]
    在 Azure AD 中定义并处于活动状态。我可以在 Azure 门户中使用该用户登录。
  • 我在 Azure SQL 数据库中使用“来自外部提供商”子句创建了一个 包含数据库用户,并将该用户添加到
    db_datareader
    系统角色。命令提交没有错误。我比较了 Azure AD 中的资产 ID 和数据库中的 SID,它们匹配。我尝试过不同的用户。
  • 我能够以分配给分配了“Active Directory 管理员”的 SQL 服务器的 AD 用户身份登录
  • SQL Server 用户也可以毫无问题地登录

SSMS 中登录测试

我已将默认数据库设置为我尝试登录的特定数据库(选项-连接到数据库)。

我尝试过不同的身份验证模式:

  • “Azure Active Directory – MFA 通用”和
  • “Azure Active Directory – 密码”

当我尝试使用 SSMS 登录时,我得到了

错误:18456,状态 1,类别 14。

当我查询

[sys].[event_log]
时,它会返回

[event_systype]= 4,[event_subtype_desc] = login_failed_for_user。

流程如下

  1. 我在 Azure AD 中定义了一个用户。 ([电子邮件受保护])

  2. 在我的 Azure SQL 数据库中,我设置了 Active Directory 管理员。

  3. 我已在 SSMS [email protected] 中创建了一个用户,语法如下:

     CREATE USER [[email protected]] FROM EXTERNAL PROVIDER;
    
  4. 我已使用以下语法将用户分配给

    db_datareader
    角色:

     ALTER ROLE db_datareader ADD MEMBER [[email protected]]
    
  5. 问题:当我尝试以

    [email protected]
    身份连接时,连接失败并收到此错误:

    用户登录失败 [电子邮件受保护]

    错误详情包含:

    错误号:18456,状态:1,类别:14

我试图在 learn.microsoft.com 上找到答案,在谷歌上搜索并找到了一些有用的资源,但没有一个能真正帮助我确定如何解决该问题。如果有人知道我做错了什么,请参考“流程遵循”我将永远感激不已:)

enter image description here

sql-server authentication azure-active-directory azure-sql-database
3个回答
0
投票

我通过解决方法解决了这个问题,设置了一个新的数据库。 我没有找到问题的原因,但它一定与数据库设置“DTU”-“基本”或我在不记得的情况下设法设置的某些设置有关。 无论如何,当我使用“DTU”-“标准”配置设置新数据库时,我的过程有效。


0
投票

这似乎是某种编码问题。在几乎放弃并使用不同的数据库之后,我尝试创建一个新的数据库,但是没有一些特殊字符。突然间,它起作用了。

如果您无法更改数据库的密码,您可以在另一个编辑器中编辑连接字符串,它也可以工作(记事本、VS代码等)。


0
投票

我们需要在安全->网络下设置防火墙设置,并为您的 IP 地址启用它可以解析错误号:18456,状态:1,类别:14

© www.soinside.com 2019 - 2024. All rights reserved.