Поделиться через


Резервное копирование и восстановление по адресу URL с использованием управляемых удостоверений.

применимо к:SQL Server на виртуальной машине Azure (только для Windows)

В этой статье объясняется, как выполнять резервное копирование и восстановление баз данных SQL Server на виртуальных машинах Azure из URL-адреса с использованием управляемых удостоверений Microsoft Entra.

Обзор

Начиная с накопительного обновления 17 (CU17) SQL Server 2022, вы можете использовать управляемые удостоверения с учетными данными SQL Server для резервного копирования и восстановления баз данных SQL Server на виртуальных машинах Azure из хранилища Blob в Azure. управляемые удостоверения предоставляют удостоверение для приложений, которые используют при подключении к ресурсам, поддерживающим аутентификацию Microsoft Entra.

Использование управляемых удостоверений в учетных данных для операций BACKUP TO URL и RESTORE FROM URL T-SQL поддерживается только на виртуальных машинах Azure SQL Server. Использование управляемых удостоверений с локальной средой SQL Server для BACKUP TO URL и RESTORE FROM URL не поддерживается.

Необходимые условия

  • SQL Server на виртуальной машине Azure с SQL Server 2022 CU17 или более поздней версии и настроен для использования аутентификации Microsoft Entra.
  • учетная запись хранилища BLOB-объектов Azure .
  • Допустимый сетевой доступ к хранилищу BLOB-объектов Azure, разрешения брандмауэра Windows на узле для разрешения исходящего подключения, а также действующие конечные точки службы учетной записи хранения.
  • Основному управляемому удостоверению для SQL Server на виртуальной машине Azure необходимо следующее:
    • Назначение управляемого удостоверения, назначаемого пользователем, или управляемого удостоверения, назначаемого системой. Дополнительные сведения см. в статье Настройка управляемых удостоверений на виртуальных машинах Azure.
    • Чтобы иметь роль Storage Blob Data Contributor для основного управляемого удостоверения, назначенного учетной записи хранения.

Создание учетных данных сервера с помощью управляемых удостоверений

Чтобы использовать команды T-SQL BACKUP DATABASE <database name> TO URL и RESTORE <database name> FROM URL с управляемыми удостоверениями, необходимо создать учетные данные сервера, использующие управляемое удостоверение. Имя учетных данных представляет URL-адрес хранилища Azure и указывает, где будет храниться резервная копия базы данных.

В следующем примере показано, как создать учетные данные для управляемого удостоверения:

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

Для предложения WITH IDENTITY = 'Managed Identity' требуется основное управляемое удостоверение, назначенное SQL Server на виртуальной машине Azure.

Дополнительные сведения об сообщениях об ошибках, которые могут возникать, если основное управляемое удостоверение не назначено или не предоставлено надлежащих разрешений, см. в разделе сообщения об ошибках.

BACKUP URL-адрес с управляемым удостоверением

После создания учетных данных его можно использовать для резервного копирования и восстановления баз данных в хранилище BLOB-объектов Azure. Убедитесь, что основное управляемое удостоверение для SQL Server на виртуальной машине Azure имеет роль Storage Blob Data Contributor, назначенную учетной записи хранения.

В следующем примере показано, как создать резервную копию базы данных в хранилище Azure Blob с помощью управляемой идентификации.

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

RESTORE из URL-адреса с управляемым удостоверением

В следующем примере показано, как восстановить базу данных из объектного хранилища Azure Blob с помощью управляемой удостоверенной учетной записи:

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

Сообщения об ошибках

флаг трассировки 4675 можно использовать для проверки учетных данных, созданных с помощью управляемой идентичности. Если инструкция CREATE CREDENTIAL была выполнена без включённого флага трассировки 4675, сообщение об ошибке не выводится, если основное управляемое удостоверение не задано для сервера. Чтобы устранить эту проблему, учетные данные необходимо удалить и создать повторно после включения флага трассировки.

Первичное управляемое удостоверение не назначено

Если основное управляемое удостоверение не назначено для SQL Server на виртуальной машине Azure, операции резервного копирования и восстановления завершатся неудачей с сообщением об ошибке, указывающим, что управляемое удостоверение не выбрано.

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 не назначена

Если основное управляемое удостоверение для SQL Server на виртуальной машине Azure не получает роль 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. 

Если управляемому удостоверению для SQL Server на виртуальной машине Azure не назначена роль 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. 

Повторяющееся имя базы данных

Если исходная база данных с тем же именем существует в хранилище, резервная копия новой базы данных на тот же путь к хранилищу завершится ошибкой:

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).

Ограничения

  • Управляемое удостоверение на уровне сервера поддерживается только для SQL Server на виртуальной машине Azure, а не в локальной среде SQL Server. Управляемая идентификация уровня сервера не поддерживается для Linux.

  • BACKUP TO URL или RESTORE FROM URL с управляемым удостоверением поддерживается только для SQL Server на виртуальной машине Azure. BACKUP TO URL или RESTORE FROM URL не поддерживается локальной средой SQL Server.

  • Управляемые удостоверения не поддерживаются в среде экземпляра отказоустойчивого кластера (FCI).

  • BACKUP TO URL можно выполнить только с тем же управляемым удостоверением, используемым для SQL Server на виртуальной машине Azure, независимо от того, имеет ли сервер один или несколько экземпляров SQL Server на виртуальной машине.