我正在尝试让 Azure AD 身份验证针对我的 Azure SQL 数据库工作。
- 我创建了一个 PaaS 数据库及其关联的 PaaS Sql Server。
- 我将我的 Azure AD 帐户分配为“PaaS Sql Server”的“Active Directory 管理员”。
接下来,我使用我的域帐户登录 SSMS 来创建用户:
CREATE USER [[email protected] /cdn-cgi/l/email-protection] FROM EXTERNAL PROVIDER;
GO
sp_addrolemember db_datareader, [[email protected] /cdn-cgi/l/email-protection];
GO
sp_addrolemember
db_datawriter, [[email protected] /cdn-cgi/l/email-protection];
GO
当我尝试使用以下方式登录时[电子邮件受保护] /cdn-cgi/l/email-protection帐户,我返回:
Login failed for user 'NT AUTHORITY\ANONYMOUS LOGON'. (.Net SqlClient Data Provider)
Server Name: zzzzz.database.windows.net
Error Number: 18456
Severity: 14
State: 1
Line Number: 65536
我缺少什么?
奇怪的观察,如果我故意使用错误的密码,我会收到此错误:AADSTS70002:验证凭据时出错。 AADSTS50126:用户名或密码无效,这表明 AD 正在以某种方式工作,但整个过程中有些东西被破坏了。
另一个奇怪的观察:
如果我添加有效的 AD 帐户,则成功
CREATE USER [[email protected] /cdn-cgi/l/email-protection] FROM EXTERNAL PROVIDER;
如果我生成了一个错误的 AD 帐户
CREATE USER [[email protected] /cdn-cgi/l/email-protection] FROM EXTERNAL PROVIDER;
我回来了:
Principal '[email protected] /cdn-cgi/l/email-protection' could not be found or this principal type is not supported.