jlo*_*ail 5 azure azure-active-directory azure-sql-database
我正在尝试针对我的 Azure SQL 数据库使用 Azure AD 身份验证。
接下来,我使用我的域帐户登录到 SSMS 以创建用户:
CREATE USER [xxx@yyy.com] FROM EXTERNAL PROVIDER;
GO
sp_addrolemember db_datareader, [xxx@yyy.com];
GO
sp_addrolemember
db_datawriter, [xxx@yyy.com];
GO
Run Code Online (Sandbox Code Playgroud)
当我尝试使用 xxxxx@yyy.com 帐户登录时,我返回:
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
Run Code Online (Sandbox Code Playgroud)
我错过了什么?
奇怪的观察,如果我故意使用错误的密码,我会返回此错误: AADSTS70002:验证凭据时出错。AADSTS50126:无效的用户名或密码,表明 AD 以某种方式工作,但在整个过程中出现了某些问题。
另一个奇怪的观察:如果我添加一个有效的 AD 帐户,它会成功
CREATE USER [xxx@yyy.com] FROM EXTERNAL PROVIDER;
Run Code Online (Sandbox Code Playgroud)
如果我生成了一个错误的 AD 帐户
CREATE USER [xxxABC@yyy.com] FROM EXTERNAL PROVIDER;
Run Code Online (Sandbox Code Playgroud)
我回来了:
Principal 'xxxABC@yyy.com' could not be found or this principal type is not supported.
Run Code Online (Sandbox Code Playgroud)
来自“类似的帖子”
\n\n当您未指定要连接的数据库时,会发生匿名登录错误。只需在 SSMS 登录屏幕上选择“选项”,然后输入要连接的数据库名称。这是因为您的用户是创建它的数据库中的包含用户。它在 Master 上不存在。\xe2\x80\x93 格雷格刨丝器 2017 年 3 月 7 日 1:23
\n\n这解决了我的问题——浪费了几个小时!
\n\n注意:对于 ODBC 连接,还必须在 master 中创建用户
\n| 归档时间: |
|
| 查看次数: |
1159 次 |
| 最近记录: |