首页 > 解决方案 > SQL 服务器和 Azure 活动目录 - 创建新包含的 azure 广告来宾用户

问题描述

我正在尝试创建与 azure 活动目录集成的数据库用户。我们所有的用户都是访客用户。我一直在关注多篇关于如何在 SQL 数据库中创建用户的文章,但都没有奏效。

例如这篇文章:https ://www.mssqltips.com/sqlservertip/5242/adding-users-to-azure-sql-databases/

建议像这样创建用户:

CREATE USER [name@domain.com] 
FROM EXTERNAL PROVIDER 
WITH DEFAULT_SCHEMA = dbo; 

这会产生错误:

Principal 'name@domain.comm' could not be found or this principal type is not supported.

谷歌搜索这个错误让我在stackoverflow帖子(https://dba.stackexchange.com/questions/148325/add-active-directory-user-for-azure-sql-db):

这表明:

CREATE USER [name_domain.com#EXT#@<yourAzureSubscriptionPrefix>.onmicrosoft.com] FROM EXTERNAL PROVIDER

并访问:

EXEC sp_addrolemember 'db_datareader',  'name_domain.com#EXT#@<yourAzureSubscriptionPrefix>.onmicrosoft.com'
EXEC sp_addrolemember 'db_datawriter',  'name_domain.com#EXT#@<yourAzureSubscriptionPrefix>.onmicrosoft.com'

这不会给出错误,但它也不提供对数据库的访问。由于我收到错误 NT AUTHORITY/ANONYMOUS LOGIN

我还尝试创建一个 AAD 组并提供该组访问权限,这里也没有错误,但也无法登录。

几点注意事项:

  1. 防火墙上允许所有 IP 地址
  2. 所有用户都已添加到 sql db IAM 中(不确定这是否有必要)
  3. 我已经在 sql server 中启用了 Active Directory Admin,我把订阅管理员放在这里
  4. 这也是我在 SQL DB 中创建用户的用户
  5. 我能够毫无问题地创建本机 sql 用户

我仍然只能使用 Active Directory Admin 登录,其他用户无法登录。

关于如何使用 Azure Active Directory 中的 Windows 凭据登录到我的 Azure sql 数据库的任何建议?

标签: sql-serverazureauthenticationazure-active-directory

解决方案


使用外部用户时,添加时需要使用“损坏的用户主体名称”。就是这个:

CREATE USER [name_domain.com#EXT#@<your-azure-ad-default-domain>.onmicrosoft.com] FROM EXTERNAL PROVIDER

其次,用户将仅在该数据库中创建;他们无法连接到master. 所以你需要选择要连接的数据库。

您可能还需要在高级连接设置中指定 AAD 租户 ID。您可能需要这样做的原因是,默认情况下,外部用户将登录到他们的主租户。哪个不是连接到您的数据库的那个。因此,您可能需要指定租户以让他们显式登录您的租户。


推荐阅读