代码之家  ›  专栏  ›  技术社区  ›  jlo-gmail

azure sql中的活动目录(ad)身份验证不起作用

  •  2
  • jlo-gmail  · 技术社区  · 6 年前

    我正在尝试使azure ad身份验证对我的azure sql数据库起作用。

    • 我创建了一个paas数据库,它与paas sql server相关联。
    • 我将我的azure ad帐户分配为“paas sql server”的“active directory admin”。

    接下来,我使用我的域帐户登录到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
    

    当我尝试使用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
    

    我错过了什么?

    奇怪的是,如果我故意使用错误的密码,我将返回此错误: aadsts70002:验证凭据时出错。aadsts50126:无效的用户名或密码 ,这说明广告在某种程度上是有效的,但在整个过程中有些东西被破坏了。

    另一个奇怪的观察: 如果我添加了有效的广告帐户,则成功

    CREATE USER [xxx@yyy.com] FROM EXTERNAL PROVIDER; 
    

    如果我生成一个坏广告帐户

    CREATE USER [xxxABC@yyy.com] FROM EXTERNAL PROVIDER; 
    

    我回来了:

    Principal 'xxxABC@yyy.com' could not be found or this principal type is not supported.
    
    1 回复  |  直到 6 年前
        1
  •  2
  •   jlo-gmail    6 年前

    从一个“相似的职位”

    如果未指定要连接的数据库,则会发生匿名登录错误。 只需在SSMS登录屏幕上选择“选项”,然后键入要连接到的数据库名称。这是因为您的用户是在其中创建的数据库中包含的用户。它不存在于大师身上。–Greg Grater 3月7日1:23

    这解决了我的问题——浪费了几个小时!!!

    注意:对于odbc连接,用户也必须在master中创建