ALTER CRYPTOGRAPHIC PROVIDER (Transact-SQL)

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

Icona di collegamento a un argomentoConvenzioni della sintassi Transact-SQL

Sintassi

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

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 utilizzato per l'implementazione di EKM (Extensible Key Management) in SQL Server, è necessario utilizzare l'istruzione ALTER CRYPTOGRAPHIC PROVIDER.

Quando il percorso del file DLL viene aggiornato utilizzando l'istruzione ALTER CRYPTOGRAPHIC PROVIDER, tramite SQL Server vengono effettuate 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:

Impossibile trovare uno o più metodi nella libreria '%.* ls' del provider del servizio di crittografia.

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

Versione Crypto API SQL '%02d.%02d' implementata dal provider non supportata. Versione supportata: '%02d.%02d'.

Autorizzazioni

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

Esempi

Nell'esempio seguente viene modificato 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.

/* First, disable the provider to perform the upgrade.
This will terminate all open cryptographic sessions */
ALTER CRYPTOGRAPHIC PROVIDER SecurityProvider 
DISABLE;
GO

/* Upgrade the provider .dll file. The GUID must the same
as the previous version, but the version can be different. */
ALTER CRYPTOGRAPHIC PROVIDER SecurityProvider
FROM FILE = 'c:\SecurityProvider\SecurityProvider_v2.dll';
GO

/* Enable the upgraded provider. */
ALTER CRYPTOGRAPHIC PROVIDER SecurityProvider 
ENABLE;
GO