Melhoria: suporte à identidade gerenciada do Microsoft Entra para operações de banco de dados de backup e restauração e para EKM com AKV no SQL Server em VMs do Azure
Sintomas
A instância do SQL Server pode parar de responder se você executar uma operação de backup ou restauração de banco de dados no Armazenamento do Azure ou usar o EKM (Gerenciamento Extensível de Chaves) com o AKV (Azure Key Vault) usando credenciais no nível do servidor com identidades gerenciadas. Embora essa operação não tenha suporte para SQL Server 2022, a sintaxe T-SQL atual permite isso.
Solução
Esse problema foi corrigido na seguinte atualização cumulativa do SQL Server em VMs (máquinas virtuais) do Azure:
Atualização cumulativa 17 para SQL Server 2022
No SQL Server 2022 CU17 e versões posteriores, a autenticação de identidade gerenciada do Microsoft Entra com SQL Server em VMs somente Windows do Azure dá suporte à credencial no nível do servidor para operações de backup e restauração de banco de dados no Armazenamento do Azure e para EKM com AKV.
Para habilitar o suporte de identidade gerenciada para operações de banco de dados de backup ou restauração para SQL Server em VMs do Windows do Azure, as seguintes etapas são necessárias:
- Atribua a identidade gerenciada primária para o SQL Server em VMs do Windows do Azure.
- Crie ou use o Armazenamento do Azure com um contêiner de blob.
- Atribua funções RBAC (controle de acesso baseado em função) para a identidade gerenciada primária acessar o Armazenamento do Azure.
- Execute o comando
CREATE CREDENTIAL
T-SQL com aWITH IDENTITY = 'Managed Identity'
cláusula usando a URL de Armazenamento do Azure como um nome de credencial. - Execute o comando
BACKUP DATABASE
T-SQL ouRESTORE DATABASE
usando a URL do Armazenamento do Azure.
-- Create credential with managed identity and credential name set to
-- URL= https://<storageaccountname>.blob.core.windows.net/<container>
CREATE CREDENTIAL [https://<storageaccountname>.blob.core.windows.net/<container>]
WITH IDENTITY = 'Managed Identity'
-- Backup the database mydb to URL
BACKUP DATABASE mydb
TO URL = 'https://<storageaccount>.blob.core.windows.net/<container>/mydb.bak'
-- Restore the database mydb1 from URL
RESTORE DATABASE mydb1
FROM URL ='https://<storageaccount>.blob.core.windows.net/<container>/mydb.bak'
Para obter mais informações, consulte Backup e restauração para URL usando identidades gerenciadas.
Para habilitar o suporte de identidade gerenciada para EKM com AKV para SQL Server em VMs do Windows do Azure, as seguintes etapas são necessárias:
- Atribua a identidade gerenciada primária para o SQL Server em VMs do Windows do Azure.
- Crie ou use um cofre de chaves.
- Atribua funções RBAC (controle de acesso baseado em função) para a identidade gerenciada primária acessar o AKV.
- Baixe o SQL Server Connector mais recente para Microsoft Azure Key Vault (a versão 1.0.5.0 (novembro de 2024) ou posterior). A versão mais recente do SQL Server Connector é necessária para dar suporte à identidade gerenciada.
- Execute o comando
CREATE CREDENTIAL
T-SQL com aWITH IDENTITY = 'Managed Identity'
cláusula usando o caminho AKV como um nome de credencial.
-- Create credential with managed identity and the credential name for the AKV called 'contoso'
-- with the AKV path = 'contoso.vault.azure.net'
CREATE CREDENTIAL [contoso.vault.azure.net]
WITH IDENTITY = 'Managed Identity'
FOR CRYPTOGRAPHIC PROVIDER AzureKeyVault_EKM_Prov
- Execute o restante da configuração do T-SQL do EKM com AKV.
Para obter mais informações, consulte Suporte de identidade gerenciada para gerenciamento extensível de chaves com o Azure Key Vault.
Observação
- O sinalizador de rastreamento 4675, desabilitado por padrão, permite solucionar problemas da credencial no nível do servidor e pode ser usado para confirmar a identidade gerenciada primária atribuída à instância do SQL Server.
- O suporte à identidade gerenciada não introduz nenhuma sintaxe T-SQL ou alterações de exibição do sistema, pois essa funcionalidade já existe para a Instância Gerenciada de SQL do Azure.
- Não há suporte para identidades gerenciadas para a credencial no nível do servidor no SQL Server local. Quando usado acidentalmente com backup ou restauração no Armazenamento do Azure ou no EKM com AKV, você verá a mensagem de erro "A identidade gerenciada primária não está definida para o servidor..." e são encaminhados para a documentação pública.
Sobre atualizações cumulativas para SQL Server
Cada nova atualização cumulativa do SQL Server contém todos os hotfixes e correções de segurança que estavam na compilação anterior. Recomendamos que você instale o build mais recente para sua versão do SQL Server:
Atualização cumulativa mais recente do SQL Server 2022
Status
A Microsoft confirmou que este é um problema nos produtos Microsoft listados na seção "Aplicável a".
Referências
- Configurar identidades gerenciadas em VMs (máquinas virtuais) do Azure
- Habilitar a autenticação do Microsoft Entra para SQL Server nas VMs do Azure
- CREATE CREDENTIAL (Transact-SQL)
- Back-up e restauração para URL usando identidades gerenciadas
- Suporte de identidade gerenciada para gerenciamento extensível de chaves com o Azure Key Vault
- DBCC TRACEON – sinalizadores de rastreamento (Transact-SQL)