sql-server - 仅与 Active Directory 建立连接...用户 '<token-identified principal>' 登录失败

标签 sql-server azure azure-active-directory azure-sql-database

我正在尝试为 Azure SQL 数据库启用 Active Directory 访问。但我遇到了一些先有鸡还是先有蛋的问题:

  • 在我的 SQL 数据库的属性选项卡上,Active Directory 管理员会显示我所属的 AD 用户组
  • 我无法登录。如果我尝试使用此 AD 用户连接到我的数据库,无论是通过查询编辑器(预览)选项卡还是通过 SSMS,我都会收到“用户''登录失败。
  • 如果我使用服务器管理员登录名或通过 SQL 帐户登录,我可以登录,但无法执行 CREATE USER myname FROM EXTERNAL PROVIDER。它返回“只有与 Active Directory 帐户建立的连接才能创建其他 Active Directory 用户

我是如何造成这种困惑的?

在 Azure 上,我已经有一个带有 SQL 数据库的 SQL Server。我可以使用我的 Active Directory 帐户登录该服务器。我有一个本地数据库,在 SSMS 中我选择“将数据库部署到 Microsoft Azue SQL 数据库...”并选择我现有的 SQL Server。

据我了解,AAD 需要了解 SQL 服务器,而不是每个单独的 SQL 数据库。如果我对主数据库进行时间点恢复,我还可以使用我的 AAD 帐户访问该数据库。当然,该数据库已经包含 Active Directory 用户组。

因此 Azure 认为我可以使用我的 AAD 帐户登录数据库, 但数据库本身不知道任何AAD帐户。 而且我只能在使用 AAD 帐户登录时在数据库中创建 AAD 帐户。

如何在不使用 Active Directory 帐户登录的情况下在数据库中创建 Active Directory 帐户?

最佳答案

如何在不使用 Active Directory 帐户登录的情况下在数据库中创建 Active Directory 帐户?

不,我们不能。在Azure SQL数据库中,您需要首先为SQL Server配置Azure AD管理员,然后使用AAD管理员帐户登录数据库以创建AAD用户。 enter image description here

我想你已经配置好了。正如您所说,您可以使用 AAD 帐户登录。这是 Azure AD 管理员帐户。具有访问所有数据库的权限。

重要:

  • 要创建映射到 Azure AD 身份的包含用户,您必须 使用作为管理员的 Azure AD 帐户登录 Azure SQL 数据库中的数据库。在 SQL 托管实例中,SQL 登录 具有 sysadmin 权限的用户还可以创建 Azure AD 登录名或用户。

引用此处:Authorize database access to SQL Database, SQL Managed Instance, and Azure Synapse Analytics

关于sql-server - 仅与 Active Directory 建立连接...用户 '<token-identified principal>' 登录失败,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/65013153/

相关文章:

c# - IdentityServer4 和 Azure AD 在登录页面上自动选择用户

json - 在 SQL Server 中连接或合并两个 json 对象

sql - INSERT INTO 存储过程的输出

sql - 是否可以在选择查询结果中包含表名

azure - Power BI 不支持 DocumentDB 分区集合吗?

c# - 如何将 Azure AD 身份验证添加到现有 .net 网站

SQL查询将所有记录分成70 :30 ratio based on 3 criteria

azure - 使用 ansible 获取虚拟机事实

azure - 我可以在 azure 中缓存我的表存储调用吗?

c# - Azure Active Directory 抛出 "Not implemented"用于 api 管理灾难恢复