Condividi tramite


CREATE ASYMMETRIC KEY (Transact-SQL)

Crea una chiave asimmetrica nel database.

Icona di collegamento a un argomentoConvenzioni della sintassi Transact-SQL

Sintassi

CREATE ASYMMETRIC KEY Asym_Key_Name 
   [ AUTHORIZATION database_principal_name ]
   {
      FROM <Asym_Key_Source>
      |
      WITH ALGORITHM = { RSA_512 | RSA_1024 | RSA_2048 }
   }
      [ ENCRYPTION BY PASSWORD = 'password' ] 

<Asym_Key_Source>::=
   FILE = 'path_to_strong-name_file'
   |
   EXECUTABLE FILE = 'path_to_executable_file'
   |
   ASSEMBLY Assembly_Name

Argomenti

  • FROM Asym_Key_Source
    Specifica l'origine da cui caricare la coppia di chiavi asimmetriche.
  • AUTHORIZATION database_principal_name
    Specifica il proprietario della chiave asimmetrica. Il proprietario non può essere un ruolo o un gruppo. Se l'opzione viene omessa, il proprietario sarà l'utente corrente.
  • FILE ='path_to_strong-name_file'
    Specifica il percorso di un file con nome sicuro da cui caricare la coppia di chiavi.
  • EXECUTABLE FILE ='path_to_executable_file'
    Specifica un file di assembly da cui caricare la chiave pubblica.
  • ASSEMBLY Assembly_Name
    Specifica il nome di un assembly da cui caricare la chiave pubblica.
  • ENCRYPTION BY PASSWORD ='password'
    Specifica la password con cui crittografare la chiave privata. Se questa clausola viene omessa, la chiave privata verrà crittografata con la chiave master del database. password può includere un massimo di 128 caratteri.

Osservazioni

Una chiave asimmetrica è un'entità a protezione diretta a livello del database. Nella forma predefinita, questa entità contiene sia una chiave pubblica che una chiave privata. Se eseguita senza la clausola FROM, l'istruzione CREATE ASYMMETRIC KEY genera una nuova coppia di chiavi. Se eseguita con la clausola FROM, l'istruzione CREATE ASYMMETRIC KEY importa una coppia di chiavi da un file o importa una chiave pubblica da un assembly.

Per impostazione predefinita, la chiave privata è protetta dalla chiave master del database. Se non esiste una chiave master del database, è necessario proteggere la chiave privata con una password. In presenza di una chiave master del database, la password è facoltativa.

La chiave privata può avere una lunghezza di 512, 1024 o 2048 bit.

Autorizzazioni

È richiesta l'autorizzazione CREATE ASYMMETRIC KEY per il database. Se si specifica la clausola AUTHORIZATION, è richiesta l'autorizzazione IMPERSONATE per l'entità di database o l'autorizzazione ALTER per il ruolo applicazione.

Esempi

A. Creazione di una chiave asimmetrica

Nell'esempio seguente viene creata una chiave asimmetrica denominata PacificSales09 tramite l'algoritmo RSA_2048 e la chiave privata viene protetta con una password.

CREATE ASYMMETRIC KEY PacificSales09 
    WITH ALGORITHM = RSA_2048 
    ENCRYPTION BY PASSWORD = 'bmsA$dk7i82bv55foajsd9764'; 
GO

B. Creazione di una chiave asimmetrica da un file e concessione dell'autorizzazione a un utente

Nell'esempio seguente viene creata la chiave asimmetrica PacificSales19 da una coppia di chiavi archiviata in un file e quindi l'utente SyedAbbas viene autorizzato all'utilizzo della chiave asimmetrica.

CREATE ASYMMETRIC KEY PacificSales19 AUTHORIZATION SyedAbbas  
    FROM FILE = ' c:\PacSales\Managers\SyedAbbasCerts.tmp'  
    ENCRYPTION BY PASSWORD = '35698ofg0sjlkfLKJ4548872$$$2';
GO

Vedere anche

Riferimento

ALTER ASYMMETRIC KEY (Transact-SQL)
DROP ASYMMETRIC KEY (Transact-SQL)

Altre risorse

Scelta di un algoritmo di crittografia
Gerarchia di crittografia

Guida in linea e informazioni

Assistenza su SQL Server 2005