Partilhar via


ALTER CRYPTOGRAPHIC PROVIDER (Transact-SQL)

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

Ícone de vínculo de tópico Convenções de sintaxe 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.

/* 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

Consulte também

Referência

CREATE CRYPTOGRAPHIC PROVIDER (Transact-SQL)

DROP CRYPTOGRAPHIC PROVIDER (Transact-SQL)

CREATE SYMMETRIC KEY (Transact-SQL)

Conceitos

Gerenciamento extensível de chaves (EKM)