Observação
O acesso a essa página exige autorização. Você pode tentar entrar ou alterar diretórios.
O acesso a essa página exige autorização. Você pode tentar alterar os diretórios.
Este tópico descreve como habilitar a TDE (transparent Data Encryption) no SQL Server 2014 para proteger uma chave de criptografia de banco de dados usando uma chave assimétrica armazenada em um módulo EKM (gerenciamento extensível de chaves) com Transact-SQL.
O TDE criptografa o armazenamento de um banco de dados inteiro usando uma chave simétrica chamada chave de criptografia de banco de dados. A chave de criptografia do banco de dados também pode ser protegida usando 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 do banco de dados, consulte Transparent Data Encryption (TDE). Para obter informações sobre como configurar o TDE quando o SQL Server estiver em execução em uma VM do Azure, consulte Gerenciamento extensível de chaves usando o Azure Key Vault (SQL Server).
Nesse Tópico
Antes de começar:
Antes de começar
Limitações e restrições
Você deve ser um usuário com privilégios elevados (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 deve 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 fazer logon usando esse logon, mas o Mecanismo de Banco de Dados poderá se autenticar com o dispositivo EKM.
Se a chave assimétrica armazenada no módulo EKM for perdida, o banco de dados não poderá ser aberto pelo SQL Server. Se o provedor EKM permitir que você faça backup da chave assimétrica, você deverá criar um backup e armazená-la em um local seguro.
As opções e os parâmetros exigidos pelo provedor EKM podem ser diferentes 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 receber a permissão de nível de servidor ALTER SETTINGS. A permissão ALTER SETTINGS é mantida implicitamente pelas funções de servidor fixas sysadmin e serveradmin.
Requer a permissão ALTER ANY CREDENTIAL.
Requer a permissão ALTER ANY LOGIN.
É necessária a permissão CREATE ASYMMETRIC KEY.
Requer permissão CONTROL no banco de dados para criptografar o banco de dados.
Usando Transact-SQL
Para habilitar o TDE usando o EKM
Copie os arquivos fornecidos pelo provedor EKM para um local apropriado no computador do SQL Server. Neste exemplo, usamos a pasta C:\EKM .
Instale certificados no computador conforme exigido pelo provedor EKM.
Observação
O SQL Server não fornece um provedor EKM. Cada provedor EKM pode ter procedimentos diferentes para instalar, configurar e autorizar usuários. Consulte a documentação do provedor EKM para concluir 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 credential to a high privileged user such as your -- own domain login in the format [DOMAIN\login]. ALTER LOGIN Contoso\Mary 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: