Примечание.
Для доступа к этой странице требуется авторизация. Вы можете попробовать войти или изменить каталоги.
Для доступа к этой странице требуется авторизация. Вы можете попробовать изменить каталоги.
Применимо к: SQL Server 2025 (17.x)
- SQL Server 2022
- SQL Server 2025
База данных SQL Azure & Управляемый экземпляр SQL Azure - SQL Server на Azure виртуальных машинах
В этой статье предоставляются пошаговые инструкции по установке и конфигурированию управляемого удостоверения Microsoft Entra ID для SQL Server, работающего под управлением Azure Arc.
Для получения общей информации об управляемой идентификации в SQL Server см. раздел Managed identity for SQL Server enabled by Azure Arc.
Предпосылки
Прежде чем использовать управляемое удостоверение с SQL Server, активированным с помощью Azure Arc, убедитесь, что выполнены следующие предпосылки:
- Поддерживается для SQL Server 2025 и более поздних версий, работающих на Windows.
- Connect your SQL Server to Azure Arc.
- Последняя версия расширения Azure для SQL Server.
Включите основное управляемое удостоверение
Если вы установили расширение Azure для SQL Server на сервере, вы можете включить основное управляемое удостоверение для экземпляра SQL Server непосредственно на портале Azure. Кроме того, можно включить основное управляемое удостоверение вручную, обновив реестр, но следует сделать с крайней осторожностью.
Чтобы включить основное управляемое удостоверение на портале Azure, выполните следующие действия.
Перейдите к ресурсу SQL Server, управляемому Azure Arc в портале Azure.
В разделе Settings выберите Microsoft Entra ID и Purview, чтобы открыть страницу Microsoft Entra ID и Purview.
Замечание
Если вы не видите параметр Включить проверку подлинности Microsoft Entra ID, убедитесь, что ваш экземпляр SQL Server подключен к Azure Arc и установлено последнее расширение SQL.
На странице Microsoft Entra ID и Purview установите флажок рядом с Использовать основное управляемое удостоверение затем используйте Save для применения конфигурации:
Предоставление разрешений удостоверению личности
Это важно
Эти разрешения могут предоставлять только администратор привилегированных ролей или более поздней роли.
Чтобы включить проверку подлинности Microsoft Entra для экземпляров SQL Server, каждому управляемому удостоверению, назначенному системой, требуются разрешения User.Read.All, GroupMember.Read.All и Application.Read.All для выполнения запросов к Microsoft Graph. Дополнительные сведения об этих разрешениях см. в следующих статье:
- User.Read.All: разрешает доступ к Microsoft Entra сведениям о пользователе.
- GroupMember.Read.All: разрешает доступ к сведениям о группе Microsoft Entra.
- Application.Read.All: разрешает доступ к сведениям Microsoft Entra сервисного принципала (приложения).
Эти разрешения являются разрешениями на уровне приложения (роли приложения) и должны назначаться напрямую каждому управляемому удостоверению. Они не могут быть вручную назначены группе безопасности Microsoft Entra и не могут быть предоставлены участникам через членство в этой группе. Для сред с большим количеством компьютеров можно назначить роль Directory Readers назначаемой группе безопасности Microsoft Entra и добавить управляемые удостоверения в эту группу в качестве членов. В отличие от разрешений для ролей приложений, роль Microsoft Entra может быть предоставлена на уровне группы, упрощая управление в крупном масштабе. Однако Directory Read предоставляет широкий доступ на чтение для всех объектов каталога, что значительно превышает три целевых разрешения API Graph. Роль "Читатели каталогов " не рекомендуется использовать для рабочих сред, где требуется минимальный доступ.
Следующий скрипт PowerShell предоставляет необходимые разрешения управляемому удостоверению. Убедитесь, что этот скрипт запущен в PowerShell 7.5 или более поздней версии и установлен модуль Майкрософт.Graph модуль 2.28 или более поздней версии.
# Set your Azure tenant and managed identity name
$tenantID = '<Enter-Your-Azure-Tenant-Id>'
$managedIdentityName = '<Enter-Your-Arc-HostMachine-Name>'
# Connect to Microsoft Graph
try {
Connect-MgGraph -TenantId $tenantID -ErrorAction Stop
Write-Output "Connected to Microsoft Graph successfully."
}
catch {
Write-Error "Failed to connect to Microsoft Graph: $_"
return
}
# Get Microsoft Graph service principal
$graphAppId = '00000003-0000-0000-c000-000000000000'
$graphSP = Get-MgServicePrincipal -Filter "appId eq '$graphAppId'"
if (-not $graphSP) {
Write-Error "Microsoft Graph service principal not found."
return
}
# Get the managed identity service principal
$managedIdentity = Get-MgServicePrincipal -Filter "displayName eq '$managedIdentityName'"
if (-not $managedIdentity) {
Write-Error "Managed identity '$managedIdentityName' not found."
return
}
# Define roles to assign
$requiredRoles = @(
"User.Read.All",
"GroupMember.Read.All",
"Application.Read.All"
)
# Assign roles using scoped syntax
foreach ($roleValue in $requiredRoles) {
$appRole = $graphSP.AppRoles | Where-Object {
$_.Value -eq $roleValue -and $_.AllowedMemberTypes -contains "Application"
}
if ($appRole) {
try {
New-MgServicePrincipalAppRoleAssignment -ServicePrincipalId $managedIdentity.Id `
-PrincipalId $managedIdentity.Id `
-ResourceId $graphSP.Id `
-AppRoleId $appRole.Id `
-ErrorAction Stop
Write-Output "Successfully assigned role '$roleValue' to '$managedIdentityName'."
}
catch {
Write-Warning "Failed to assign role '$roleValue': $_"
}
}
else {
Write-Warning "Role '$roleValue' not found in Microsoft Graph AppRoles."
}
}
Создание имен для входа и пользователей
Выполните действия, описанные в руководстве Microsoft Entra для создания имен входа и пользователей для управляемого удостоверения.