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
Azure SQL Database
Azure SQL Managed Instance
Azure Synapse Analytics
Sistema di Piattaforma Analitica (PDW)
Database SQL in Microsoft Fabric
Crea credenziali del database. Una credenziale del database non è mappata a un login server o a un utente del database. Il database utilizza la credenziale per accedere alla risorsa esterna quando esegue un'operazione che richiede l'accesso.
Convenzioni relative alla sintassi Transact-SQL
Syntax
CREATE DATABASE SCOPED CREDENTIAL credential_name
WITH IDENTITY = 'identity_name'
[ , SECRET = 'secret' ]
[ ; ]
Arguments
credential_name
Specifica il nome della credenziale con ambito database che si vuole creare.
credential_name non può iniziare con il segno numero (#). Le credenziali di sistema iniziano con ##. La lunghezza massima di credential_name è di 128 caratteri.
IDENTITÀ = 'identity_name'
Specifica il nome dell'account da usare quando si connette fuori dal server.
Per importare un file da Archiviazione BLOB di Azure o Azure Data Lake Storage usando una chiave condivisa, il nome dell'identità deve essere
SHARED ACCESS SIGNATURE. Per altre informazioni sulle firme di accesso condiviso, vedere Uso delle firme di accesso condiviso. UsareIDENTITY = SHARED ACCESS SIGNATUREsolo per una firma di accesso condiviso.Per importare un file da Archiviazione BLOB di Azure usando un'identità gestita, il nome dell'identità deve essere
MANAGED IDENTITY.Quando si usa Kerberos (Windows Active Directory o MIT KDC), non usare il nome di dominio nell'argomento
IDENTITY. Usare semplicemente il nome dell'account.In un'istanza di SQL Server, se crei una credenziale con scopo di database e una Storage Access Key usata come
SECRET,IDENTITYviene ignorato.WITH IDENTITYnon è necessario se il contenitore nello storage Azure Blob è abilitato per l'accesso anonimo. Per un esempio di query su Archiviazione BLOB di Azure conOPENROWSET BULK, vedere Importare in una tabella da un file archiviato nell'archivio BLOB di Azure.In SQL Server 2022 (16.x) e versioni successive il connettore REST-API sostituisce HADOOP. Per Archiviazione BLOB di Azure e Azure Data Lake Gen 2, l'unico metodo di autenticazione supportato è la firma di accesso condiviso. Per altre informazioni, vedere CREATE EXTERNAL DATA SOURCE.
In SQL Server 2019 (15.x), l'unica origine dati esterna PolyBase che supporta l'autenticazione Kerberos è Hadoop. Tutte le altre origini dati esterne (SQL Server, Oracle, Teradata, MongoDB, ODBC generica) supportano solo l'autenticazione di base.
I pool SQL in Azure Synapse Analytics includono le seguenti note:
- Per caricare dati in Azure Synapse Analytics, puoi usare qualsiasi valore valido per
IDENTITY. - In un pool SQL serverless di Azure Synapse Analytics le credenziali con ambito database possono specificare un'identità gestita dell'area di lavoro, un nome dell'entità servizio o un token di firma di accesso condiviso.In an Azure Synapse Analytics serverless SQL pool, database scoped credentials can specify a workspace managed identity, service principal name, or shared access signature (SAS). L'accesso tramite un'identità utente, abilitato tramite l'accesso utente con l'autenticazione pass-through di Microsoft Entra, è possibile anche con una credenziale con ambito di database, così come l'accesso anonimo a archiviazioni pubbliche disponibili. Per altre informazioni, vedere Tipi di autorizzazione di archiviazione supportati.
- In un pool SQL dedicato di Azure Synapse Analytics le credenziali con ambito database possono specificare il token di firma di accesso condiviso, l'identità dell'applicazione personalizzata, l'identità gestita dell'area di lavoro o la chiave di accesso alle risorse di archiviazione.
- Per caricare dati in Azure Synapse Analytics, puoi usare qualsiasi valore valido per
| Authentication | T-SQL | Supported | Notes |
|---|---|---|---|
| Firma di accesso condiviso | CREATE DATABASE SCOPED CREDENTIAL <credential_name> WITH IDENTITY = 'SHARED ACCESS SIGNATURE', SECRET = 'secret'; |
SQL Server 2022 e versioni successive, Istanza gestita di SQL di Azure, Azure Synapse Analytics, database SQL di Azure | |
| Identità gestita | CREATE DATABASE SCOPED CREDENTIAL <credential_name> WITH IDENTITY = 'MANAGED IDENTITY'; |
Database SQL di Azure, Istanza gestita di SQL di Azure, SQL Server 2025 con Azure Arc | Per abilitare Azure Arc, vedi Managed identity for SQL Server abilitato da Azure Arc |
| Autenticazione pass-through di Microsoft Entra tramite identità utente | CREATE DATABASE SCOPED CREDENTIAL <credential_name> WITH IDENTITY = 'USER IDENTITY'; |
|
In Azure Synapse, vedi login utente con autenticazione pass-through di Microsoft Entra |
| Autenticazione di base della chiave di accesso S3 | CREATE DATABASE SCOPED CREDENTIAL <credential_name> WITH IDENTITY = 'S3 ACCESS KEY', SECRET = '<accesskey>:<secretkey>'; |
SQL Server 2022 e versioni successive | |
| Origini dati ODBC o Kerberos (MIT KDC) |
CREATE DATABASE SCOPED CREDENTIAL <credential_name> WITH IDENTITY = '<identity_name>', SECRET = '<secret>'; |
SQL Server 2019 e versioni successive |
1 Nel database SQL di Microsoft Fabric, se non specifichi una credenziale con ambito di database, il metodo di autenticazione di default è 'USER IDENTITY' e utilizza l'account utente Microsoft Entra ID come contesto.
SECRET = 'segreto'
Specifica il segreto richiesto per l'autenticazione in uscita. È necessario specificare SECRET per importare un file dall'archiviazione BLOB di Azure. Per caricare dati dall'archiviazione BLOB di Azure in Azure Synapse Analytics o Parallel Data Warehouse, il segreto deve essere la chiave di Archiviazione di Azure.
Warning
Il valore della chiave di firma di accesso condiviso può iniziare con un punto interrogativo (?). Quando si usa la chiave di firma di accesso condiviso, rimuovere l'oggetto iniziale ?.
Remarks
Una credenziale con ambito database è un record contenente le informazioni di autenticazione necessarie per connettersi a una risorsa all'esterno di SQL Server. La maggior parte delle credenziali include un utente e una password di Windows.
Per proteggere le informazioni riservate all'interno delle credenziali con ambito database, è necessaria una chiave master del database (DMK). DMK è una chiave simmetrica che crittografa il segreto nella credenziale con ambito database. Il database deve avere un DMK prima di poter creare qualsiasi credenziali con ambito di database. Cripta il DMK con una password forte. Azure SQL Database crea un DMK con una password forte e selezionata casualmente come parte della creazione della credenziale con ambito del database, o come parte della creazione di un audit server.
Gli utenti non possono creare DMK in un database logico master . La password DMK è sconosciuta a Microsoft e non può essere scoperta dopo la creazione. Crea un DMK prima di realizzare una credenziale con scopo di database. Per altre informazioni, vedere CREATE MASTER KEY.
Quando IDENTITY si tratta di un utente Windows, il segreto può essere la password. Il segreto viene criptato con la chiave principale del servizio (SMK). Se rigeneri l'SMK, il segreto viene nuovamente criptato con il nuovo SMK.
Quando si concedono permessi per una firma di accesso condiviso (SAS) per l'uso con una tabella esterna PolyBase, si seleziona sia Container che Object come tipi di risorsa consentiti. Se non concedi questi permessi, potresti ricevere l'errore 16535 o 16561 quando tenti di accedere alla tabella esterna.
Per informazioni sulle credenziali con ambito del database, consulta la vista sys.database_scoped_credentials catalogo.
Di seguito sono elencate alcune applicazioni delle credenziali con ambito database:
SQL Server usa credenziali con ambito database per accedere a cluster Hadoop non pubblici protetti da Kerberos o Archiviazione BLOB di Azure non pubblici con PolyBase. Per altre informazioni, vedere CREATE EXTERNAL DATA SOURCE.
Azure Synapse Analytics usa credenziali con ambito database per accedere a Archiviazione BLOB di Azure non pubblici con PolyBase. Per altre informazioni, vedere CREATE EXTERNAL DATA SOURCE. Per altre informazioni sull'autenticazione dell'archiviazione di Azure Synapse, vedere Usare tabelle esterne con Synapse SQL.
SQL Database utilizza credenziali con ambito di database per la sua funzione di query elastica , che consente query su più shard di database.
database SQL usa le credenziali con ambito database per scrivere file di eventi estesi in Archiviazione BLOB di Azure.
Il database SQL usa credenziali con ambito database per i pool elastici. Per maggiori informazioni, consulta Elastic pool ti aiutano a gestire e scalare più database in Azure SQL Database
BULK INSERT e OPENROWSET utilizzano credenziali con ambito di database per accedere ai dati da Azure Blob Storage. Per maggiori informazioni, vedi Esempi di accesso massivo ai dati in Azure Blob Storage.
Usare le credenziali con ambito database con PolyBase e Istanza gestita di SQL di Azure funzionalità di virtualizzazione dei dati.
Per
BACKUP TO URLeRESTORE FROM URL, usa invece una credenziale a livello di server tramite CREATE CREDENTIAL .Usa credenziali con ambito di database con CREATE EXTERNAL MODEL
Permissions
È richiesta l'autorizzazione CONTROL per il database.
Examples
A. Creare credenziali con ambito database per l'applicazione
Nell'esempio seguente viene creata la credenziale con ambito database denominata AppCred. La credenziale con ambito database include l'utente Windows Mary5 e una password.
Crea un DMK se non esiste già. Non usare una password vuota. Usare una password complessa.
CREATE MASTER KEY ENCRYPTION BY PASSWORD = '<password>';
Crea una credenziale con ambito di database:
CREATE DATABASE SCOPED CREDENTIAL AppCred
WITH IDENTITY = 'Mary5',
SECRET = '<password>';
B. Creare credenziali con ambito database per una firma di accesso condiviso
L'esempio seguente crea una credenziale con ambito di database che puoi usare per creare una fonte di dati esterna. Questa credenziale può eseguire operazioni di massa, come BULK INSERT e OPENROWSET BULK.
Crea un DMK se non esiste già. Non usare una password vuota. Usare una password complessa.
CREATE MASTER KEY ENCRYPTION BY PASSWORD = '<password>';
Creare credenziali con ambito database. Sostituire <key> con il valore appropriato.
CREATE DATABASE SCOPED CREDENTIAL MyCredentials
WITH IDENTITY = 'SHARED ACCESS SIGNATURE',
SECRET = '<key>';
C. Creare credenziali con ambito database per la connettività PolyBase ad Azure Data Lake Store
L'esempio seguente crea una credenziale con ambito database che è possibile usare per creare un'origine dati esterna che può essere usata da PolyBase in Azure Synapse Analytics.
Azure Data Lake Store utilizza un'applicazione Microsoft Entra per l'autenticazione service-to-service.
Creare un'applicazione Microsoft Entra e documentare il client_id, OAuth_2.0_Token_EndPoint e La chiave prima di provare a creare credenziali con ambito database.
Crea un DMK se non esiste già. Non usare una password vuota. Usare una password complessa.
CREATE MASTER KEY ENCRYPTION BY PASSWORD = '<password>';
Creare credenziali con ambito database. Sostituire <key> con il valore appropriato.
CREATE DATABASE SCOPED CREDENTIAL ADL_User
WITH IDENTITY = '<client_id>@<OAuth_2.0_Token_EndPoint>',
SECRET = '<key>';
D. Creare credenziali con ambito database usando l'identità gestita
Si applica a: SQL Server 2025 (17.x) e versioni successive
SQL Server 2025 (17.x) introduce il supporto per le identità gestite di Microsoft Entra. Per informazioni su come utilizzare un'identità gestita con SQL Server abilitato da Azure Arc, vedi Managed identity for SQL Server abilitato da Azure Arc.
EXECUTE sp_configure 'allow server scoped db credentials', 1;
RECONFIGURE;
GO
CREATE DATABASE SCOPED CREDENTIAL [managed_id]
WITH IDENTITY = 'Managed Identity';
E. Crea una credenziale con ambito di database usando Microsoft Entra ID
Si applica a: Azure SQL Database, SQL database in Microsoft Fabric
In Azure SQL Database e SQL Database in Microsoft Fabric, puoi usare il tuo account Microsoft Entra ID per autenticare una fonte di dati esterna.
Nel database SQL in Microsoft Fabric, se non specifichi una credenziale con ambito nel database, il metodo di autenticazione predefinito utilizza USER IDENTITY e utilizza l'account utente Entra ID come contesto.
CREATE DATABASE SCOPED CREDENTIAL MyCredential
WITH IDENTITY = 'User Identity';