Nota
O acesso a esta página requer autorização. Pode tentar iniciar sessão ou alterar os diretórios.
O acesso a esta página requer autorização. 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), pode usar a identidade gerida para aceder aos seguintes recursos Azure:
- Armazenamento de Blobs do Azure
- Azure Data Lake
Pré-requisitos
- SQL Server 2025 (17.x)
- SQL Server habilitado pelo Azure Arc
- Ativar a opção de configuração do
allow server scoped db credentialsservidor - Dê à identidade gerenciada acesso ao recurso de Armazenamento de Blob do Azure.
Criar credenciais com escopo no banco de dados
Adicione uma credencial com escopo de banco de dados para identidade gerenciada.
Permitir credenciais de banco de dados com escopo de servidor. Executar a seguinte consulta Transact-SQL:
EXECUTE sp_configure 'allow server scoped db credentials', 1; GO RECONFIGURE;Crie uma credencial com escopo específico a um 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 localização 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>
-
Localizações suportadas por produto/serviço
- SQL Server 2025 (17.x) ativado pelo Azure Arc
- SQL Server 2022 (16.x): namespace hierárquico suportado
Authentication
- Assinatura de acesso compartilhado (SAS) ou
- Identidade gerenciada
Consultar um ficheiro Parquet no Armazenamento de Blobs do Azure
O SQL Server 2025 (17.x) suporta identidade gerida através do Azure Arc. Para instruções, consulte Identidade gerida para SQL Server ativada 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ê pode encontrar o erro 16562 ao tentar acessar o Armazenamento de Blobs do Azure ou o Azure Data Lake se faltarem os 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.
Confira os seguintes itens:
A instância do SQL Server está devidamente configurada para Azure Arc. Para mais informações, consulte Identidade gerida para SQL Server ativada pelo Azure Arc.
As entradas de registo necessárias existem.
Verifica se a
allow server scoped db credentialsopção de configuração do servidor está ativada.
Não é possível abrir o ficheiro (Erro 13822)
Você pode 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 da 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.
Confira 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 ficheiro está bloqueado exclusivamente?