Sti*_*kys 2 azure azure-active-directory azure-sql-database azure-elasticpool
问题:我尝试将Active Directory 用户和组(从本地同步到 Azure AD)添加到同一租户中 Azure 上 SQL 弹性池中存在的 SQL 数据库。我不想使用 SQL Server 身份验证(集成)。我似乎无法使用 AD 帐户(必需)登录来添加其他 AD 帐户。
本地目录已同步到 Azure AD。租户已配置并使用 O365 电子邮件,现在我们的弹性池中的租户中存在多个 SQL 数据库。
注意:这不是托管 SQL 实例。当我直接管理弹性池或数据库时,我没有可用的菜单选项Active Directory 管理,如此处所述。
我的 AD 管理员帐户已作为所有者添加到弹性池访问控制 (IAM)。
使用SSMS连接到云中的数据库,可以使用SQL Server身份验证连接到数据库。当我尝试时,CREATE USER [username@mytenant.com] FROM EXTERNAL PROVIDER收到错误无法创建主体“username@mytenant.com”。只有与 Active Directory 帐户建立的连接才能创建其他 Active Directory 用户。
此处也概述了其原因是“不基于 Azure AD 帐户(包括 Azure SQL Server 管理员帐户)的用户无法创建基于 Azure AD 的用户,因为他们无权验证建议的数据库用户与 Azure AD 一起。 ”
再次使用 SSMS 并以用户名@mytenant.com 的身份与 Active Directory - 具有 MFA 支持的通用连接,在尝试登录时,我收到错误“用户‘NT AUTHORITY\ANONYMOUS LOGON’登录失败”。(微软 SQL Server,错误:18456)。当我将连接到数据库配置为 DBName 并将AD 域名或租户 ID 配置为 mytenant.onmicrosoft.com时,结果相同。即使使用我们在设置环境时创建的初始租户管理员帐户,我也会得到相同的结果。
所以我最后的问题是:如何添加从本地同步到 Azure SQL 数据库(或弹性池)的 AD 用户,以便我可以使用该用户登录并开始向数据库添加其他 AD 用户?
我显然错过了一些基本的东西,只需要一个正确方向的点。感谢您提供的任何帮助。
首先为池创建一个 Active Directory 管理员。
\n\n您还可以从 CLI 执行此操作:
\n\n> az sql server ad-admin create --object-id <Object-Id-OfUserOrGroup>\n -s <Database-Name>\n -g <Resource-Group>\n -u <NameOrEmailAkaDisplayName>\nRun Code Online (Sandbox Code Playgroud)\n\n现在,您应该能够通过 SSMS 使用 AD 管理员登录信息登录到弹性池中的数据库。在这种情况下,您可以通过 \xe2\x80\x9cActive Directory 密码身份验证\xe2\x80\x9d 登录,但也可以使用 \xe2\x80\x9c 通用身份验证\xe2\x80\x9d 或 \xe2\x80\x9c 集成身份验证\xe2\x80\x9d。
\n\n一旦您\xe2\x80\x99 以 AD 管理员身份登录,您就可以创建与 AD 组相对应的新 SQL Server 用户。请考虑我\xe2\x80\x99ve已经创建了一个名为\xe2\x80\x9cSQL Developers\xe2\x80\x9d的AD组,因此我可以将其映射到Azure SQL Server数据库并将其添加到db_datareader固定角色,如下所示:
\n\nCREATE USER [SQL Developers] FROM EXTERNAL PROVIDER \nALTER ROLE db_datareader ADD MEMBER [SQL Developers]\nRun Code Online (Sandbox Code Playgroud)\n
| 归档时间: |
|
| 查看次数: |
4313 次 |
| 最近记录: |