Migrieren von Daten zu oder aus Spalten mithilfe von Always Encrypted mit dem SQL Server-Import/Export-Assistenten
Gilt für: SQL Server Azure SQL-Datenbank Azure SQL Managed Instance
Mit dem Tool SQL Server-Import/Export-Assistent können Sie Daten aus einer Quelle in ein Ziel kopieren. In diesem Dokument wird die Verwendung des SQL Server-Import/Export-Assistenten beschrieben, wenn es sich bei einer Quelle und/oder einem Ziel um eine SQL Server-Datenbank mit Spalten handelt, die mit Always Encrypted geschützt werden.
Migrationsszenarios
Mit dem SQL Server-Import/Export-Assistenten können Sie die folgenden Szenarios zum Migrieren von Daten in oder aus verschlüsselten Spalten implementieren.
Verschlüsseln von Klartextdaten bei der Migration
Enthält die Datenquelle Klartextdaten und stellt das Ziel eine SQL Server-Datenbank mit verschlüsselten Spalten dar, können Sie mit dem SQL Server-Import/Export-Assistenten die Klartextdaten aus der Quelle abrufen und verschlüsseln. Anschließend werden die verschlüsselten Daten (Chiffretext) in die verschlüsselten Spalten der Zieldatenbank kopiert. Für dieses Migrationsszenario kann es sich bei der Datenquelle um einen beliebigen Datenspeicher handeln, den der SQL Server-Import/Export-Assistent unterstützt. Dies kann beispielsweise eine Datei, eine SQL Server-Datenbank oder eine Datenbank in einem anderen Datenbanksystem sein.
Damit der SQL Server-Import/Export-Assistent die Daten verschlüsseln kann, muss Always Encrypted für die Verbindung mit der Zieldatenbank aktiviert sein, und Sie benötigen Zugriff auf die Schlüssel, mit denen die Daten in den Spalten der Zieldatenbank geschützt werden. Weitere Informationen finden Sie in den Abschnitten Aktivieren und Deaktivieren von Always Encrypted für eine Datenbankverbindung und Berechtigungen zum Verschlüsseln oder Entschlüsseln von Daten während der Migration.
Entschlüsseln verschlüsselter Daten bei der Migration
Zum Migrieren von Daten, die in verschlüsselten Datenbankspalten einer SQL Server-Datenbank gespeichert sind, können Sie den SQL Server-Import/Export-Assistenten so konfigurieren, dass die Daten entschlüsselt und die entschlüsselten (Klartext-)Daten in ein Ziel kopiert werden. Dabei kann es sich um einen beliebigen Datenspeicher handeln, den der SQL Server-Import/Export-Assistent unterstützt, wie z. B. eine Datei, eine SQL Server-Datenbank oder eine Datenbank in einem anderen Datenbanksystem.
Damit der SQL Server-Import/Export-Assistent die Daten entschlüsseln kann, muss Always Encrypted für die Verbindung mit der Quelldatenbank aktiviert sein, und Sie benötigen Zugriff auf die Schlüssel, mit denen die Daten in den Spalten der Quelldatenbank geschützt werden. Weitere Informationen finden Sie in den Abschnitten Aktivieren und Deaktivieren von Always Encrypted für eine Datenbankverbindung und Berechtigungen zum Verschlüsseln oder Entschlüsseln von Daten während der Migration.
Erneutes Verschlüsseln von Daten bei der Migration
Beim Kopieren von Daten aus verschlüsselten Spalten einer SQL Server-Quelldatenbank in verschlüsselte Spalten derselben oder einer anderen SQL Server-Datenbank können Sie den SQL Server-Import/Export-Assistenten so konfigurieren, dass die Daten nach dem Abrufen aus der Quelle entschlüsselt werden. Vor dem Einfügen der Daten in die verschlüsselten Spalten der Zieldatenbank werden sie erneut verschlüsselt. Verwenden Sie diese Methode, wenn sich das Schema der Zielspalten (z. B. Spaltendatentypen, Verschlüsselungstypen und Spaltenverschlüsselungsschlüssel) vom Schema der Quellspalten unterscheidet.
Damit der SQL Server-Import/Export-Assistent die Daten verschlüsseln und entschlüsseln kann, muss Always Encrypted für die Verbindung mit der Quell- und der Zieldatenbank aktiviert sein, und Sie benötigen Zugriff auf die Schlüssel, mit denen die Daten in den Spalten der Quell- und der Zieldatenbank geschützt werden. Weitere Informationen finden Sie in den Abschnitten Aktivieren und Deaktivieren von Always Encrypted für eine Datenbankverbindung und Berechtigungen zum Verschlüsseln oder Entschlüsseln von Daten während der Migration.
Beibehalten der Datenverschlüsselung bei der Migration
Beim Kopieren von Daten aus verschlüsselten Spalten einer SQL Server-Quelldatenbank in verschlüsselte Spalten derselben oder einer anderen SQL Server-Datenbank bei gleichzeitiger Verwendung des exakt gleichen Schemas (einschließlich derselben Datentypen, Verschlüsselungstypen und Spaltenverschlüsselungsschlüssel) durch die Ziel- und Quellspalten können Sie den SQL Server-Import/Export-Assistenten so konfigurieren, dass Chiffretext aus den Quellspalten abgerufen und in die verschlüsselten Spalten der SQL Server-Zieldatenbank eingefügt wird.
Für dieses Szenario können Sie einen beliebigen Datenanbieter verwenden, der das Herstellen einer Verbindung zwischen SQL Server und der SQL Server-Quelldatenbank oder -Zieldatenbank unterstützt. Wenn Sie einen Anbieter verwenden, der das Herstellen einer Verbindung zwischen Always Encrypted und der Zieldatenbank unterstützt, müssen Sie sicherstellen, dass Always Encrypted für die Datenbankverbindung deaktiviert ist. Weitere Informationen finden Sie im Abschnitt Aktivieren und Deaktivieren von Always Encrypted für eine Datenbankverbindung.
Stellen Sie zudem sicher, dass für den Datenbankprinzipal (Benutzer), den der SQL Server-Import/Export-Assistent zum Herstellen einer Verbindung mit der Zieldatenbank verwendet, die Option ALLOW_ENCRYPTED_VALUE_MODIFICATIONS
auf ON
festgelegt ist. Diese Option unterdrückt kryptografische Metadatenüberprüfungen bei Massenkopiervorgängen auf dem Server, wodurch der Assistent die verschlüsselten Daten in einem Massenvorgang in die Zieldatenbank einfügen kann, ohne die Daten zu entschlüsseln. Weitere Informationen finden Sie unter Massenladen von verschlüsselten Daten in durch Always Encrypted geschützte Spalten.
Aktivieren und Deaktivieren von Always Encrypted für eine Datenbankverbindung
Erfordert das Migrationsszenario vom SQL Server-Import/Export-Assistent die Verschlüsselung und/oder Entschlüsselung von Daten, müssen Sie die Verbindung der SQL Server-Quelldatenbank und/oder -Zieldatenbank so konfigurieren, dass ein Datenanbieter verwendet wird, der Always Encrypted unterstützt. Zudem müssen Sie Always Encrypted für die Verbindung der Quell- und/oder Zieldatenbank aktivieren.
Muss der Assistent bei dieser Verbindung keine Daten verschlüsseln oder entschlüsseln, können Sie einen beliebigen Datenanbieter verwenden.
Always Encrypted wird von den folgenden Datenanbietern im SQL Server-Import/Export-Assistenten unterstützt:
- .NET Framework-Datenanbieter für SQL Server
- Vergewissern Sie sich, dass der Computer, auf dem der Assistent ausgeführt wird, .NET Framework 4.6.1 oder höher verwendet.
- Wenn Sie Always Encrypted für eine Verbindung aktivieren möchten, legen Sie in den Verbindungseigenschaften die Option
Column Encryption Setting
aufEnabled
fest. Legen SieColumn Encryption Setting
aufDisabled
fest, um Always Encrypted zu deaktivieren. Weitere Informationen finden Sie unter Herstellen einer Verbindung mit SQL Server mithilfe des .NET Framework-Datenanbieters für SQL Server und Aktivieren von Always Encrypted für Anwendungsabfragen.
- .NET Framework-Datenanbieter für ODBC
- Installieren Sie den Microsoft ODBC-Treiber 13.1 oder höher.
- Wenn Sie Always Encrypted für eine Verbindung aktivieren möchten, legen Sie in den Verbindungseigenschaften die Option
Column Encryption
aufEnabled
fest. Legen SieColumn Encryption
aufDisabled
fest, um Always Encrypted zu deaktivieren. Weitere Informationen finden Sie unter Herstellen einer Verbindung mit SQL Server mithilfe des ODBC-Treibers für SQL Server und Aktivieren von Always Encrypted in einer ODBC-Anwendung.
- Wenn Sie Always Encrypted für eine Verbindung aktivieren möchten, legen Sie in den Verbindungseigenschaften die Option
- Installieren Sie den Microsoft ODBC-Treiber 13.1 oder höher.
Berechtigungen zum Verschlüsseln oder Entschlüsseln von Daten während der Migration
Sie müssen in der Quelldatenbank über die Berechtigungen VIEW ANY COLUMN MASTER KEY DEFINITION und VIEW ANY COLUMN ENCRYPTION KEY DEFINITION verfügen, um in einer SQL Server-Quelldatenbank oder -Zieldatenbank gespeicherte Daten verschlüsseln oder entschlüsseln zu können. Außerdem benötigen Sie Schlüsselspeicherberechtigungen, um auf Ihren Spaltenhauptschlüssel zugreifen und diesen verwenden zu können. Ausführliche Informationen zu Schlüsselspeicherberechtigungen, die für Schlüsselverwaltungsvorgänge erforderlich sind, finden Sie unter Erstellen und Speichern von Spaltenhauptschlüsseln für Always Encrypted im für Ihren Schlüsselspeicher relevanten Abschnitt.
Nächste Schritte
- Abfragen von Spalten mit Always Encrypted und SQL Server Management Studio
- Entwickeln von Anwendungen mit Always Encrypted