Vorgehensweise: Aktivieren von TDE unter Verwendung von EKM
Die transparente Datenverschlüsselung (Transparent Data Encryption, TDE) verschlüsselt den Speicher einer ganzen Datenbank. TDE verschlüsselt die Daten mithilfe eines symmetrischen Schlüssels, der als Verschlüsselungsschlüssel für die Datenbank bezeichnet wird. In diesem Thema wird beschrieben, wie Sie den Verschlüsselungsschlüssel für die Datenbank mithilfe eines asymmetrischen Schlüssels schützen können, der in einem EKM-Modul (Extensible Key Management, erweiterbare Schlüsselverwaltung) gespeichert ist.
Der Verschüsselungsschlüssel für die Datenbank kann auch mithilfe eines Zertifikats geschützt werden, das mit dem Datenbank-Hauptschlüssel der Masterdatenbank geschützt wird. Weitere Informationen über das Schützen des Verschlüsselungsschlüssels für die Datenbank mit dem Datenbank-Hauptschlüssel finden Sie unter Grundlegendes zur transparenten Datenverschlüsselung (TDE).
Im Folgenden sind die grundlegenden Schritte zum Aktivieren von TDE mithilfe einer erweiterbaren Schlüsselverwaltung aufgeführt:
Installieren Sie einen Anbieter für erweiterbare Schlüssel. Die Vorgehensweise für diesen Schritt sind je nach den Anforderungen des Anbieters für erweiterbare Schlüssel unterschiedlich. Es kann aber sein, dass ein Zertifikat vom Anbieter für erweiterbare Schlüsselverwaltung in den lokalen Zertifikatspeicher installiert werden muss und dass EKM-DLL-Dateien auf den SQL Server-Computer kopiert werden müssen.
Konfigurieren Sie SQL Server zur Verwendung des Anbieters für erweiterbare Schlüsselverwaltung.
Wenn das EKM-Modul die Standardauthentifizierung verwendet, erstellen Sie Anmeldeinformationen, und führen Sie die Anmeldeinformationen einem Benutzer hinzu.
Erstellen Sie einen asymmetrischen Schlüssel, der vom Anbieter für erweiterbare Schlüsselverwaltung geschützt wird.
Wenn das EKM-Modul die Standardauthentifizierung verwendet, erstellen Sie Anmeldeinformationen, die vom asymmetrischen Schlüssel geschützt werden, für die Verwendung durch Database Engine (Datenbankmodul).
Erstellen Sie einen symmetrischen Verschlüsselungsschlüssel für die Datenbank.
Aktivieren Sie TDE mithilfe des Verschlüsselungsschlüssels für die Datenbank.
Stellen Sie mithilfe eines Abfrage-Editorfensters in SQL Server Management Studio eine Verbindung mit SQL Server her, um die Schritte in diesem Thema auszuführen.
So installieren und konfigurieren Sie den Kryptografieanbieter
Kopieren Sie die Dateien, die vom Anbieter für erweiterbare Schlüsselverwaltung bereitgestellt wurden, an einen geeigneten Speicherort auf dem SQL Server-Computer. In diesem Beispiel wird der Ordner C:\EKM verwendet.
Installieren Sie Zertifikate auf dem Computer, die ggf. vom Anbieter für erweiterbare Schlüsselverwaltung benötigt werden.
Hinweis SQL Server stellt keinen Anbieter für erweiterbare Schlüsselverwaltung zur Verfügung. Jeder Anbieter für erweiterbare Schlüsselverwaltung kann über andere Prozeduren zum Installieren, Konfigurieren und Autorisieren von Benutzern verfügen. Schlagen Sie in der Dokumentation Ihres Anbieters für erweiterbare Schlüsselverwaltung nach, um diesen Schritt auszuführen.
So konfigurieren Sie SQL Server für die Verwendung eines Anbieters für erweiterbare Schlüsselverwaltung und erstellen den Anbieter in SQL Server
Die Aktivierung eines Anbieters für erweiterbare Schlüsselverwaltung ist eine erweiterte Option. Führen Sie zuerst die folgenden Anweisungen aus, um die erweiterten Optionen anzuzeigen.
sp_configure 'show advanced options', 1 ; GO RECONFIGURE ; GO
Führen Sie die folgende Anweisung aus, um Anbieter für erweiterbare Schlüsselverwaltung zu aktivieren.
sp_configure 'EKM provider enabled', 1 ; GO RECONFIGURE ; GO
Führen Sie die folgende Anweisung aus, um einen Kryptografieanbieter mit dem Namen EKM_Prov zu erstellen, der auf einem Anbieter für erweiterbare Schlüsselverwaltung basiert:
CREATE CRYPTOGRAPHIC PROVIDER EKM_Prov FROM FILE = 'C:\EKM_Files\KeyProvFile.dll' ; GO
Hinweis Die EKM-DLL muss digital signiert sein.
Erstellen von Anmeldeinformationen zum Verschlüsseln der Datenbank
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. Dieser Benutzer muss vom EKM-Modul authentifiziert werden können. Die folgende Prozedur erstellt Anmeldeinformationen, die die EKM-Identität verwenden. Außerdem werden die Anmeldeinformationen einem Benutzer mit hohen Privilegien hinzugefügt. In den folgenden Prozeduren wird davon ausgegangen, dass das EKM-Modul einen Benutzer mit dem Namen 'Identity1' authentifizieren kann. Anstelle der hier gezeigten Sternchen muss ein Kennwort bereitgestellt werden. Diese Schritte sind erforderlich, wenn der Anbieter für erweiterbare Schlüsselverwaltung die Standardauthentifizierung verwendet. Die Schritte in diesem Abschnitt können übersprungen werden, wenn das EKM-Modul eine andere Authentifizierung verwendet.
So erstellen Sie Anmeldeinformationen und fügen sie der Anmeldung eines Benutzers mit hohen Privilegien hinzu
Führen Sie die folgende Anweisung aus, um Anmeldeinformationen zu erstellen, die von Systemadministratoren verwendet werden:
CREATE CREDENTIAL sa_ekm_tde_cred WITH IDENTITY = 'Identity1', SECRET = '*************' FOR CRYPTOGRAPHIC PROVIDER EKM_Prov ; GO
Führen Sie die folgende Anweisung aus, um die Anmeldeinformationen für den Systemadministrator einem Benutzer mit hohen Privilegien wie Ihrer eigenen Domänenanmeldung im Format [DOMAIN\login] hinzuzufügen:
ALTER LOGIN [DOMAIN\login] ADD CREDENTIAL sa_ekm_tde_cred ; GO
Erstellen eines asymmetrischen Schlüssels
Erstellen Sie einen asymmetrischen Schlüssel, um den Zugriff auf den Verschlüsselungsschlüssel für die Datenbank zu schützen. Dieser Schlüssel wird von SQL Server verwendet, um auf den Verschlüsselungsschlüssel für die Datenbank zuzugreifen.
So erstellen Sie einen Verschlüsselungsschlüssel für die Datenbank
Führen Sie die folgende Anweisung aus, um einen asymmetrischen Schlüssel zu erstellen, der innerhalb des Anbieters für erweiterbare Schlüsselverwaltung gespeichert wird. In diesem Beispiel identifiziert SQL Server den Schlüssel mit dem Namen ekm_login_key. Im EKM-Gerät hat der Schlüssel den Namen SQL_Server_Key.
Hinweis Die Optionen und die Parameter, die vom Anbieter für erweiterbare Schlüsselverwaltung benötigt werden, können sich von dieser Anweisung unterscheiden. Weitere Informationen erhalten Sie vom Anbieter für erweiterbare Schlüsselverwaltung.
USE master ; GO CREATE ASYMMETRIC KEY ekm_login_key FROM PROVIDER [EKM_Prov] WITH ALGORITHM = RSA_512, PROVIDER_KEY_NAME = 'SQL_Server_Key' ; GO
Hinweis Wenn der im EKM-Modul gespeicherte asymmetrische Schlüssel verloren geht, kann die Datenbank nicht von SQL Server geöffnet werden. Wenn der Anbieter für erweiterbare Schlüsselverwaltung eine Sicherung des asymmetrischen Schlüssels erlaubt, sollten Sie eine Sicherung erstellen und diese an einem sicheren Ort aufbewahren.
Erstellen von Anmeldeinformationen zur Verwendung durch das Datenbankmodul
Beim Starten muss Database Engine (Datenbankmodul) die Datenbank öffnen. Die folgende Prozedur erstellt Anmeldeinformationen, die vom EKM authentifiziert werden sollen, und fügt sie einer Anmeldung hinzu, die auf einem asymmetrischen Schlüssel basiert. Benutzer können sich mit dieser Anmeldung nicht anmelden, Database Engine (Datenbankmodul) ist aber in der Lage, sich beim EKM-Gerät selbst zu authentifizieren. In den folgenden Prozeduren wird davon ausgegangen, dass das EKM-Modul einen Benutzer mit dem Namen Identity2 authentifizieren kann. Anstelle der unten gezeigten Sternchen muss ein Kennwort bereitgestellt werden. Diese Schritte sind erforderlich, wenn der Anbieter für erweiterbare Schlüsselverwaltung die Standardauthentifizierung verwendet. Die Schritte in diesem Abschnitt können übersprungen werden, wenn das EKM-Modul eine andere Authentifizierung verwendet.
So erstellen Sie Anmeldeinformationen und fügen diese Anmeldungen hinzu
Führen Sie die folgende Anweisung aus, um Anmeldeinformationen zu erstellen, die von Database Engine (Datenbankmodul) verwendet werden:
CREATE CREDENTIAL ekm_tde_cred WITH IDENTITY = 'Identity2' , SECRET = '*************' FOR CRYPTOGRAPHIC PROVIDER EKM_Prov ;
Führen Sie die folgende Anweisung aus, um eine von TDE verwendete Anmeldung zu erstellen und die neuen Anmeldeinformationen der Anmeldung hinzuzufügen:
CREATE LOGIN EKM_Login FROM ASYMMETRIC KEY ekm_login_key ; GO ALTER LOGIN EKM_Login ADD CREDENTIAL ekm_tde_cred ; GO
Erstellen des Verschlüsselungsschlüssels für die Datenbank
Der Verschlüsselungsschlüssel für die Datenbank ist ein symmetrischer Schlüssel. Erstellen Sie den Verschlüsselungsschlüssel für die Datenbank in der Masterdatenbank.
So erstellen Sie einen Verschlüsselungsschlüssel für die Datenbank
Wechseln Sie zu der Datenbank, die verschlüsselt wird:
USE AdventureWorks ; GO
Führen Sie den folgenden Code aus, um den Verschlüsselungsschlüssel für die Datenbank zu erstellen, der für TDE verwendet wird:
CREATE DATABASE ENCRYPTION KEY WITH ALGORITHM = AES_128 ENCRYPTION BY SERVER ASYMMETRIC KEY ekm_login_key ; GO
Führen Sie den folgenden Code aus, um die Datenbank so zu ändern, dass eine transparente Datenverschlüsselung möglich ist:
ALTER DATABASE AdventureWorks SET ENCRYPTION ON ; GO
Die Datenbank wird jetzt in einem verschlüsselten Format gespeichert.
Sicherheit
In diesem Thema werden die folgenden Berechtigungen verwendet:
Zum Ändern einer Konfigurationsoption und Ausführen der RECONFIGURE-Anweisung muss Ihnen die ALTER SETTINGS-Berechtigung auf Serverebene erteilt worden sein. Die ALTER SETTINGS-Berechtigung ist in den festen Serverrollen sysadmin und serveradmin eingeschlossen.
Erfordert die ALTER ANY CREDENTIAL-Berechtigung.
Erfordert die ALTER ANY LOGIN-Berechtigung.
Erfordert die CREATE ASYMMETRIC KEY-Berechtigung.
Erfordert die CONTROL-Berechtigung für die Datenbank, um die Datenbank zu verschlüsseln.