Hinweis
Für den Zugriff auf diese Seite ist eine Autorisierung erforderlich. Sie können versuchen, sich anzumelden oder das Verzeichnis zu wechseln.
Für den Zugriff auf diese Seite ist eine Autorisierung erforderlich. Sie können versuchen, das Verzeichnis zu wechseln.
Gilt für:SQL Server
Dieser Artikel beschreibt, wie Transparent Data Encryption (TDE) in SQL Server aktiviert wird, um einen Datenbankverschlüsselungsschlüssel mit einem asymmetrischen Schlüssel zu schützen, der in einem erweiterbaren Schlüsselverwaltungsmodul mit Transact-SQL gespeichert wird.
TDE verschlüsselt die Speicherung einer gesamten Datenbank, indem ein symmetrischer Schlüssel verwendet wird, der als Datenbankverschlüsselungsschlüssel bezeichnet wird. Der Datenbankverschlüsselungsschlüssel kann auch mithilfe eines Zertifikats geschützt werden, das durch den Datenbankmasterschlüssel (DMK) der master Datenbank geschützt ist. Weitere Informationen zum Schutz des Datenbankverschlüsselungsschlüssels mithilfe des DMK finden Sie unter Transparent data encryption (TDE).For more information about protection the database encryption key by using the DMK, see Transparent data encryption (TDE).For more information about protection the database encryption key by using the DMK, see Transparent data encryption (TDE). Informationen zum Konfigurieren von TDE, wenn SQL Server auf einem virtuellen Azure-Computer ausgeführt wird, finden Sie unter Extensible Key Management Using Azure Key Vault (SQL Server). Informationen zum Konfigurieren von TDE mithilfe eines Schlüssels im Azure-Schlüsseltresor finden Sie unter Verwenden von SQL Server-Connector mit SQL-Verschlüsselungsfunktionen.
Einschränkungen
Sie müssen ein Benutzer mit hohen Privilegien (z. B. ein Systemadministrator) sein, um einen Verschlüsselungsschlüssel für die Datenbank erstellen und eine Datenbank verschlüsseln zu können. Das EKM-Modul muss diesen Benutzer authentifizieren können.
Beim Start muss das Datenbankmodul die Datenbank öffnen. Sie sollten eine Anmeldeinformation erstellen, die vom EKM authentifiziert wird, und sie zu einer Anmeldung hinzufügen, die auf einem asymmetrischen Schlüssel basiert. Benutzer können sich nicht mit dieser Anmeldung anmelden, aber das Datenbankmodul kann sich mit dem EKM-Gerät authentifizieren.
Wenn der im EKM-Modul gespeicherte asymmetrische Schlüssel verloren geht, kann die Datenbank nicht von SQL Server geöffnet werden. Wenn der EKM-Anbieter eine Sicherung des asymmetrischen Schlüssels erlaubt, sollten Sie eine Sicherung erstellen und diese an einem sicheren Ort aufbewahren.
Die von Ihrem EKM-Anbieter erforderlichen Optionen und Parameter können sich von den Im folgenden Codebeispiel bereitgestellten Optionen unterscheiden. Weitere Informationen erhalten Sie vom Anbieter für erweiterbare Schlüsselverwaltung.
Berechtigungen
In diesem Artikel werden die folgenden Berechtigungen verwendet:
Um eine Konfigurationsoption zu ändern und die
RECONFIGUREAnweisung auszuführen, müssen Sie dieALTER SETTINGSBerechtigung auf Serverebene erteilen. DieALTER SETTINGS-Berechtigung ist implizit in den festen Serverrollen sysadmin und serveradmin enthalten.Erfordert
ALTER ANY CREDENTIALdie Berechtigung.Erfordert
ALTER ANY LOGINdie Berechtigung.Erfordert
CREATE ASYMMETRIC KEYdie Berechtigung.Erfordert
CONTROLdie Berechtigung für die Datenbank zum Verschlüsseln der Datenbank.
Verwenden von Transact-SQL
Kopieren Sie die Dateien, die vom Anbieter für erweiterbare Schlüsselverwaltung bereitgestellt wurden, an einen geeigneten Speicherort auf dem Computer mit SQL Server. In diesem Beispiel verwenden wir den
C:\EKM_FilesOrdner.Installieren Sie Zertifikate auf dem Computer, die ggf. vom Anbieter für erweiterbare Schlüsselverwaltung benötigt werden.
Hinweis
SQL Server stellt keinen EKM-Anbieter zur Verfügung. Jeder Anbieter für erweiterbare Schlüsselverwaltung kann andere Prozeduren zum Installieren, Konfigurieren und Autorisieren von Benutzern verwenden. Um diesen Schritt abzuschließen, wenden Sie sich an ihre EKM-Anbieterdokumentation.
Stellen Sie im Objekt-Explorer eine Verbindung mit einer Datenbank-Engine-Instanz her.
Klicken Sie in der Standardleiste auf Neue Abfrage.
Kopieren Sie das folgende Beispiel in das Abfragefenster, und klicken Sie dann auf Ausführen.
-- 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
Verwandte Inhalte
- Transparente Datenverschlüsselung für SQL-Datenbank, SQL Managed Instance und Azure Synapse Analytics
- sp_configure (Transact-SQL)
- ERSTELLEN EINES KRYPTOGRAFIEANBIETERs (Transact-SQL)
- CREDENTIAL ERSTELLEN (Transact-SQL)
- ERSTELLEN EINES ASYMMETRISCHEN SCHLÜSSELs (Transact-SQL)
- LOGIN ERSTELLEN (Transact-SQL)
- CREATE DATABASE ENCRYPTION KEY (Transact-SQL)
- ALTER LOGIN (Transact-SQL)
- ALTER DATABASE (Transact-SQL)