적용 대상: SQL Server 2025(17.x)
이 문서에서는 Azure Arc에서 사용하도록 설정된 SQL Server에 대한 Microsoft Entra ID 관리 ID를 설정하고 구성하기 위한 단계별 지침을 제공합니다.
SQL Server의 관리 ID에 대한 개요는 Azure Arc에서 사용하도록 설정된 SQL Server에 대한 관리 ID를 참조하세요.
필수 조건
Azure Arc에서 사용하도록 설정된 SQL Server에서 관리 ID를 사용하려면 다음 필수 구성 요소를 충족하는지 확인합니다.
- Windows에서 실행되는 SQL Server 2025 이상에서 지원됩니다.
- SQL Server를 Azure Arc에 연결합니다.
- SQL Server용 Azure 확장의 최신 버전입니다.
기본 관리 ID 사용
서버에 SQL Server용 Azure 확장을 설치한 경우 Azure Portal에서 직접 SQL Server 인스턴스에 대한 기본 관리 ID를 사용하도록 설정할 수 있습니다. 레지스트리를 업데이트하여 기본 관리 ID를 수동으로 사용하도록 설정할 수도 있지만 주의해야 합니다.
Azure Portal에서 기본 관리 ID를 사용하도록 설정하려면 다음 단계를 수행합니다.
Azure Portal에서 Azure Arc 리소스에서 사용하도록 설정된 SQL Server 로 이동합니다.
설정에서 Microsoft Entra ID 및 Purview를 선택하여 Microsoft Entra ID 및 Purview 페이지를 엽니다.
비고
Microsoft Entra ID 인증 사용 옵션이 표시되지 않으면 SQL Server 인스턴스가 Azure Arc에 연결되어 있고 최신 SQL 확장이 설치되어 있는지 확인합니다.
Microsoft Entra ID 및 Purview 페이지에서 기본 관리 ID 사용 옆의 확인란을 선택한 다음 저장을 사용하여 구성을 적용합니다.
ID에 애플리케이션 사용 권한 부여
중요합니다
권한 있는 역할 관리자 이상의 역할만 이러한 권한을 부여할 수 있습니다.
Arc 지원 컴퓨터 이름을 사용하는 시스템 할당 관리 ID에는 다음과 같은 Microsoft Graph 애플리케이션 권한(앱 역할)이 있어야 합니다.
User.Read.All: Microsoft Entra 사용자 정보에 대한 액세스를 허용합니다.
User.Read.All: Microsoft Entra 그룹 정보에 대한 액세스를 허용합니다.
Application.Read.ALL: Microsoft Entra 서비스 주체(애플리케이션) 정보에 대한 액세스를 허용합니다.
PowerShell을 사용하여 관리 ID에 필요한 권한을 부여할 수 있습니다. 또는 역할 할당 가능 그룹을 만들 수 있습니다. 그룹을 만든 후 디렉터리 읽기 권한자 역할 또는 User.Read.All, GroupMember.Read.All, Application.Read.All 권한을 그룹에 할당하고, Azure Arc 지원 머신에 대한 모든 시스템 할당 관리 ID를 그룹에 추가합니다. 프로덕션 환경에서 디렉터리 읽기 권한자 역할을 사용하지 않는 것이 좋습니다.
다음 PowerShell 스크립트는 관리 ID에 필요한 권한을 부여합니다. 이 스크립트가 PowerShell 7.5 이상 버전에서 실행되고 Microsoft.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 자습서의 단계에 따라 관리 ID에 대한 로그인 및 사용자를 만듭니다.