Azure CLI az sql server ad-admin create
не будет вызывать Azure AD Graph для проверки переданных вами параметров, он просто вызывает REST API Server Azure AD Administrators - Create Or Update
для установки администратора. Даже если вы неправильно передадите --display-name
и --object-id
(также должны иметь формат Guid
), команда также будет работать нормально. Вы можете проверить детали с помощью параметра --debug
.
![enter image description here](https://i.stack.imgur.com/ycIUP.png)
Azure powershell Set-AzSqlServerActiveDirectoryAdministrator
вызовет Azure AD Graph getObjectsByObjectIds: Get objects from a list of object IDs
для проверки правильности объекта. И если тип результата не Azure AD security group
, он будет вызывать Get a user
. Поэтому, если тип результата является принципалом службы, он также вызовет Get a user
, тогда это вызовет проблему. Вы можете использовать инструмент Fiddler, чтобы поймать reuqest, как показано ниже.
![enter image description here](https://i.stack.imgur.com/MvhiB.png)
![enter image description here](https://i.stack.imgur.com/xWfmM.png)
Итак, если вы хотите использовать Set-AzSqlServerActiveDirectoryAdministrator
, вы можете создать a security group
(не офисная группа) в Azure AD, добавьте участника службы в группу, затем добавьте группу к администратору сервера sql, как указано в ответе @ alphaz18.
$sp = Get-AzADServicePrincipal -ObjectId "<object-id>"
$group = Get-AzADGroup -DisplayName "joysec"
Add-AzADGroupMember -TargetGroupObjectId $group.Id -MemberObjectId $sp.Id
Set-AzSqlServerActiveDirectoryAdministrator -ResourceGroupName "<groupname>" -ServerName "<servername>" -DisplayName $group.DisplayName -ObjectId $group.Id
Примечание : чтобы запустить приведенный выше сценарий, вам необходимо предоставить Directory.ReadWrite.All
разрешение приложения из Azure Active Directory Graph
(не Microsoft Graph
) для вашего приложения AD, и есть некоторые задержка, подождите немного и проверьте. ![enter image description here](https://i.stack.imgur.com/Ex7UA.png)
![enter image description here](https://i.stack.imgur.com/LxNHg.png)