Habilitar TDE con EKM

En este tema se describe cómo habilitar el cifrado de datos transparente (TDE) en SQL Server 2012 para proteger una clave de cifrado de base de datos mediante una clave asimétrica almacenada en un módulo EKM (Administración extensible de claves) con Transact-SQL.

TDE cifra el almacenamiento de una base de datos completa utilizando una clave simétrica denominada clave de cifrado de base de datos. La clave de cifrado de base de datos también se puede proteger utilizando un certificado que se protege mediante la clave maestra de base de datos de la base de datos maestra. Para obtener más información sobre cómo proteger la clave de cifrado de base de datos utilizando la clave maestra de base de datos, vea Cifrado de datos transparente (TDE).

En este tema

  • Antes de empezar:

    Limitaciones y restricciones

    Seguridad

  • Para habilitar TDE mediante EKM usando Transact-SQL

Antes de empezar

Limitaciones y restricciones

  • Debe ser un usuario con muchos privilegios (como un administrador del sistema) para crear una clave de cifrado de base de datos y cifrar una base de datos. Ese usuario debe poder ser autenticado por el módulo EKM.

  • Tras iniciar, el Motor de base de datos debe abrir la base de datos. Para ello, debe crear una credencial que será autenticada por EKM y agregarla a un inicio de sesión que se basa en una clave asimétrica. Los usuarios no pueden iniciar sesión mediante ese inicio de sesión, pero el Motor de base de datos podrá autenticarse con el dispositivo EKM.

  • Si la clave asimétrica almacenada en el módulo EKM se pierde, SQL Server no podrá abrir la base de datos. Si el proveedor EKM permite hacer una copia de seguridad de la clave asimétrica, debería crear una y almacenarla en una ubicación segura.

  • Las opciones y los parámetros requeridos por el proveedor de EKM pueden diferir de lo que se proporciona en el ejemplo de código siguiente. Para obtener más información, consulte al proveedor de EKM.

Seguridad

Permisos

En este tema se utilizan los permisos siguientes:

  • Para cambiar una opción de configuración y ejecutar la instrucción RECONFIGURE, debe tener el permiso ALTER SETTINGS de nivel de servidor. Los roles fijos de servidor sysadmin y serveradmin tienen el permiso ALTER SETTINGS de forma implícita.

  • Requiere el permiso ALTER ANY CREDENTIAL.

  • Requiere el permiso ALTER ANY LOGIN.

  • Requiere el permiso CREATE ASYMMETRIC KEY.

  • Requiere el permiso CONTROL en la base de datos para cifrarla.

Icono de flecha usado con el vínculo Volver al principio[Top]

Usar Transact-SQL

Para habilitar TDE usando EKM

  1. Copie los archivos proporcionados por el proveedor EKM a una ubicación adecuada en el equipo de SQL Server. En este ejemplo utilizamos la carpeta C:\EKM.

  2. Instale los certificados en el equipo tal y como requiera el proveedor EKM.

    [!NOTA]

    SQL Server no proporciona un proveedor EKM. Cada proveedor EKM puede tener procedimientos diferentes para instalar, configurar y autorizar a los usuarios. Consulte la documentación del proveedor EKM para completar este paso.

  3. En el Explorador de objetos, conéctese a una instancia del Motor de base de datos.

  4. En la barra Estándar, haga clic en Nueva consulta.

  5. Copie y pegue el siguiente ejemplo en la ventana de consulta y haga clic en Ejecutar.

    -- 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 obtener más información, vea:

Icono de flecha usado con el vínculo Volver al principio[Top]

Vea también

Conceptos

Administración extensible de claves con el Almacén de claves de Azure (SQL Server)