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 Arc
- Habilitar a opção de configuração do
allow server scoped db credentialsservidor - Conceda à identidade gerenciada acesso ao recurso de Armazenamento de Blobs do Azure.
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/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.
Verifique se a opção de configuração do
allow server scoped db credentialsservidor 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?