Observação
O acesso a essa página exige autorização. Você pode tentar entrar ou alterar diretórios.
O acesso a essa página exige autorização. Você pode tentar alterar os diretórios.
Aplica-se a: SQL Server 2025 (17.x) e versões posteriores
A partir do SQL Server 2025 (17.x), você pode usar a identidade gerenciada para acessar os seguintes recursos do Azure:
- Armazenamento de Blobs do Azure
- Azure Data Lake
Pré-requisitos
-
SQL Server 2025 (17.x)
SQL Server habilitado pelo Azure Arcouhabilitar a autenticação do Microsoft Entra para SQL Server em VMs do Azure
Habilite a opção de configuração do
allow server scoped db credentialsservidor.Conceda à identidade gerenciada acesso ao recurso de Armazenamento de Blobs do Azure.
Para SQL Server em VMs do Azure
Depois de concluir as etapas necessárias, adicione duas novas entradas do Registro. Você precisa dessas entradas de registro apenas para o SQL Server em Máquinas Virtuais do Azure. Para instâncias do SQL Server habilitadas pelo Azure Arc, essas entradas são criadas automaticamente.
No Registro, atualize a HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Microsoft SQL Server\MSSQL17.MSSQLSERVER\MSSQLServer\FederatedAuthentication subchave.
Cuidado
A edição incorreta do registro pode danificar severamente seu sistema. Antes de fazer alterações no Registro, é recomendável fazer backup dos dados importantes no computador.
Crie as seguintes entradas:
| Entry | Value |
|---|---|
AADAzureStorageEndPoint |
storage.azure.com |
AADDataLakeEndPoint |
datalake.azure.net |
Criar credenciais no escopo do banco de dados
Adicione uma credencial com escopo de banco de dados para a identidade gerenciada.
Permitir credenciais de banco de dados no escopo do servidor. Execute a seguinte consulta Transact-SQL:
EXECUTE sp_configure 'allow server scoped db credentials', 1; GO RECONFIGURE;Crie uma credencial com escopo de banco de dados. Este exemplo usa o nome
managed_id:CREATE DATABASE SCOPED CREDENTIAL [managed_id] WITH IDENTITY = 'Managed Identity';
Criar fonte de dados externa
Crie a fonte de dados externa com as seguintes configurações.
Prefixo de local do conector
abs
Caminho de localização
-
abs://<container_name>@<storage_account_name>.blob.core.windows.net/, ou abs://<storage_account_name>.blob.core.windows.net/<container_name>
-
Locais com suporte por produto ou serviço
- SQL Server 2025 (17.x) habilitado pelo Azure Arc
- SQL Server 2022 (16.x): namespace hierárquico com suporte
Autenticação
- SAS (assinatura de acesso compartilhado) ou
- Identidade gerenciada
Consultar um arquivo Parquet no Azure Blob Storage
O SQL Server 2025 (17.x) dá suporte à identidade gerenciada por meio do Azure Arc. Para obter instruções, consulte a identidade gerenciada para SQL Server habilitada pelo Azure Arc.
O exemplo a seguir consulta um arquivo Parquet no Armazenamento de Blobs do Azure:
EXECUTE sp_configure 'allow server scoped db credentials', 1;
RECONFIGURE;
GO
CREATE DATABASE SCOPED CREDENTIAL [managed_id]
WITH IDENTITY = 'Managed Identity';
CREATE EXTERNAL DATA SOURCE [my_external_data_source]
WITH (
LOCATION = 'abs://<container>@<storage_account_name>.blob.core.windows.net/',
CREDENTIAL = managed_id
);
Erros e soluções
A tabela externa não está acessível (Erro 16562)
Você poderá encontrar o erro 16562 ao tentar acessar o Armazenamento de Blobs do Azure ou o Azure Data Lake se estiver faltando pré-requisitos:
Msg 16562, Level 16, State 1, Line 79
External table <name> is not accessible because location does not exist or it is used by another process.
Verifique os seguintes itens:
A instância do SQL Server está configurada corretamente para o Azure Arc. Para obter mais informações, consulte a identidade gerenciada do SQL Server habilitada pelo Azure Arc.
As entradas necessárias do Registro estão presentes.
A
allow server scoped db credentialsopção de configuração do servidor está habilitada.
O arquivo não pode ser aberto (Erro 13822)
Você poderá encontrar o erro 13822 ao acessar o Armazenamento de Blobs do Azure ou o Azure Data Lake, se a identidade gerenciada não tiver permissões na conta de armazenamento ou se o acesso à rede ao armazenamento estiver bloqueado:
Msg 13822, Level 16, State 1, Line 9
File <file> cannot be opened because it does not exist or it is used by another process.
Verifique os seguintes itens:
- A identidade gerenciada tem permissões para o contêiner de armazenamento?
- A identidade gerenciada pode acessar o contêiner de armazenamento fora do SQL Server?
- O arquivo está bloqueado exclusivamente?