적용 대상:SQL Server
이 문서에서는 Azure Arc에서 사용하도록 설정된 SQL Server 인스턴스에 대해 NT Service\SQLServerExtension 사용하는 경우 SQL Server용 Azure 확장에서 계정에 부여하는 권한을 나열합니다. 최소 권한 구성으로 확장은 Azure Portal에서 기능을 사용하도록 설정할 때 필요한 권한만 부여합니다.
Note
NT Authority\System 는 나열된 디렉터리 및 레지스트리 키에 대한 권한을 수정할 수 있는 액세스 권한이 있어야 합니다. 이 액세스 권한은 최소 권한 모드에 NT Authority\System 대해 계정에 필요한 액세스 권한을 부여할 수 있도록 NT Service\SqlServerExtension 필요합니다.
Overview
최소 권한으로 SQL Server를 Azure Arc에 연결하면 Azure Arc 확장은 해당 서비스 계정을 부여하며, NT SERVICE\SQLServerExtension해당 기능을 사용하도록 설정할 때 각 기능에 필요한 권한만 부여합니다. 기능을 사용하지 않도록 설정하면 확장에서 해당 사용 권한을 자동으로 제거합니다. 기능이 비활성 상태이면 확장에서 해당 기능에 대한 사용 권한을 부여하지 않습니다.
에이전트 계정에 대한 사용 권한을 수동으로 설정하는 것은 지원되지 않습니다.
Note
현재 최소 권한 구성은 기본적으로 적용되지 않습니다.
확장 버전 1.1.2859.223 이상이 있는 기존 서버에는 결국 최소 권한 구성이 적용됩니다. 이 확장은 2024년 11월에 릴리스되었습니다. 최소 권한의 자동 적용을 방지하기 위해, 1.1.2859.223 후에 확장 업그레이드를 차단합니다.
기능별 SQL 권한 섹션에서는 다음 기능을 사용하도록 설정할 때 확장에서 부여하는 권한을 설명합니다.
디렉터리 권한
| 디렉터리 경로 | 필요한 권한 | Details | Feature |
|---|---|---|---|
<SystemDrive>\Packages\Plugins\Microsoft.AzureData.WindowsAgent.SQLServer |
모든 권한 | 확장 관련 DLL 및 EXE 파일. | Default |
C:\Packages\Plugins\Microsoft.AzureData.WindowsAgent.SqlServer\<extension_version>\RuntimeSettings |
모든 권한 | 확장 설정 파일입니다. | Default |
C:\Packages\Plugins\Microsoft.AzureData.WindowsAgent.SqlServer\<extension_version>\status |
모든 권한 | 확장 상태 파일입니다. | Default |
C:\ProgramData\GuestConfig\extension_logs\Microsoft.AzureData.WindowsAgent.SqlServer |
모든 권한 | 확장 로그 파일. | Default |
C:\Packages\Plugins\Microsoft.AzureData.WindowsAgent.SqlServer\<extension_version>\status\HeartBeat.Json |
모든 권한 | 확장자 하트비트 파일입니다. | Default |
%ProgramFiles%\Sql Server Extension |
모든 권한 | 확장 서비스 파일. | Default |
<SystemDrive>\Windows\system32\extensionUpload |
모든 권한 | 청구에 필요한 사용량 파일을 작성하는 데 필요합니다. | Default |
<SystemDrive>\Windows\system32\ExtensionHandler.log |
모든 권한 | 확장에 의해 만들어진 사전 로그 폴더입니다. | Default |
<ProgramData>\AzureConnectedMachineAgent\Config |
Read | Arc 구성 파일 디렉터리입니다. | Default |
C:\Windows\System32\config\systemprofile\AppData\Local\Microsoft SQL Server Extension Agent |
모든 권한 | 평가 보고서 및 상태를 작성하는 데 필요합니다. | Default |
SQL 로그 디렉터리(레지스트리에 설정된 대로) 1 :C:\Program Files\Microsoft SQL Server\MSSQL<base_version>.<instance_name>\MSSQL\log |
Read | SQL 로그에서 SQL vCore 정보를 추출하는 데 필요합니다. | Default |
SQL 백업 디렉터리(레지스트리에 설정된 대로) 1 :C:\Program Files\Microsoft SQL Server\MSSQL<base_version>.<instance_name>\MSSQL\Backup |
ReadAndExecute/Write /Delete | 백업에 필요 | Backup |
1 자세한 내용은 파일 위치 및 레지스트리 매핑을 참조하세요.
레지스트리 권한
기본 키: HKEY_LOCAL_MACHINE
| 레지스트리 키 | 필요한 권한 | Details | Feature |
|---|---|---|---|
SOFTWARE\Microsoft\Microsoft SQL Server |
Read | 와 같은 installedInstancesSQL Server 속성을 읽습니다. |
Default |
SOFTWARE\Microsoft\Microsoft SQL Server\<InstanceRegistryName>\MSSQLSERVER |
모든 권한 | Microsoft Entra ID 및 Purview. | Microsoft Entra ID Purview |
SOFTWARE\Microsoft\SystemCertificates |
모든 권한 | Microsoft Entra ID에 필요합니다. | Microsoft Entra ID |
SYSTEM\CurrentControlSet\Services |
Read | SQL Server 계정 이름입니다. | Default |
SOFTWARE\Microsoft\AzureDefender\SQL |
Read | Azure Defender 상태 및 마지막 업데이트 시간입니다. | Default |
SOFTWARE\Microsoft\SqlServerExtension |
모든 권한 | 확장 관련 값입니다. | Default |
SOFTWARE\Policies\Microsoft\Windows |
읽기 및 쓰기 | 확장을 통해 자동 창 업데이트를 사용하도록 설정합니다. | 자동 업데이트 |
그룹 사용 권한
NT Service\SQLServerExtension 는 하이브리드 에이전트 확장 애플리케이션에 추가됩니다. 이렇게 하면 AZURE IMDS(Instance Metadata Service) 핸드셰이크를 통해 DPS(데이터 처리 서비스) 및 청구 사용량, 확장 로그 및 모니터링 대시보드 데이터 수집을 위한 원격 분석 엔드포인트와 같은 Azure 데이터 평면 서비스와 통신하는 데 필요한 Machine 리소스 관리 ID 토큰을 검색할 수 있습니다.
SQL 권한
NT Service\SQLServerExtension 계정이 추가됩니다.
- 컴퓨터에 현재 있는 모든 인스턴스에 대한 SQL 로그인으로
- 각 데이터베이스의 사용자로
또한 기능을 사용하도록 설정하면 확장에서 인스턴스 및 데이터베이스 개체에 대한 사용 권한을 부여합니다.
Note
최소 권한은 사용 가능한 기능에 따라 달라집니다. 확장은 더 이상 필요하지 않은 경우 권한을 업데이트합니다. 기능을 사용하도록 설정할 때 필요한 권한을 부여합니다.
NT Service\SQLServerExtension 계정 권한 세부 정보
| 레지스트리 경로 | 허가 | 계정이 손상된 경우 NT Service\SQLServerExtension 권한에 대한 관련 위험 |
|---|---|---|
SOFTWARE\Microsoft\Microsoft SQL Server |
Read | 확장은 설치된 SQL Server 버전을 확인할 수 있습니다. |
SOFTWARE\Microsoft\Microsoft SQL Server\\MSSQLSERVER |
모든 권한 | Microsoft Entra 인증 또는 Purview를 사용하도록 설정한 경우에만 필요합니다. 확장은 SQL Server 구성을 수정할 수 있습니다. |
SOFTWARE\Microsoft\SystemCertificates |
모든 권한 | Microsoft Entra 인증을 사용하는 경우에만 필요합니다. 확장은 신뢰할 수 있는 루트 인증 기관을 대체할 수 있습니다. |
SYSTEM\CurrentControlSet\Services |
Read | 확장은 서비스 계정 이름을 볼 수 있습니다. |
SOFTWARE\Microsoft\AzureDefender\SQL |
Read | 확장은 Microsoft Defender 상태 및 업데이트 시간을 알아볼 수 있습니다. |
SOFTWARE\Microsoft\SqlServerExtension |
모든 권한 | 확장은 확장 설정을 변경할 수 있습니다. |
SOFTWARE\Policies\Microsoft\Windows |
읽기 및 쓰기 | 자동 업데이트를 사용하는 경우에만 필요합니다. 확장은 Windows 업데이트 정책을 변경하고 코드 무결성 및 가상화 기반 보안을 제어하는 Device Guard를 사용하지 않도록 설정할 수 있으며, 누락된 패치로 인해 확장된 노출이 발생할 수 있습니다. |
기능별 SQL 권한
다음 표에서는 SQL Server용 Azure 확장에서 부여한 권한을 제어하는 기능에 대한 기본 동작을 나열합니다.
| Feature | 기본 동작 |
|---|---|
| 기본 확장 권한 | 기본 설정으로 활성화됨 |
| 자동화된 백업 | 기본적으로 사용 안 함 |
| 가용성 그룹 | 기본 설정으로 활성화됨 |
| 모범 사례 평가 | 기본적으로 사용 안 함 |
| 마이그레이션 평가 | 기본 설정으로 활성화됨 |
| 데이터베이스 마이그레이션 | 기본 설정으로 활성화됨 |
| 특정 시점 복원 | 기본적으로 사용 안 함 |
| Purview | 기본적으로 사용 안 함 |
기본 확장 권한
다음 기본 권한은 AZURE Extension for SQL Server에서 제공하는 기본 기능 수준에 대한 최소 요구 사항이며 적용해야 합니다.
| 객체 유형 | 데이터베이스 또는 개체 이름 | Privilege |
|---|---|---|
| Database | master |
VIEW DATABASE STATE |
| Database | msdb |
ALTER ANY SCHEMA |
| Database | msdb |
CREATE TABLE |
| Database | msdb |
CREATE TYPE |
| Database | msdb |
DB DATA READER |
| Database | msdb |
DB DATA WRITER |
| Database | msdb |
EXECUTE |
| Database | msdb |
SELECT dbo.backupfile |
| Database | msdb |
SELECT dbo.backupmediaset |
| Database | msdb |
SELECT dbo.backupmediafamily |
| Database | msdb |
SELECT dbo.backupset |
| Database | msdb |
SELECT dbo.syscategories |
| Database | msdb |
SELECT dbo.sysjobactivity |
| Database | msdb |
SELECT dbo.sysjobhistory |
| Database | msdb |
SELECT dbo.sysjobs |
| Database | msdb |
SELECT dbo.sysjobsteps |
| Database | msdb |
SELECT dbo.syssessions |
| Database | msdb |
SELECT dbo.sysoperators |
| Database | msdb |
SELECT dbo.suspectpages |
| Server | CONNECT ANY DATABASE |
|
| Server | CONNECT SQL |
|
| Server | VIEW ANY DATABASE |
|
| Server | VIEW ANY DEFINITION |
|
| Server | VIEW SERVER STATE |
자동화된 백업
자동화된 백업은 기본적으로 사용하지 않도록 설정됩니다. 확장은 자동화된 백업을 사용하도록 설정된 모든 데이터베이스에 백업 권한을 부여합니다. 백업 기능을 사용하도록 설정하면 지정 시간 복원 기능도 사용할 수 있으므로 데이터베이스를 만들 수 있는 권한도 부여됩니다.
기능을 사용하도록 설정하면 확장에서 자동으로 다음 권한을 부여합니다.
| 객체 유형 | 데이터베이스 또는 개체 이름 | Privilege |
|---|---|---|
| Database | 모든 데이터베이스 | DB BACKUP OPERATOR |
| Server | CREATE ANY DATABASE |
|
| Server | master |
DB CREATOR |
가용성 그룹
가용성 그룹 검색 및 장애 조치(failover)와 같은 관리 기능은 기본적으로 사용하도록 설정되어 있지만 기능 플래그를 AvailabilityGroupDiscovery 통해 사용하지 않도록 설정할 수 있습니다.
이 기능을 사용하도록 설정하면 확장에서 자동으로 다음 권한을 부여합니다.
| 객체 유형 | 데이터베이스 또는 개체 이름 | Privilege |
|---|---|---|
| Server | ALTER ANY AVAILABILITY GROUP |
|
| Server | VIEW ANY DEFINITION |
모범 사례 평가
모범 사례 평가는 기본적으로 사용하지 않도록 설정됩니다.
이 기능을 사용하도록 설정하면 확장에서 자동으로 다음 권한을 부여합니다.
| 객체 유형 | 데이터베이스 또는 개체 이름 | Privilege |
|---|---|---|
| Database | master |
SELECT |
| Database | master |
VIEW DATABASE STATE |
| Database | msdb |
SELECT |
| Server | VIEW ANY DATABASE |
|
| Server | VIEW ANY DEFINITION |
|
| Server | VIEW SERVER STATE |
|
| StoredProcedure | EnumErrorLogsSP | EXECUTE |
| StoredProcedure | ReadErrorLogsSP | EXECUTE |
데이터베이스 마이그레이션
데이터베이스 마이그레이션 기능은 기본적으로 사용하도록 설정되며 기본 확장 권한에 나열된 권한만 필요하지만 데이터베이스 마이그레이션 기능에서 사용하는 일부 권한에는 특정 마이그레이션 작업이 수행될 때 Just-In-Time 권한이 부여됩니다.
다음 작업을 수행하려면 확장에서 Just-In-Time을 부여하는 추가 권한이 필요합니다.
Note
Azure에서 SqlServerAvailabilityGroups_CreateManagedInstanceLink사용 SqlServerAvailabilityGroups_failoverMiLink권한 및 SqlServerAvailabilityGroups_deleteMiLink 권한을 가진 사용자는 마이그레이션 프로세스 중에 데이터베이스 마이그레이션 페이지에서 역할을 포함하여 sysadmin 확장에서 사용하는 계정의 SQL Server 권한을 상승시키는 작업을 수행할 수 있습니다.
Managed Instance 링크 마이그레이션 만들기
데이터 마이그레이션 단계에서 Managed Instance 링크 마이그레이션에 대한 검토 + 만들기 탭에서 데이터 마이그레이션 시작을 선택하면 확장에서 Just-In-Time 권한을 부여합니다. 분산 가용성 그룹을 구성하려면 서비스 계정에 상승된 권한이 필요합니다. 분산 가용성 그룹이 만들어지고 Azure Portal에 표시되는 배포가 완료된 상태이면 사용 권한을 취소합니다. 다른 마이그레이션이 동시에 실행되는 경우 확장은 마지막 분산 가용성 그룹을 만들 때까지 사용 권한을 취소하지 않습니다.
Managed Instance 링크 마이그레이션을 만드는 작업은 만들기 요청 기간 동안 다음 권한을 획득합니다.
| 객체 유형 | 데이터베이스 또는 개체 이름 | Privilege |
|---|---|---|
| Server | CREATE AVAILABILITY GROUP |
|
| Server | ALTER ANY AVAILABILITY GROUP |
|
| Server | ALTER ANY DATABASE |
|
| Server | CREATE ENDPOINT |
|
| Server | ALTER ANY ENDPOINT |
|
| Server | CREATE CERTIFICATE |
|
| Database | master |
IMPERSONATE ON USER::[dbo] |
Managed Instance 링크 마이그레이션의 전체 단독형
모니터 및 단독형 단계에서 Managed Instance 링크 마이그레이션에 대한 전체 컷오버 옵션을 선택하면 확장에서 Just-In-Time 권한을 부여합니다. 확장은 단독형이 완료된 후 사용 권한을 취소합니다.
Managed Instance 링크 마이그레이션의 중단을 완료하는 작업은 전체 요청 기간 동안 다음 권한을 획득합니다.
| 객체 유형 | 데이터베이스 또는 개체 이름 | Privilege |
|---|---|---|
| Server | CREATE AVAILABILITY GROUP |
|
| Server | ALTER ANY AVAILABILITY GROUP |
|
| Server | ALTER ANY DATABASE |
|
| Server |
sysadmin
1 |
1 최소 권한을 사용하도록 설정하면 전체 단독형 작업에서도 단독형 기간 동안 계정에 역할을 sysadmin 부여합니다NT Service\SQLServerExtension. 이 역할은 Azure SQL Managed Instance로 전환하기 위해 분산 가용성 그룹을 장애 조치(failover)하는 데 필요합니다.
Managed Instance 링크 마이그레이션 취소
모니터 및 단독형 단계에서 Managed Instance 링크 마이그레이션에 대한 마이그레이션 취소 옵션을 선택하면 확장에서 Just-In-Time 권한을 부여합니다. 확장은 마이그레이션이 취소된 후 사용 권한을 취소합니다.
Managed Instance 링크 마이그레이션을 취소하는 작업은 취소 요청 기간 동안 다음 권한을 획득합니다.
| 객체 유형 | 데이터베이스 또는 개체 이름 | Privilege |
|---|---|---|
| Server | ALTER ANY AVAILABILITY GROUP |
|
| Server | ALTER ANY DATABASE |
|
| Server |
sysadmin
1 |
1 최소 권한을 사용하도록 설정하면 취소 작업에서도 취소 요청 기간 동안 계정에 역할을 sysadmin 부여합니다NT Service\SQLServerExtension. 이 역할은 분산 가용성 그룹을 삭제할 때 필요합니다.
마이그레이션 평가
마이그레이션 평가는 기본적으로 사용하도록 설정됩니다.
기능을 사용하지 않도록 설정하면 다른 사용 가능한 기능이 필요하지 않으면 확장에서 다음 권한을 취소합니다.
| 객체 유형 | 데이터베이스 또는 개체 이름 | Privilege |
|---|---|---|
| Database | 모든 데이터베이스 | SELECT sys.sqlexpressiondependencies |
| Database | msdb |
EXECUTE dbo.agentdatetime |
| Database | msdb |
SELECT dbo.syscategories |
| Database | msdb |
SELECT dbo.sysjobhistory |
| Database | msdb |
SELECT dbo.sysjobs |
| Database | msdb |
SELECT dbo.sysjobsteps |
| Database | msdb |
SELECT dbo.sysmailaccount |
| Database | msdb |
SELECT dbo.sysmailprofile |
| Database | msdb |
SELECT dbo.sysmailprofileaccount |
| Database | msdb |
SELECT dbo.syssubsystems |
Purview
Purview 기능은 기본적으로 사용하지 않도록 설정됩니다.
이 기능을 사용하도록 설정하면 확장에서 자동으로 다음 권한을 부여합니다.
| 객체 유형 | 데이터베이스 또는 개체 이름 | Privilege |
|---|---|---|
| Database | 모든 데이터베이스 | EXECUTE |
| Database | 모든 데이터베이스 | SELECT |
| Server | CONNECT ANY DATABASE |
|
| Server | VIEW ANY DATABASE |
Just-In-Time SQL 권한
일부 SQL 권한은 특정 작업을 수행하는 데 필요한 시간에만 할당되며 사용 권한이 필요한 작업이 완료되는 즉시 해지됩니다. 해지를 실행하지 못하면 50분마다 실행되는 백그라운드 정리 작업이 부실한 사용 권한을 자동으로 취소합니다.
Just-In-Time 권한은 서비스 계정에 할당됩니다.
-
NT Service\SQLServerExtension최소 권한이 사용하도록 설정된 경우 - 최소 권한이 비활성화된 경우 로컬 시스템 계정입니다.
현재 다음 기능은 Just-In-Time 권한을 사용합니다.
- Managed Instance 링크 마이그레이션 옵션을 사용하는 경우의 데이터베이스 마이그레이션입니다.
추가 권한
- 확장 서비스에 액세스하고 자동 복구를 구성하는 서비스 계정에 대한 권한입니다.
- 서비스 계정에 대한 서비스로 로그온 권한입니다.