当我的用户的 Entra 组之一具有 db_ddladmin、db_datareader 和 db_datawriter 角色时,为什么他们无法在 Azure SQL 中创建架构?

问题描述 投票:0回答:1

我不确定我在这里做错了什么,但是当用户尝试创建架构时

CREATE SCHEMA [TEST]

他们收到以下错误:-

Failed to execute query. Error: The user attempting to perform this operation does not have permission as it is currently logged in as a member of an Azure Active Directory (AAD) group but does not have an associated database user account. A user account is necessary when creating an object to assign ownership of that object. To resolve this error, either create an Azure AD user from external provider, or alter the AAD group to assign the DEFAULT_SCHEMA as dbo, then rerun the statement.

组主体在数据库中创建,具有正确的角色并具有 dbo 的默认架构 数据库证明

我的用户在群组内 证明我在Entra组

更新

select SCHEMA_NAME()

与 dbo 一起回来

将我的脚本更改为

CREATE SCHEMA [Test] AUTHORIZATION [dbo]

导致同样的错误

我已向主体添加了创建模式的显式权限,并且也得到了相同的错误 权限表

azure-active-directory permissions azure-sql-database azure-entra-id
1个回答
0
投票

根据doc

当没有数据库用户帐户的用户在未指定现有架构的情况下创建对象时,将在数据库中自动为该用户创建数据库主体和默认架构。创建的数据库主体和架构的名称将与用户连接到 SQL Server 时使用的名称相同(SQL Server 身份验证登录名或 Windows 用户名)。

根据错误,您需要为 Azure Entra id 显式创建用户,然后需要在数据库中创建一个对象。

CREATE USER [[email protected]] FROM EXTERNAL PROVIDER;

或者您可以在创建 Entra 组用户时将默认架构添加为

dbo
,或者您可以更改用户。

CREATE USER [Entragroup] FROM EXTERNAL PROVIDER WITH DEFAULT_SCHEMA = dbo;
© www.soinside.com 2019 - 2024. All rights reserved.