Habilitar a TDE usando EKM
Este tópico descreve como habilitar TDE (criptografia de dados transparente) no SQL Server 2012 para proteger uma chave de criptografia de banco de dados usando uma chave assimétrica armazenada em um módulo EKM (gerenciamento de chave extensível) com Transact-SQL.
Ela criptografa o armazenamento de um banco de dados inteiro usando uma chave simétrica chamada de chave de criptografia de banco de dados. Também é possível proteger a chave de criptografia do banco de dados através do uso de um certificado protegido pela chave mestra do banco de dados mestre. Para obter mais informações sobre como proteger a chave de criptografia do banco de dados usando a chave mestra de banco de dados, consulte Criptografia de Dados Transparente (TDE).
Neste tópico
Antes de começar:
Limitações e restrições
Segurança
Para habilitar TDE usando EKM, usando Transact-SQL
Antes de começar
Limitações e restrições
Você deve ser um usuário com altos privilégios (como um administrador do sistema) para criar uma chave de criptografia de banco de dados e criptografar um banco de dados. É necessário que esse usuário possa ser autenticado pelo módulo EKM.
Ao iniciar, o Mecanismo de Banco de Dados precisa abrir o banco de dados. Para fazer isso, você deverá criar uma credencial que será autenticada pelo EKM, que adicioná-la ao logon baseado em uma chave assimétrica. Os usuários não podem efetuar logon com esse logon, mas o Mecanismo de Banco de Dados poderá se autenticar com o dispositivo de EKM.
Se a chave assimétrica armazenada no módulo EKM for perdida, não será possível abrir o banco de dados no SQL Server. Se o provedor de EKM permitir o backup da chave assimétrica, você deverá criar o backup e armazená-lo em um local seguro.
As opções e os parâmetros exigidos por seu provedor de EKM podem diferir do que é fornecido no exemplo de código abaixo. Para obter mais informações, consulte seu provedor de EKM.
Segurança
Permissões
Este tópico usa as seguintes permissões:
Para alterar uma opção de configuração e executar a instrução RECONFIGURE, você deve ter a permissão em nível de servidor ALTER SETTINGS. A permissão de ALTER SETTINGS é implicitamente mantida pelas funções de servidor fixas sysadmin e serveradmin.
Requer a permissão ALTER ANY CREDENTIAL.
Requer a permissão ALTER ANY LOGIN.
Requer a permissão CREATE ASYMMETRIC KEY.
Requer a permissão CONTROL no banco de dados para criptografá-lo.
[Top]
Usando Transact-SQL
Para habilitar a TDE usando EKM
Copie os arquivos fornecidos pelo provedor de EKM em um local apropriado no computador com o SQL Server. Neste exemplo, usamos a pasta C:\EKM.
Instale os certificados no computador, como requerido pelo provedor de EKM.
Observação O SQL Server não fornece um provedor de EKM. Cada provedor de EKM pode ter procedimentos diferentes para instalar, configurar e autorizar os usuários. Consulte a documentação do provedor de EKM para completar esta etapa.
No Pesquisador de Objetos, conecte-se a uma instância do Mecanismo de Banco de Dados.
Na barra Padrão, clique em Nova Consulta.
Copie e cole o exemplo a seguir na janela de consulta e clique em Executar.
-- Enable advanced options. sp_configure 'show advanced options', 1 ; GO RECONFIGURE ; GO -- Enable EKM provider sp_configure 'EKM provider enabled', 1 ; GO RECONFIGURE ; GO -- Create a cryptographic provider, which we have chosen to call "EKM_Prov," based on an EKM provider CREATE CRYPTOGRAPHIC PROVIDER EKM_Prov FROM FILE = 'C:\EKM_Files\KeyProvFile.dll' ; GO -- Create a credential that will be used by system administrators. CREATE CREDENTIAL sa_ekm_tde_cred WITH IDENTITY = 'Identity1', SECRET = 'q*gtev$0u#D1v' FOR CRYPTOGRAPHIC PROVIDER EKM_Prov ; GO -- Add the system administrator credential to a high privileged user such as your own domain login in the format [DOMAIN\login]. ALTER LOGIN UCBERKELEY\shcooper ADD CREDENTIAL sa_ekm_tde_cred ; GO -- create an asymmetric key stored inside the EKM provider USE master ; GO CREATE ASYMMETRIC KEY ekm_login_key FROM PROVIDER [EKM_Prov] WITH ALGORITHM = RSA_512, PROVIDER_KEY_NAME = 'SQL_Server_Key' ; GO -- Create a credential that will be used by the Database Engine. CREATE CREDENTIAL ekm_tde_cred WITH IDENTITY = 'Identity2' , SECRET = 'jeksi84&sLksi01@s' FOR CRYPTOGRAPHIC PROVIDER EKM_Prov ; -- Add a login used by TDE, and add the new credential to the login. CREATE LOGIN EKM_Login FROM ASYMMETRIC KEY ekm_login_key ; GO ALTER LOGIN EKM_Login ADD CREDENTIAL ekm_tde_cred ; GO -- Create the database encryption key that will be used for TDE. USE AdventureWorks2012 ; GO CREATE DATABASE ENCRYPTION KEY WITH ALGORITHM = AES_128 ENCRYPTION BY SERVER ASYMMETRIC KEY ekm_login_key ; GO -- Alter the database to enable transparent data encryption. ALTER DATABASE AdventureWorks2012 SET ENCRYPTION ON ; GO
Para obter mais informações, consulte o seguinte:
[Top]
Consulte também
Conceitos
Gerenciamento extensível de chaves usando o Cofre da Chave do Azure (SQL Server)