Sql server Azure AD用户无法连接到Azure SQL错误:18456,状态:1,类别:14
背景 用户在Azure AD和Azure SQL中定义Sql server Azure AD用户无法连接到Azure SQL错误:18456,状态:1,类别:14,sql-server,authentication,azure-active-directory,azure-sql-database,Sql Server,Authentication,Azure Active Directory,Azure Sql Database,背景 用户在Azure AD和Azure SQL中定义 测试。user@company.com已在Azure AD中定义并处于活动状态。我可以使用此用户在Azure门户中登录 我在Azure SQL数据库中创建了一个包含“来自外部提供者”子句的数据库用户,并将该用户添加到db\u datareader系统角色。命令提交时没有错误。我比较了Azure AD中的资产ID和数据库中的SID,它们匹配。我尝试了不同的用户 我可以作为分配给SQL Server的AD用户登录分配给“Active Dire
已在Azure AD中定义并处于活动状态。我可以使用此用户在Azure门户中登录测试。user@company.com
- 我在Azure SQL数据库中创建了一个包含“来自外部提供者”子句的数据库用户,并将该用户添加到
系统角色。命令提交时没有错误。我比较了Azure AD中的资产ID和数据库中的SID,它们匹配。我尝试了不同的用户db\u datareader
- 我可以作为分配给SQL Server的AD用户登录分配给“Active Directory管理员”
- SQL Server用户也可以毫无问题地登录
- “Azure Active Directory–具有MFA的通用”和
- “Azure Active Directory–密码”
[sys].[event\u log]
时,它返回
[事件\u系统类型]=4,[事件\u子类型\u描述]=用户登录\u失败\u
遵循流程
CREATE USER [test.user@company.com] FROM EXTERNAL PROVIDER;
ALTER ROLE db_datareader ADD MEMBER [test.user@company.com]
db_datareader
角色:
CREATE USER [test.user@company.com] FROM EXTERNAL PROVIDER;
ALTER ROLE db_datareader ADD MEMBER [test.user@company.com]
test时。user@company.com
,连接失败,出现以下错误:
用户测试登录失败。user@company.com
错误的详细信息包括:
错误号:18456,状态:1,类别:14
我通过一个变通办法解决了这个问题,建立了一个新的数据库。 我没有找到问题的原因,但它一定与数据库设置“DTU”-“基本”或一些我不记得就设法设置的设置有关。
无论如何,当我用“DTU”-“标准”配置设置一个新数据库时,我的过程就起作用了。我通过一个变通方法解决了这个问题,设置了一个新的数据库。 我没有找到问题的原因,但它一定与数据库设置“DTU”-“基本”或一些我不记得就设法设置的设置有关。
无论如何,当我使用“DTU”-“标准”配置设置新数据库时,我的过程可以正常工作。是否授予连接到测试。user@company.com;代码>工作?@JosephXu谢谢,但是没有,它没有工作。@AtleRøen是你创建了用户
测试的。user@company.com
使用AD管理员帐户?@LeonYue是的,我从Azure CLI(可能是云shell)中删除了,请确保您可以为该帐户生成访问令牌。例如az登录
然后az帐户获取访问令牌——资源'https://database.windows.net/“
。如果可以,则将该AccessToken与System.Data.SqlClient.SqlConnection一起使用,这是SSMS将尝试的。user@company.com;代码>工作?@JosephXu谢谢,但是没有,它没有工作。@AtleRøen是你创建了用户测试的。user@company.com
使用AD管理员帐户?@LeonYue是的,我从Azure CLI(可能是云shell)中删除了,请确保您可以为该帐户生成访问令牌。例如az登录
然后az帐户获取访问令牌——资源'https://database.windows.net/“
。如果可以,则将该AccessToken与System.Data.SqlClient.SqlConnection一起使用,这是SSMS将尝试的。