다음을 통해 공유


관리 ID를 사용하여 URL 백업 및 복원

적용 대상: Azure VM에서 SQL Server(Windows에만 해당)

이 문서에서는 Microsoft Entra 관리 ID를 사용하여 URL에서 Azure VM(Virtual Machines) 데이터베이스의 SQL Server 를 백업하고 복원하는 방법을 설명합니다.

개요

SQL Server 2022 CU17(누적 업데이트 17)부터 SQL Server 자격 증명 이 포함된 관리 ID를 사용하여 Azure Blob Storage에서 Azure VM 데이터베이스의 SQL Server를 백업하고 복원할 수 있습니다. 관리 ID는 Microsoft Entra 인증을 지원하는 리소스에 연결할 때 애플리케이션에서 사용할 ID를 제공합니다.

T-SQL 작업에 대한 BACKUP TO URLRESTORE FROM URL 자격 증명에서 관리 ID를 사용하는 것은 Azure VM의 SQL Server에서만 지원됩니다. SQL Server 온-프레미스에서 관리 ID를 BACKUP TO URLRESTORE FROM URL 사용하는 것은 지원되지 않습니다.

필수 조건

  • Azure VM에 있는 SQL Server로, SQL Server 2022 CU17 이상의 버전이 SQL IaaS 에이전트 확장에 등록된 것입니다.
  • 백업하거나 복원하는 SQL Server 인스턴스는 확장에 등록된 인스턴스인지 여부에 관계없이 Microsoft Entra 인증을 사용하여 URL을 구성해야 합니다.
  • Azure Blob Storage 계정.
  • Azure Blob 저장소에 대한 유효한 네트워크 액세스, 호스트의 Windows 방화벽 권한을 통해 아웃바운드 연결을 허용, 그리고 유효한 스토리지 계정 서비스 엔드포인트.
  • Azure VM의 SQL Server에 대한 기본 관리 ID에는 다음이 필요합니다.

관리 ID를 사용하여 서버 자격 증명 만들기

T-SQL 명령 BACKUP DATABASE <database name> TO URLRESTORE <database name> FROM URL 관리 ID를 사용하려면 관리 ID를 사용하는 서버 자격 증명을 만들어야 합니다. 자격 증명 이름은 Azure Storage URL을 나타내며 데이터베이스 백업이 저장되는 위치를 나타냅니다.

다음 예제에서는 관리 ID에 대한 자격 증명을 만드는 방법을 보여줍니다.

CREATE CREDENTIAL [https://<storage-account-name>.blob.core.windows.net/<container-name>] 
    WITH IDENTITY = 'Managed Identity'

WITH IDENTITY = 'Managed Identity' 절에는 Azure VM의 SQL Server에 할당된 기본 관리 ID가 필요합니다.

기본 관리 ID가 할당되지 않았거나 적절한 권한이 부여되지 않은 경우 발생할 수 있는 오류 메시지에 대한 자세한 내용은 오류 메시지 섹션을 참조하세요.

관리 ID를 사용하여 URL에 백업

자격 증명을 만든 후에는 이 자격 증명을 사용하여 데이터베이스를 백업하고 Azure Blob Storage로 복원할 수 있습니다. Azure VM Storage Blob Data Contributor 의 SQL Server에 대한 기본 관리 ID에 스토리지 계정에 할당된 역할이 있는지 확인합니다.

다음 예제에서는 관리 ID 자격 증명을 사용하여 Azure Blob Storage에 데이터베이스를 백업하는 방법을 보여 줍니다.

BACKUP DATABASE [AdventureWorks] 
    TO URL = 'https://<storage-account-name>.blob.core.windows.net/<container-name>/AdventureWorks.bak' 

관리 ID를 사용하여 URL에서 복원하기

다음 예제에서는 관리 ID 자격 증명을 사용하여 Azure Blob Storage에서 데이터베이스를 복원하는 방법을 보여 줍니다.

RESTORE DATABASE [AdventureWorks] 
    FROM URL = 'https://<storage-account-name>.blob.core.windows.net/<container-name>/AdventureWorks.bak' 

오류 메시지

추적 플래그 4675를 사용하여 관리 ID로 생성된 자격 증명을 확인할 수 있습니다. 추적 플래그 4675를 사용하지 않고 CREATE CREDENTIAL 문을 실행한 경우 주 관리 ID가 서버에 대해 설정되지 않은 경우 오류 메시지가 발생하지 않습니다. 이 시나리오를 해결하려면 추적 플래그를 사용하도록 설정하면 자격 증명을 삭제하고 다시 만들어야 합니다.

주 관리 ID가 할당되지 않음

기본 관리 ID가 Azure VM의 SQL Server에 할당되지 않은 경우 관리 ID가 선택되지 않았음을 나타내는 오류 메시지와 함께 백업 및 복원 작업이 실패합니다.

Msg 37563, Level 16, State 2, Line 14
The primary managed identity is not selected for this server. Enable the primary managed identity for Microsoft Entra authentication for this server. For more information see (https://aka.ms/sql-server-managed-identity-doc).`

할당된 역할 없음 Storage Blob Data Contributor

Azure VM의 SQL Server에 주 관리 ID에게 스토리지 계정의 Storage Blob Data Contributor 역할이 부여되지 않으면, BACKUP 작업이 액세스가 거부되었음을 알리는 오류 메시지와 함께 실패하게 됩니다.

Msg 3201, Level 16, State 1, Line 31
Cannot open backup device 'https://<storage-account-name>.blob.core.windows.net/<container-name>/AdventureWorks.bak'. Operating system error 5(Access is denied.).
Msg 3013, Level 16, State 1, Line 31
BACKUP DATABASE is terminating abnormally.

Azure VM의 SQL Server에 대한 관리 ID에 스토리지 계정의 Storage Blob Data Contributor 역할이 부여되지 않으면 RESTORE 작업은 액세스가 거부되었다는 오류 메시지와 함께 실패할 것입니다.

Msg 3201, Level 16, State 1, Line 31
Cannot open backup device 'https://<storage-account-name>.blob.core.windows.net/<container-name>/AdventureWorks.bak'. Operating system error 5(Access is denied.).
Msg 3013, Level 16, State 1, Line 31
RESTORE DATABASE is terminating abnormally.

네트워크 또는 방화벽 문제

Azure Blob Storage에 대한 유효한 네트워크 액세스 및 호스트에 대한 Windows 방화벽 권한을 구성하지 않은 경우 아웃바운드 연결을 허용하고 유효한 스토리지 계정 서비스 엔드포인트가 구성 BACKUP 되지 않은 경우 액세스가 거부되었음을 나타내는 오류 메시지와 함께 작업이 실패합니다.

Msg 3201, Level 16, State 1, Line 31
Cannot open backup device 'https://<storage-account-name>.blob.core.windows.net/<container-name>/AdventureWorks.bak'. Operating system error 5(Access is denied.).
Msg 3013, Level 16, State 1, Line 31
BACKUP DATABASE is terminating abnormally. 

Azure Blob Storage에 대한 유효한 네트워크 액세스 및 호스트에 대한 Windows 방화벽 권한을 구성하지 않은 경우 아웃바운드 연결을 허용하고 유효한 스토리지 계정 서비스 엔드포인트가 구성 RESTORE 되지 않은 경우 액세스가 거부되었음을 나타내는 오류 메시지와 함께 작업이 실패합니다.

Msg 3201, Level 16, State 1, Line 31
Cannot open backup device 'https://<storage-account-name>.blob.core.windows.net/<container-name>/AdventureWorks.bak'. Operating system error 5(Access is denied.).
Msg 3013, Level 16, State 1, Line 31
RESTORE DATABASE is terminating abnormally. 

중복 데이터베이스 이름

동일한 이름을 가진 원래 데이터베이스가 스토리지에 있는 경우 동일한 스토리지 경로에 새 데이터베이스를 백업하지 못하면 다음 오류가 발생합니다.

Msg 1834, Level 16, State 1, Line 35
RESTORE DATABASE AdventureWorks 
FROM URL = 'https://<storage-account-name>.blob.core.windows.net/<container-name>/AdventureWorks.bak';
Msg 1834, Level 16, State 1, Line 35 
The file 'C:\Server\sqlservr\data\AdventureWorks.mdf' cannot be overwritten.  It is being used by the database 'AdventureWorks'. 
Msg 3156, Level 16, State 4, Line 35 
File 'AdventureWorks' cannot be restored to 'C:\Server\sqlservr\data\AdventureWorks.mdf'. Use WITH MOVE to identify a valid ___location for the file.

이 문제를 해결하려면 데이터베이스를 복원하기 전에 원래 데이터베이스를 삭제하거나 사용된 파일을 다른 위치로 이동합니다. 자세한 내용은 데이터베이스를 새 위치로 복원(SQL Server)을 참조하세요.

제한점

  • 서버 수준 관리 ID는 온-프레미스 SQL Server가 아닌 Azure VM의 SQL Server에 대해서만 지원됩니다. Linux에서 서버 수준 관리 ID는 지원되지 않습니다.

  • BACKUP TO URL 또는 RESTORE FROM URL 관리 ID를 사용하는 경우 Azure VM의 SQL Server에 대해서만 지원됩니다. BACKUP TO URL 또는 RESTORE FROM URL SQL Server 온-프레미스에서 지원되지 않습니다.

  • 관리 ID는 FCI(장애 조치(failover) 클러스터 인스턴스)에서 지원되지 않습니다.

  • BACKUP TO URL 은 서버에 VM에 SQL Server 인스턴스가 하나 이상 있는지 여부에 관계없이 Azure VM의 SQL Server에 사용되는 것과 동일한 관리 ID로만 실행할 수 있습니다.