ALTER CRYPTOGRAPHIC PROVIDER (Transact-SQL)

Si applica a:SQL Server

Modifica un provider del servizio di crittografia in SQL Server da un provider EKM (Extensible Key Management).

Convenzioni di sintassi Transact-SQL

Sintassi

ALTER CRYPTOGRAPHIC PROVIDER provider_name   
    [ FROM FILE = path_of_DLL ]  
    ENABLE | DISABLE  

Nota

Per visualizzare la sintassi Transact-SQL per SQL Server 2014 (12.x) e versioni precedenti, vedere la documentazione delle versioni precedenti.

Argomenti

provider_name
Nome del provider EKM.

Path_of_DLL
Percorso del file DLL che implementa l'interfaccia EKM di SQL Server.

ENABLE | DISABLE
Abilita o disabilita un provider.

Osservazioni:

Se il provider modifica il file DLL usato per l'implementazione di EKM (Extensible Key Management) in SQL Server, è necessario usare l'istruzione ALTER CRYPTOGRAPHIC PROVIDER.

Quando il percorso del file DLL viene aggiornato usando l'istruzione ALTER CRYPTOGRAPHIC PROVIDER, SQL Server esegue le azioni seguenti:

  • Disabilitazione del provider.
  • Verifica della firma DLL e del fatto che il GUID del file DLL sia uguale a quello registrato nel catalogo.
  • Aggiornamento della versione DLL nel catalogo.

Quando un provider EKM viene impostato su DISABLE, qualsiasi tentativo effettuato su nuove connessioni di utilizzare il provider con istruzioni di crittografia avrà esito negativo.

Per disabilitare un provider, è necessario terminare tutte le sessioni che lo utilizzano.

Quando la dll di un provider EKM non implementa tutti i metodi necessari, ALTER CRYPTOGRAPHIC PROVIDER può restituire l'errore 33085:

One or more methods cannot be found in cryptographic provider library '%.*ls'.

Quando il file di intestazione utilizzato per creare la dll del provider EKM non è aggiornato, ALTER CRYPTOGRAPHIC PROVIDER può restituire l'errore 33032:

SQL Crypto API version '%02d.%02d' implemented by provider is not supported. Supported version is '%02d.%02d'.

Autorizzazioni

È richiesta l'autorizzazione CONTROL per il provider di crittografia.

Esempi

L'esempio seguente modifica un provider di crittografia denominato SecurityProvider in SQL Server con una versione più recente di un file DLL. La nuova versione è denominata c:\SecurityProvider\SecurityProvider_v2.dll e viene installata nel server. Il certificato del provider deve essere installato nel server.

  1. Per eseguire l'aggiornamento, disabilitare il provider. Tutte le sessioni di crittografia aperte verranno terminate.
ALTER CRYPTOGRAPHIC PROVIDER SecurityProvider   
DISABLE;  
GO  
  1. Aggiornare il file DLL del provider. Il GUID deve corrispondere a quello della versione precedente, ma la versione può essere diversa.
ALTER CRYPTOGRAPHIC PROVIDER SecurityProvider  
FROM FILE = 'c:\SecurityProvider\SecurityProvider_v2.dll';  
GO  
  1. Abilitare il provider aggiornato.
ALTER CRYPTOGRAPHIC PROVIDER SecurityProvider   
ENABLE;  
GO  

Vedi anche

Extensible Key Management (EKM)
CREATE CRYPTOGRAPHIC PROVIDER (Transact-SQL)
DROP CRYPTOGRAPHIC PROVIDER (Transact-SQL)
CREATE SYMMETRIC KEY (Transact-SQL)
Extensible Key Management con Azure Key Vault (SQL Server)