CREATE DATABASE SCOPED CREDENTIAL (Transact-SQL)CREATE DATABASE SCOPED CREDENTIAL (Transact-SQL)

QUESTO ARGOMENTO SI APPLICA A: sìSQL Server (a partire dalla versione 2016)sìDatabase SQL di AzuresìAzure SQL Data Warehouse noParallel Data Warehouse THIS TOPIC APPLIES TO: yesSQL Server (starting with 2016)yesAzure SQL DatabaseyesAzure SQL Data Warehouse noParallel Data Warehouse

Crea credenziali del database.Creates a database credential. Le credenziali del database non sono mappata a un account di accesso al server o a un utente di database.A database credential is not mapped to a server login or database user. Le credenziali vengono usate dal database per accedere al percorso esterno ogni volta che l'operazione eseguita dal database lo richiede.The credential is used by the database to access to the external location anytime the database is performing an operation that requires access.

Icona di collegamento a un argomentoConvenzioni della sintassi Transact-SQLTopic link icon Transact-SQL Syntax Conventions

SintassiSyntax


CREATE DATABASE SCOPED CREDENTIAL credential_name   
WITH IDENTITY = 'identity_name'  
    [ , SECRET = 'secret' ]  

ArgomentiArguments

credential_namecredential_name
Specifica il nome della credenziale con ambito database che si vuole creare.Specifies the name of the database scoped credential being created. credential_name non può iniziare con il simbolo del cancelletto (#).credential_name cannot start with the number (#) sign. perché tale simbolo viene utilizzato per le credenziali di sistema.System credentials start with ##.

IDENTITY ='identity_name'IDENTITY ='identity_name'
Specifica il nome dell'account da utilizzare per la connessione all'esterno del server.Specifies the name of the account to be used when connecting outside the server. Per importare un file dall'archiviazione BLOB di Azure usando una chiave di condivisione, il nome dell'identità deve essere SHARED ACCESS SIGNATURE.To import a file from Azure Blob storage using share key, the identity name must be SHARED ACCESS SIGNATURE. Per caricare dati in SQL DW è possibile usare qualsiasi valore valido per l'identità.To load data into SQL DW, any valid value can be used for identity. Per altre informazioni sulle firme di accesso condiviso, vedere Uso delle firme di accesso condiviso.For more information about shared access signatures, see Using Shared Access Signatures (SAS).

SECRET ='secret'SECRET ='secret'
Specifica il segreto richiesto per l'autenticazione in uscita.Specifies the secret required for outgoing authentication. È necessario specificare SECRET per importare un file dall'archiviazione BLOB di Azure.SECRET is required to import a file from Azure Blob storage. Per caricare dati dall'archiviazione BLOB di Azure in SQL DW, il segreto deve essere la chiave di archiviazione di Azure.To load from Azure Blob storage into SQL DW, the Secret must be the Azure Storage Key.

Avviso

Il valore della chiave di firma di accesso condiviso può iniziare con "?" (punto interrogativo).The SAS key value might begin with a '?' (question mark). Quando si usa la chiave di firma di accesso condiviso, è necessario rimuovere il carattere "?" iniziale,When you use the SAS key, you must remove the leading '?'. altrimenti potrebbe verificarsi un blocco.Otherwise your efforts might be blocked.

RemarksRemarks

Una credenziale con ambito database è un record contenente le informazioni di autenticazione necessarie per connettersi a una risorsa all'esterno di SQL ServerSQL Server.A database scoped credential is a record that contains the authentication information that is required to connect to a resource outside SQL ServerSQL Server. La maggior parte delle credenziali include un utente e una password di Windows.Most credentials include a Windows user and password.

Prima di creare credenziali con ambito database, il database deve avere una chiave master per proteggere le credenziali.Before creating a database scoped credential, the database must have a master key to protect the credential. Per altre informazioni, vedere CREATE MASTER KEY (Transact-SQL).For more information, see CREATE MASTER KEY (Transact-SQL).

Se IDENTITY è un utente di Windows, il segreto può essere la password.When IDENTITY is a Windows user, the secret can be the password. Il segreto viene crittografato con la chiave master del servizio.The secret is encrypted using the service master key. Se la chiave master del servizio viene rigenerata, il segreto viene ricrittografato con la nuova chiave master del servizio.If the service master key is regenerated, the secret is re-encrypted using the new service master key.

Altre informazioni sulle credenziali con ambito database sono disponibili nella vista del catalogo sys.database_scoped_credentials.Information about database scoped credentials is visible in the sys.database_scoped_credentials catalog view.

Di seguito vengono elencate alcune applicazioni delle credenziali con ambito database:Hereare some applications of database scoped credentials:

AutorizzazioniPermissions

È richiesta l'autorizzazione CONTROL per il database.Requires CONTROL permission on the database.

EsempiExamples

A.A. Creazione credenziali con ambito database per l'applicazione.Creating a database scoped credential for your application.

Nell'esempio seguente viene creata la credenziale con ambito database denominata AppCred.The following example creates the database scoped credential called AppCred. La credenziale con ambito database include l'utente Windows Mary5 e una password.The database scoped credential contains the Windows user Mary5 and a password.

-- Create a db master key if one does not already exist, using your own password.  
CREATE MASTER KEY ENCRYPTION BY PASSWORD='<EnterStrongPasswordHere>';  

-- Create a database scoped credential.  
CREATE DATABASE SCOPED CREDENTIAL AppCred WITH IDENTITY = 'Mary5',   
    SECRET = '<EnterStrongPasswordHere>';  
GO  

B.B. Creazione di credenziali con ambito database per una firma di accesso condiviso.Creating a database scoped credential for a shared access signature.

Nell'esempio seguente viene creata una credenziale con ambito database che può essere usata per creare un'origine dati esterna che può eseguire operazioni in blocco, come ad esempio BULK INSERT e OPENROWSET.The following example creates a database scoped credential that can be used to create an external data source, which can do bulk operations, such as BULK INSERT and OPENROWSET. Le firme di accesso condiviso non possono essere usate con PolyBase in SQL Server, nella piattaforma di strumenti analitici o in SQL DW.Shared Access Signatures cannot be used with PolyBase in SQL Server, APS or SQL DW.

CREATE DATABASE SCOPED CREDENTIAL MyCredentials  
WITH IDENTITY = 'SHARED ACCESS SIGNATURE',
SECRET = 'QLYMgmSXMklt%2FI1U6DcVrQixnlU5Sgbtk1qDRakUBGs%3D';

C.C. Creazione di credenziali con ambito database per la connettività di PolyBase per archivio Azure Data Lake.Creating a database scoped credential for PolyBase Connectivity to Azure Data Lake Store.

Nell'esempio seguente viene creata una credenziale con ambito database che può essere usata per creare un'origine dati esterna che può essere usata da PolyBase in Azure SQL Data Warehouse.The following example creates a database scoped credential that can be used to create an external data source, which can be used by PolyBase in Azure SQL Data Warehouse.

Azure Data Lake Store usa un'applicazione di Azure Active Directory per l'autenticazione Service to Service.Azure Data Lake Store uses an Azure Active Directory Application for Service to Service Authentication. Creare un'applicazione AAD e documentare client_id, OAuth_2.0_Token_EndPoint e chiave prima di creare una credenziale con ambito database.Please create an AAD application and document your client_id, OAuth_2.0_Token_EndPoint, and Key before you try to create a database scoped credential.

CREATE DATABASE SCOPED CREDENTIAL ADL_User
WITH
    IDENTITY = '<client_id>@\<OAuth_2.0_Token_EndPoint>'
    SECRET = '<key>'
;

Ulteriori informazioniMore information

Credenziali (motore di database) Credentials (Database Engine)
ALTER DATABASE SCOPED CREDENTIAL (Transact-SQL) ALTER DATABASE SCOPED CREDENTIAL (Transact-SQL)
DROP DATABASE SCOPED CREDENTIAL (Transact-SQL) DROP DATABASE SCOPED CREDENTIAL (Transact-SQL)
sys.database_scoped_credentials sys.database_scoped_credentials
CREATE CREDENTIAL (Transact-SQL) CREATE CREDENTIAL (Transact-SQL)
sys.credentials (Transact-SQL)sys.credentials (Transact-SQL)