Nota
L'accesso a questa pagina richiede l'autorizzazione. Puoi provare ad accedere o a cambiare directory.
L'accesso a questa pagina richiede l'autorizzazione. Puoi provare a cambiare directory.
Si applica a: SQL Server 2025 (17.x) e versioni successive
A partire da SQL Server 2025 (17.x), è possibile usare l'identità gestita per accedere alle risorse di Azure seguenti:
- Blob Storage di Azure
- Azure Data Lake
Prerequisiti
-
SQL Server 2025 (17.x)
SQL Server abilitato da Azure ArcoAbilitare l'autenticazione Di Microsoft Entra per SQL Server in macchine virtuali di Azure
Abilitare l'opzione di configurazione del
allow server scoped db credentialsserver.Concedere all'identità gestita l'accesso alla risorsa di archiviazione BLOB di Azure.
Per SQL Server in macchine virtuali di Azure
Dopo aver completato i passaggi necessari, aggiungere due nuove voci del Registro di sistema. Queste voci del Registro di sistema sono necessarie solo per SQL Server in macchine virtuali di Azure. Per le istanze di SQL Server abilitate da Azure Arc, queste voci vengono create automaticamente.
Nel Registro di sistema aggiornare la HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Microsoft SQL Server\MSSQL17.MSSQLSERVER\MSSQLServer\FederatedAuthentication sottochiave.
Attenzione
La modifica errata del Registro di sistema può danneggiare gravemente il sistema. Prima di modificare il Registro di sistema, è consigliabile eseguire il backup di tutti i dati importanti disponibili nel computer.
Crea le voci seguenti:
| Ingresso | Value |
|---|---|
AADAzureStorageEndPoint |
storage.azure.com |
AADDataLakeEndPoint |
datalake.azure.net |
Creare credenziali con ambito database
Aggiungere credenziali con ambito database per l'identità gestita.
Consentire le credenziali del database con ambito server. Eseguire la query di Transact-SQL seguente:
EXECUTE sp_configure 'allow server scoped db credentials', 1; GO RECONFIGURE;Creare credenziali con ambito database. In questo esempio viene usato il nome
managed_id:CREATE DATABASE SCOPED CREDENTIAL [managed_id] WITH IDENTITY = 'Managed Identity';
Creare un'origine dati esterna
Creare l'origine dati esterna con le impostazioni seguenti.
Prefisso della posizione del connettore
abs
Percorso percorso
-
abs://<container_name>@<storage_account_name>.blob.core.windows.net/o abs://<storage_account_name>.blob.core.windows.net/<container_name>
-
Località supportate per prodotto o servizio
- SQL Server 2025 (17.x) abilitato da Azure Arc
- SQL Server 2022 (16.x): spazio dei nomi gerarchico supportato
Autenticazione
- Firma di accesso condiviso o
- Identità gestita
Eseguire query su un file Parquet in Archiviazione BLOB di Azure
SQL Server 2025 (17.x) supporta l'identità gestita tramite Azure Arc. Per istruzioni, vedere Identità gestita per SQL Server abilitata da Azure Arc.
L'esempio seguente esegue una query su un file Parquet nell'archiviazione blob di 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
);
Errori e soluzioni
Tabella esterna non accessibile (Errore 16562)
È possibile che si verifichi l'errore 16562 quando si tenta di accedere ad Archiviazione BLOB di Azure o Azure Data Lake se mancano i prerequisiti:
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.
Controllare gli elementi seguenti:
L'istanza di SQL Server è configurata correttamente per Azure Arc. Per altre informazioni, vedere Identità gestita per SQL Server abilitata da Azure Arc.
Le voci del Registro di sistema necessarie esistono.
L'opzione
allow server scoped db credentialsdi configurazione del server è abilitata.
Impossibile aprire il file (Errore 13822)
È possibile che si verifichi l'errore 13822 quando si accede ad archiviazione Blob di Azure o ad Azure Data Lake, se l'identità gestita non dispone delle autorizzazioni per l'account di archiviazione o l'accesso alla rete per l'archiviazione è bloccato.
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.
Controllare gli elementi seguenti:
- L'identità gestita dispone delle autorizzazioni per il contenitore di archiviazione?
- L'identità gestita può accedere al contenitore di archiviazione all'esterno di SQL Server?
- Il file è bloccato esclusivamente?