ALTER CRYPTOGRAPHIC PROVIDER (Transact-SQL)

Aplica-se: SQL Server

Altera um provedor criptográfico no SQL Server a partir de um provedor EKM (Gerenciamento Extensível de Chaves).

Convenções de sintaxe de Transact-SQL

Sintaxe

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

Argumentos

provider_name
Nome do provedor de Gerenciamento de Chaves Extensível.

Path_of_DLL
Caminho do arquivo .dll que implementa a interface de Gerenciamento Extensível de Chaves do SQL Server.

ENABLE | DISABLE
Habilita ou desabilita um provedor.

Comentários

Se o provedor alterar o arquivo .dll usado para implementar o Gerenciamento de Chaves Extensível SQL Server, será necessário usar a instrução ALTER CRYPTOGRAPHIC PROVIDER.

Quando o caminho do arquivo .dll é atualizado usando a instrução ALTER CRYPTOGRAPHIC PROVIDER, o SQL Server executa as seguintes ações:

  • Desabilita o provedor.
  • Verifica a assinatura DLL e assegura que o arquivo .dll tenha o mesmo GUID que foi registrado no catálogo.
  • Atualiza a versão DLL no catálogo.

Quando um provedor EKM estiver definido como DISABLE, quaisquer tentativas de usar o provedor com instruções de criptografia em novas conexões falharão.

Para desabilitar um provedor, todas as sessões que o usam devem ser terminadas.

Quando uma dll de provedor EKM não implementar todos os métodos necessários, ALTER CRYPTOGRAPHIC PROVIDER poderá retornar o erro 33085:

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

Quando o arquivo de cabeçalho usado para criar a dll de provedor EKM provedor estiver desatualizado, ALTER CRYPTOGRAPHIC PROVIDER poderá retornar o erro 33032:

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

Permissões

Requer a permissão CONTROL no provedor criptográfico.

Exemplos

O exemplo a seguir altera um provedor criptográfico, chamado SecurityProvider no SQL Server, para uma versão mais nova de um arquivo .dll. Essa nova versão é chamada c:\SecurityProvider\SecurityProvider_v2.dll e é instalada no servidor. O certificado do provedor deve ser instalado no servidor.

  1. Desabilite o provedor para executar o upgrade. Isso encerrará todas as sessões de criptografia abertas.
ALTER CRYPTOGRAPHIC PROVIDER SecurityProvider   
DISABLE;  
GO  
  1. Faça upgrade do arquivo. dll do provedor. O GUID deve ser o mesmo que a versão anterior, mas a versão pode ser diferente.
ALTER CRYPTOGRAPHIC PROVIDER SecurityProvider  
FROM FILE = 'c:\SecurityProvider\SecurityProvider_v2.dll';  
GO  
  1. Habilite o provedor atualizado.
ALTER CRYPTOGRAPHIC PROVIDER SecurityProvider   
ENABLE;  
GO  

Consulte Também

EKM (Gerenciamento extensível de chaves)
CREATE CRYPTOGRAPHIC PROVIDER (Transact-SQL)
DROP CRYPTOGRAPHIC PROVIDER (Transact-SQL)
CREATE SYMMETRIC KEY (Transact-SQL)
Gerenciamento extensível de chaves Usando o Azure Key Vault (SQL Server)