Nota
L'accesso a questa pagina richiede l'autorizzazione. Puoi provare ad accedere o a cambiare directory.
L'accesso a questa pagina richiede l'autorizzazione. Puoi provare a cambiare directory.
Si applica a:SQL Server
Questo articolo descrive come abilitare Transparent Data Encryption (TDE) in SQL Server per proteggere una chiave di crittografia del database tramite una chiave asimmetrica archiviata in un modulo Extensible Key Management (EKM) con Transact-SQL.
TDE esegue la crittografia dello spazio di archiviazione di un intero database usando una chiave simmetrica detta "chiave di crittografia del database". La chiave di crittografia del database può essere protetta anche tramite un certificato, protetto dalla chiave master del database (DMK) del master database. Per altre informazioni sulla protezione della chiave di crittografia del database tramite DMK, vedere Transparent Data Encryption (TDE). Per informazioni sulla configurazione di TDE quando SQL Server è in esecuzione in una macchina virtuale di Azure, vedere Extensible Key Management using Azure Key Vault (SQL Server).For information about configuring TDE when SQL Server is running on an Azure Virtual Machine, see Extensible Key Management Using Azure Key Vault (SQL Server). Per informazioni sulla configurazione di Transparent Data Encryption utilizzando una chiave nell'Azure Key Vault, vedere Usare il connettore di SQL Server con le funzionalità di crittografia SQL.
Limitazioni
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, Il modulo EKM deve essere in grado di autenticare l'utente.
All'avvio, il motore di database deve aprire il database. È necessario creare una credenziale che verrà autenticata da EKM e aggiungerla a un account di accesso basato su una chiave asimmetrica. Gli utenti non possono accedere usando tale account di accesso, ma il motore di database può autenticarsi con il dispositivo EKM.
Se la chiave asimmetrica archiviata nel modulo EKM viene persa, il database non può essere aperto da SQL 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.
Le opzioni e i parametri richiesti dal provider EKM possono essere diversi da quelli forniti nell'esempio di codice seguente. Per altre informazioni, rivolgersi al provider EKM.
Autorizzazioni
In questo articolo vengono usate le autorizzazioni seguenti:
Per modificare un'opzione di configurazione ed eseguire l'istruzione
RECONFIGURE, è necessario disporre dell'autorizzazioneALTER SETTINGSa livello di server. L'autorizzazioneALTER SETTINGSè assegnata implicitamente ai ruoli predefiniti del serversysadmin e serveradmin.È richiesta
ALTER ANY CREDENTIALl'autorizzazione.È richiesta
ALTER ANY LOGINl'autorizzazione.È richiesta
CREATE ASYMMETRIC KEYl'autorizzazione.È necessaria
CONTROLl'autorizzazione per il database per crittografare il database.
Usare Transact-SQL
Copiare i file forniti dal provider EKM in una posizione appropriata nel computer con SQL Server. In questo esempio viene usata la
C:\EKM_Filescartella .Installare i certificati nel computer in base a quanto richiesto dal provider EKM.
Nota
SQL Server non fornisce un provider EKM. Ogni provider EKM può richiedere procedure diverse per l'installazione, la configurazione e l'autorizzazione degli utenti. Per completare questo passaggio, consultare la documentazione del provider EKM.
In Esplora oggetti, connettersi a un'istanza del motore di database.
Sulla barra Standard selezionare Nuova query.
Copiare e incollare l'esempio seguente nella finestra di query e selezionare Esegui.
-- Enable advanced options. EXECUTE sp_configure 'show advanced options', 1; GO RECONFIGURE; GO -- Enable EKM provider EXECUTE 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 = '<password>' 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 = '<secret>' 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 AdventureWorks2022; 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 AdventureWorks2022 SET ENCRYPTION ON; GO
Contenuti correlati
- Transparent Data Encryption per database SQL, Istanza gestita di SQL e Azure Synapse Analytics
- sp_configure (Transact-SQL)
- CREATE CRYPTOGRAPHIC PROVIDER (Transact-SQL)
- CREATE CREDENTIAL (Transact-SQL)
- CREATE ASYMMETRIC KEY (Transact-SQL)
- CREATE LOGIN (Transact-SQL)
- CREATE DATABASE ENCRYPTION KEY (Transact-SQL)
- ALTER LOGIN (Transact-SQL)
- ALTER DATABASE (Transact-SQL)