ALTER CRYPTOGRAPHIC PROVIDER (Transact-SQL)
Altera um provedor criptográfico no SQL Server a partir de um provedor EKM (Gerenciamento de Chaves Extensível).
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)