作为Azure SQL数据库自动化解决方案的一部分,我试图使用服务主体创建Azure SQL数据库用户mapped to Azure AD Identities。
结果是一条错误消息,提示:当前找不到主体'AAD_User_UPN_or_Group_Name'。请稍后重试。
可以使用我自己的用户帐户创建数据库用户,遵循完全相同的过程。
请在下面找到更多详细信息:
服务主体在Azure SQL数据库中执行以下T-SQL语句:
CREATE USER [AAD_User_UPN_or_Group_Name] FROM EXTERNAL PROVIDER;
返回的错误消息是:
Principal 'AAD_User_UPN_or_Group_Name' could not be found at this time. Please try again later.
当我自己的用户帐户触发相同的T-SQL语句时,该语句成功运行并创建了用户。
我们非常感谢您的帮助或建议。
答案 0 :(得分:1)
我在Azure支持下打开了一张票,他们给了我这个解决方案。
sql语句必须为:
create user [myAADGroupName] with sid = <sid>, type = X; -- type X for AAD Group
create user [myAADUserName] with sid = <sid>, type = E; -- type E for AAD User
需要从AAD主体ObjectID生成sid。这是一个生成sid值的powershell脚本:
param (
[string]$objectId
)
[guid]$guid = [System.Guid]::Parse($objectId)
foreach ($byte in $guid.ToByteArray())
{
$byteGuid += [System.String]::Format("{0:X2}", $byte)
}
return "0x" + $byteGuid