Abilitare TDE in SQL Server con EKMEnable TDE on SQL Server Using EKM

In questo argomento viene descritto come abilitare Transparent Data Encryption (TDE) in SQL Server 2017SQL Server 2017 per proteggere una chiave di crittografia del database tramite una chiave asimmetrica archiviata in un modulo Extensible Key Management (EKM) con Transact-SQLTransact-SQL.This topic describes how to enable transparent data encryption (TDE) in SQL Server 2017SQL Server 2017 to protect a database encryption key by using an asymmetric key stored in an extensible key management (EKM) module with Transact-SQLTransact-SQL.

Transparent Data Encryption crittografa l'archivio di un intero database utilizzando una chiave simmetrica denominata chiave di crittografia del database.TDE encrypts the storage of an entire database by using a symmetric key called the database encryption key. È inoltre possibile proteggere la chiave di crittografia del database utilizzando un certificato protetto dalla chiave master del database master.The database encryption key can also be protected using a certificate which is protected by the database master key of the master database. Per altre informazioni sulla protezione della chiave di crittografia del database tramite la chiave master del database, vedere Transparent Data Encryption (TDE).For more information about protecting the database encryption key by using the database master key, see Transparent Data Encryption (TDE). Per informazioni sulla configurazione di TDE quando SQL ServerSQL Server è in esecuzione in una macchina virtuale di Azure, vedere Extensible Key Management con l'insieme di credenziali delle chiavi di Azure (SQL Server).For information about configuring TDE when SQL ServerSQL Server is running on an Azure VM, see Extensible Key Management Using Azure Key Vault (SQL Server). Per informazioni sulla configurazione di Transparent Data Encryption usando una chiave nell'insieme di credenziali delle chiavi di Azure, vedere Usare Connettore SQL Server con le funzionalità di crittografia SQL.For information about configuring TDE using a key in the Azure key vault, see Use SQL Server Connector with SQL Encryption Features.

Prima di iniziare Before You Begin

Limitazioni e restrizioni Limitations and Restrictions

  • Per creare una chiave di crittografia del database e crittografare un database, è necessario essere un utente con privilegi elevati, ad esempio un amministratore di sistema,You must be a high privileged user (such as a system administrator) to create a database encryption key and encrypt a database. che possa essere autenticato dal modulo EKM.That user must be able to be authenticated by the EKM module.

  • All'avvio il Motore di databaseDatabase Engine deve aprire il database.Upon start up the Motore di databaseDatabase Engine must open the database. A tal fine, è necessario creare le credenziali che dovranno essere autenticate dal modulo EKM e aggiungerle a un account di accesso basato su una chiave asimmetrica.To do this, you should create a credential that will be authenticated by the EKM, and add it to a login that is based on an asymmetric key. Gli utenti non possono eseguire l'accesso utilizzando tale account, ma il Motore di databaseDatabase Engine sarà in grado di effettuare l'autenticazione con il dispositivo EKM.Users cannot login using that login, but the Motore di databaseDatabase Engine will be able to authenticate itself with the EKM device.

  • In caso di perdita della chiave asimmetrica archiviata nel modulo EKM, il database non potrà essere aperto in SQL ServerSQL Server.If the asymmetric key stored in the EKM module is lost, the database will not be able to be opened by SQL ServerSQL Server. Se il provider EKM consente di eseguire il backup della chiave asimmetrica, è consigliabile creare una copia di backup e archiviarla in una posizione sicura.If the EKM provider lets you back up the asymmetric key, you should create a back up and store it in a secure location.

  • Le opzioni e i parametri richiesti dal provider EKM possono differire da quanto indicato nell'esempio di codice seguente.The options and parameters required by your EKM provider can differ from what is provided in the code example below. Per altre informazioni, rivolgersi al provider EKM.For more information, see your EKM provider.

Sicurezza Security

Autorizzazioni Permissions

In questo argomento vengono utilizzate le autorizzazioni seguenti:This topic uses the following permissions:

  • Per modificare un'opzione di configurazione ed eseguire l'istruzione RECONFIGURE, è necessario disporre dell'autorizzazione a livello di server ALTER SETTINGS.To change a configuration option and run the RECONFIGURE statement, you must be granted the ALTER SETTINGS server-level permission. L'autorizzazione ALTER SETTINGS è assegnata implicitamente ai ruoli predefiniti del server sysadmin e serveradmin .The ALTER SETTINGS permission is implicitly held by the sysadmin and serveradmin fixed server roles.

  • È richiesta l'autorizzazione ALTER ANY CREDENTIAL.Requires ALTER ANY CREDENTIAL permission.

  • È richiesta l'autorizzazione ALTER ANY LOGIN.Requires ALTER ANY LOGIN permission.

  • È necessaria l'autorizzazione CREATE ASYMMETRIC KEY.Requires CREATE ASYMMETRIC KEY permission.

  • È necessaria l'autorizzazione CONTROL nel database per crittografare il database.Requires CONTROL permission on the database to encrypt the database.

Utilizzo di Transact-SQL Using Transact-SQL

Per abilitare Transparent Data Encryption tramite Extensible Key ManagementTo enable TDE using EKM

  1. Copiare i file forniti dal provider EKM in un percorso appropriato nel computer SQL ServerSQL Server .Copy the files supplied by the EKM provider to an appropriate location on the SQL ServerSQL Server computer. In questo esempio viene usata la cartella C:\EKM .In this example, we use the C:\EKM folder.

  2. Installare i certificati nel computer in base a quanto richiesto dal provider EKM.Install certificates to the computer as required by your EKM provider.

    Nota

    SQL ServerSQL Server non fornisce un provider EKM. does not supply an EKM provider. Ogni provider EKM può richiedere procedure diverse per l'installazione, la configurazione e l'autorizzazione degli utenti.Each EKM provider can have different procedures for installing, configuring and authorizing users. Per completare questo passaggio, consultare la documentazione del provider EKM.Consult your EKM provider documentation to complete this step.

  3. In Esplora oggetticonnettersi a un'istanza del Motore di databaseDatabase Engine.In Object Explorer, connect to an instance of Motore di databaseDatabase Engine.

  4. Sulla barra Standard fare clic su Nuova query.On the Standard bar, click New Query.

  5. Copiare e incollare l'esempio seguente nella finestra Query, quindi fare clic su Esegui.Copy and paste the following example into the query window and click Execute.

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

    Per altre informazioni, vedere quanto segue:For more information, see the following:

Vedere ancheSee Also

Transparent Data Encryption con il database SQL di AzureTransparent Data Encryption with Azure SQL Database