Condividi tramite


CREATE CREDENTIAL (Transact-SQL)

Crea una credenziale.

Icona di collegamento a un argomento Convenzioni della sintassi Transact-SQL

Sintassi

CREATE CREDENTIAL credential_name WITH IDENTITY = 'identity_name'
    [ , SECRET = 'secret' ]
        [ FOR CRYPTOGRAPHIC PROVIDER cryptographic_provider_name ]

Argomenti

  • credential_name
    Viene specificato il nome delle credenziali create. credential_name non può iniziare con il simbolo cancelletto (#). perché tale simbolo viene utilizzato per le credenziali di sistema.

  • IDENTITY ='identity_name'
    Specifica il nome dell'account da utilizzare per la connessione all'esterno del server.

  • SECRET ='secret'
    Specifica il segreto richiesto per l'autenticazione in uscita. Questa clausola è facoltativa.

  • FOR CRYPTOGRAPHIC PROVIDER cryptographic_provider_name
    Specifica il nome di un provider EKM (Enterprise Key Management). Per ulteriori informazioni su EKM, vedere Extensible Key Management (EKM).

Osservazioni

Una credenziale è 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.

Se IDENTITY è un utente di Windows, il segreto può essere la password. Il segreto viene crittografato con la chiave master del servizio. Se la chiave master del servizio viene rigenerata, il segreto viene ricrittografato con la nuova chiave master del servizio.

Dopo aver creato una credenziale è possibile eseguirne il mapping a un account di accesso di SQL Server tramite CREATE LOGIN o ALTER LOGIN. È possibile eseguire il mapping di un account di accesso di SQL Server a una sola credenziale, mentre è possibile eseguire il mapping di una credenziale a più account di accesso di SQL Server. Per ulteriori informazioni, vedere Credenziali (Motore di database).

Le informazioni sulle credenziali sono visibili nella vista del catalogo sys.credentials.

Se non è presente una credenziale su cui viene eseguito il mapping a un account accesso per il provider, viene utilizzata la credenziale sulla quale viene eseguito il mapping all'account del servizio SQL Server.

A un account di accesso è possibile eseguire il mapping di più credenziali, a condizione che vengano utilizzate con provider distinti. È possibile eseguire il mapping di una sola credenziale per provider per ogni account di accesso. Sulla stessa credenziale è possibile eseguire il mapping ad altri account di accesso.

Autorizzazioni

È richiesta l'autorizzazione ALTER ANY CREDENTIAL.

Esempi

Nell'esempio seguente viene creata la credenziale denominata AlterEgo. Tale credenziale contiene l'utente di Windows Mary5 e una password.

CREATE CREDENTIAL AlterEgo WITH IDENTITY = 'Mary5', 
    SECRET = '<EnterStrongPasswordHere>';
GO

Nell'esempio seguente viene utilizzato un account creato in precedenza denominato User1OnEKM in un modulo EKM tramite gli strumenti di gestione di EKM, con un tipo di account di base e una password. Tramite l'account sysadmin nel server viene creata una credenziale utilizzata per connettersi all'account EKM, che viene assegnata all'account SQL Server User1:

CREATE CREDENTIAL CredentialForEKM
WITH IDENTITY='User1OnEKM'
, SECRET='<EnterStrongPasswordHere>'
  FOR CRYPTOGRAPHIC PROVIDER MyEKMProvider;
GO
/* Modify the login to assign the cryptographic provider credential */
ALTER LOGIN User1
ADD CREDENTIAL CredentialForEKM;
/* Modify the login to assign a non cryptographic provider credential */ 
ALTER LOGIN User1
WITH CREDENTIAL = AlterEgo;
GO

Vedere anche

Riferimento

ALTER CREDENTIAL (Transact-SQL)

DROP CREDENTIAL (Transact-SQL)

CREATE LOGIN (Transact-SQL)

ALTER LOGIN (Transact-SQL)

sys.credentials (Transact-SQL)

Concetti

Credenziali (Motore di database)