Verwenden von SQL Server-Connector mit SQL-VerschlüsselungsfunktionenUse SQL Server Connector with SQL Encryption Features

GILT FÜR: JaSQL Server NeinAzure SQL-Datenbank NeinAzure Synapse Analytics (SQL DW) NeinParallel Data Warehouse APPLIES TO: YesSQL Server NoAzure SQL Database NoAzure Synapse Analytics (SQL DW) NoParallel Data Warehouse

Gebräuchliche SQL ServerSQL Server -Verschlüsselungsaktivitäten unter Verwendung eines asymmetrischen Schlüssels, der von Azure Key Vault geschützt wird, finden sich in den folgenden drei Bereichen.Common SQL ServerSQL Server encryption activities using an asymmetric key protected by the Azure Key Vault include the following three areas.

  • Transparente Datenverschlüsselung mithilfe eines asymmetrischen Schlüssels aus Azure Key VaultTransparent Data Encryption by using an Asymmetric Key from Azure Key Vault

  • Verschlüsseln von Sicherungen mit einem asymmetrischen Schlüssel aus dem SchlüsseltresorEncrypting Backups by Using an Asymmetric Key from the Key Vault

  • Verschlüsselung auf Spaltenebene mit einem asymmetrischen Schlüssel aus dem SchlüsseltresorColumn Level Encryption by Using an Asymmetric Key from the Key Vault

Schließen Sie die Teile I bis IV des Themas Installationsschritte für die Erweiterbare Schlüsselverwaltung mit Azure Key Vaultab, bevor Sie die Schritte in diesem Thema ausführen.Complete parts I through IV of the topic Setup Steps for Extensible Key Management Using the Azure Key Vault, before following the steps on this topic.

Hinweis

Die Versionen 1.0.0.440 und älter wurden ersetzt und werden nicht länger in Produktionsumgebungen unterstützt.Versions 1.0.0.440 and older have been replaced and are no longer supported in production environments. Führen Sie ein Upgrade auf Version 1.0.1.0 oder höher durch, indem Sie das Microsoft Download Center besuchen und die Anweisungen auf der Seite SQL Server-Connector Wartung & Problembehandlung unter „Upgrade des SQL Server-Connectors“ ausführen.Upgrade to version 1.0.1.0 or later by visiting the Microsoft Download Center and using the instructions on the SQL Server Connector Maintenance & Troubleshooting page under "Upgrade of SQL Server Connector."

Transparente Datenverschlüsselung mithilfe eines asymmetrischen Schlüssels aus Azure Key VaultTransparent Data Encryption by using an Asymmetric Key from Azure Key Vault

Verwenden Sie nach dem Abschluss der Teile I bis IV des Themas „Installationsschritte für die Erweiterbare Schlüsselverwaltung mit Azure Key Vault“ den Azure Key Vault-Schlüssel, um den Datenbankverschlüsselungsschlüssel mithilfe von TDE zu verschlüsseln.After completing Parts I through IV of the topic Setup Steps for Extensible Key Management Using the Azure Key Vault, use the Azure Key Vault key to encrypt the database encryption key using TDE. Weitere Informationen zum Rotieren von Schlüsseln mithilfe von PowerShell finden Sie unter Rotieren einer Transparent Data Encryption-Schutzvorrichtung (TDE) mithilfe von PowerShell.For more information about rotating keys using PowerShell, see Rotate the Transparent Data Encryption (TDE) protector using PowerShell.

Sie müssen Anmeldeinformationen und eine Anmeldung sowie einen Datenbankverschlüsselungsschlüssel erstellen, der zum Verschlüsseln der Daten und Protokolle in der Datenbank dient.You will need to create a credential and a login, and create a database encryption key which will encrypt the data and logs in the database. Zum Verschlüsseln einer Datenbank ist die CONTROL -Berechtigung für die Datenbank erforderlich.To encrypt a database requires CONTROL permission on the database. Die folgende Grafik zeigt die Hierarchie des Verschlüsselungsschlüssels bei Verwendung von Azure Key Vault.The following graphic shows the hierarchy of the encryption key when using the Azure Key Vault.

ekm-key-hierarchy-with-akvekm-key-hierarchy-with-akv

  1. Erstellen von SQL ServerSQL Server -Anmeldeinformationen für die Datenbank-Engine für die Nutzung von TDECreate a SQL ServerSQL Server credential for the Database Engine to use for TDE

    Die Datenbank-Engine verwendet die Anmeldeinformationen für den Zugriff auf den Schlüsseltresor während des Ladens der Datenbank.The Database Engine uses the credential to access the Key Vault during database load. Es wird empfohlen, in Teil I eine weitere Azure Active Directory- Client-ID und einen weiteren geheimen Schlüssel für das Datenbank-EngineDatabase Enginezu erstellen, um die erteilten Schlüsseltresorberechtigungen einzuschränken.We recommend creating another Azure Active Directory Client ID and Secret in Part I for the Datenbank-EngineDatabase Engine, to limit the Key Vault permissions that are granted.

    Ändern Sie das Transact-SQLTransact-SQL -Skript unten in der folgenden Weise:Modify the Transact-SQLTransact-SQL script below in the following ways:

    • Bearbeiten Sie das IDENTITY -Argument (ContosoDevKeyVault), damit es auf Ihren Azure Key Vault verweist.Edit the IDENTITY argument (ContosoDevKeyVault) to point to your Azure Key Vault.

      • Wenn Sie eine globale Azure-Cloud verwenden, ersetzen Sie das IDENTITY-Argument durch den Namen Ihres Azure-Schlüsseltresors aus Teil II.If you're using global Azure, replace the IDENTITY argument with the name of your Azure Key Vault from Part II.
      • Wenn Sie eine private Azure-Cloud verwenden (z. B.If you're using a private Azure cloud (ex. Azure Government, Azure China 21ViaNet oder Azure Deutschland. Ersetzen Sie das IDENTITY-Argument durch den Key Vault-URI, der in Teil II, Schritt 3 zurückgegeben wird.Azure Government, Azure China 21Vianet, or Azure Germany), replace the IDENTITY argument with the Vault URI that is returned in Part II, step 3. Schließen Sie „https://“ nicht in den Tresor-URI ein.Do not include "https://" in the Vault URI.
    • Ersetzen Sie den ersten Teil des SECRET -Arguments durch die Azure Active Directory- Client-ID aus Teil I. In diesem Beispiel ist die Client-IDEF5C8E094D2A4A769998D93440D8115D.Replace the first part of the SECRET argument with the Azure Active Directory Client ID from Part I. In this example, the Client ID is EF5C8E094D2A4A769998D93440D8115D.

      Wichtig

      Bindestriche müssen aus der Client-IDentfernt werden.You must remove the hyphens from the Client ID.

    • Setzen Sie in den zweiten Teil des SECRET -Arguments den geheimen Clientschlüssel aus Teil I ein. In diesem Beispiel ist der geheime Clientschlüssel aus Teil I Replace-With-AAD-Client-Secret.Complete the second part of the SECRET argument with Client Secret from Part I. In this example the Client Secret from Part 1 is Replace-With-AAD-Client-Secret. Die endgültige Zeichenfolge für das SECRET -Argument ist eine lange Abfolge von Buchstaben und Ziffern ohne Bindestriche.The final string for the SECRET argument will be a long sequence of letters and numbers, with no hyphens.

    USE master;  
    CREATE CREDENTIAL Azure_EKM_TDE_cred   
        WITH IDENTITY = 'ContosoDevKeyVault', -- for global Azure
        -- WITH IDENTITY = 'ContosoDevKeyVault.vault.usgovcloudapi.net', -- for Azure Government
        -- WITH IDENTITY = 'ContosoDevKeyVault.vault.azure.cn', -- for Azure China 21Vianet
        -- WITH IDENTITY = 'ContosoDevKeyVault.vault.microsoftazure.de', -- for Azure Germany   
        SECRET = 'EF5C8E094D2A4A769998D93440D8115DReplace-With-AAD-Client-Secret'   
    FOR CRYPTOGRAPHIC PROVIDER AzureKeyVault_EKM_Prov;  
    
  2. Erstellen einer SQL ServerSQL Server -Anmeldung für das Datenbank-EngineDatabase Engine für TDECreate a SQL ServerSQL Server login for the Datenbank-EngineDatabase Engine for TDE

    Erstellen Sie eine SQL ServerSQL Server -Anmeldung, und fügen Sie ihr die Anmeldeinformationen aus Schritt 1 hinzu.Create a SQL ServerSQL Server login and add the credential from Step 1 to it. In diesem Transact-SQLTransact-SQL -Beispiel wird der gleiche Schlüssel verwendet, der zuvor importiert wurde.This Transact-SQLTransact-SQL example uses the same key that was imported earlier.

    USE master;  
    -- Create a SQL Server login associated with the asymmetric key   
    -- for the Database engine to use when it loads a database   
    -- encrypted by TDE.  
    CREATE LOGIN TDE_Login   
    FROM ASYMMETRIC KEY CONTOSO_KEY;  
    GO   
    
    -- Alter the TDE Login to add the credential for use by the   
    -- Database Engine to access the key vault  
    ALTER LOGIN TDE_Login   
    ADD CREDENTIAL Azure_EKM_TDE_cred ;  
    GO  
    
  3. Erstellen des Datenbank-Verschlüsselungsschlüssels (DEK)Create the Database Encryption Key (DEK)

    Der DEK verschlüsselt Ihre Daten und Protokolldateien in der Datenbankinstanz und wird seinerseits mithilfe des asymmetrischen Schlüssels aus Azure Key Vault verschlüsselt.The DEK will encrypt your data and log files in the database instance, and in turn be encrypted by the Azure Key Vault asymmetric key. Der DEK kann mithilfe eines beliebigen von SQL ServerSQL Server unterstützten Algorithmus mit beliebiger Schlüssellänge erstellt werden.The DEK can be created using any SQL ServerSQL Server supported algorithm or key length.

    USE ContosoDatabase;  
    GO  
    
    CREATE DATABASE ENCRYPTION KEY   
    WITH ALGORITHM = AES_256   
    ENCRYPTION BY SERVER ASYMMETRIC KEY CONTOSO_KEY;  
    GO  
    
  4. Aktivieren von TDETurn On TDE

    -- Alter the database to enable transparent data encryption.  
    ALTER DATABASE ContosoDatabase   
    SET ENCRYPTION ON;  
    GO  
    

    Überprüfen Sie mithilfe von Management StudioManagement Studio, dass TDE aktiviert wurde, indem Sie eine Verbindung mit Ihrer Datenbank mithilfe des Objekt-Explorers herstellen.Using Management StudioManagement Studio, verify that TDE has been turned on by connecting to your database with Object Explorer. Klicken Sie mit der rechten Maustaste auf Ihre Datenbank, zeigen Sie auf Aufgaben, und klicken Sie anschließend auf Datenbankverschlüsselung verwalten.Right-click your database, point to Tasks, and then click Manage Database Encryption.

    ekm-tde-object-explorerekm-tde-object-explorer

    Prüfen Sie im Dialogfeld Datenbankverschlüsselung verwalten , nach, ob TDE aktiviert ist und welcher Schlüssel für die Verschlüsselung des DEKs verwendet wird.In the Manage Database Encryption dialog box, confirm that TDE is on, and what asymmetric key is encrypting the DEK.

    ekm-tde-dialog-boxekm-tde-dialog-box

    Alternativ können Sie das folgende Transact-SQLTransact-SQL -Skript ausführen.Alternatively, you can execute the following Transact-SQLTransact-SQL script. Der Verschlüsselungsstatus 3 gibt eine verschlüsselte Datenbank an.An encryption state of 3 indicates an encrypted database.

    USE MASTER  
    SELECT * FROM sys.asymmetric_keys  
    
    -- Check which databases are encrypted using TDE  
    SELECT d.name, dek.encryption_state   
    FROM sys.dm_database_encryption_keys AS dek  
    JOIN sys.databases AS d  
         ON dek.database_id = d.database_id;  
    

    Hinweis

    Die tempdb -Datenbank wird automatisch verschlüsselt, wenn für eine beliebige Datenbank TDE aktiviert wird.The tempdb database is automatically encrypted whenever any database enables TDE.

Verschlüsseln von Sicherungen mit einem asymmetrischen Schlüssel aus dem SchlüsseltresorEncrypting Backups by Using an Asymmetric Key from the Key Vault

Verschlüsselte Sicherungen werden ab SQL Server 2014 (12.x)SQL Server 2014 (12.x)unterstützt.Encrypted backups are supported starting with SQL Server 2014 (12.x)SQL Server 2014 (12.x). Im folgenden Beispiel wird eine Sicherung erstellt und wiederhergestellt, die mit einem Verschlüsselungsschlüssel verschlüsselt wurde, der durch den asymmetrischen Schlüssel im Schlüsseltresor geschützt wird.The following example creates and restores a backup encrypted a data encryption key protected by the asymmetric key in the key vault.
Das Datenbank-EngineDatabase Engine benötigt die Anmeldeinformationen zum Zugriff auf den Schlüsseltresor während des Ladens der Datenbank.The Datenbank-EngineDatabase Engine needs the credential when accessing the Key Vault during database load. Es wird empfohlen, in Teil I eine weitere Azure Active Directory-Client-ID und einen weiteren geheimen Schlüssel für die Datenbank-Engine zu erstellen, um die erteilten Schlüsseltresorberechtigungen einzuschränken.We recommend creating another Azure Active Directory Client ID and Secret in Part I for the Database Engine, to limit the Key Vault permissions that are granted.

  1. Erstellen von SQL Server-Anmeldeinformationen für die Datenbank-Engine für die SicherungsverschlüsselungCreate a SQL Server credential for the Database Engine to use for Backup Encryption

    Ändern Sie das Transact-SQLTransact-SQL -Skript unten in der folgenden Weise:Modify the Transact-SQLTransact-SQL script below in the following ways:

    • Bearbeiten Sie das IDENTITY -Argument (ContosoDevKeyVault), damit es auf Ihren Azure Key Vault verweist.Edit the IDENTITY argument (ContosoDevKeyVault) to point to your Azure Key Vault.

      • Wenn Sie eine globale Azure-Cloud verwenden, ersetzen Sie das IDENTITY-Argument durch den Namen Ihres Azure-Schlüsseltresors aus Teil II.If you're using global Azure, replace the IDENTITY argument with the name of your Azure Key Vault from Part II.
      • Wenn Sie eine private Azure-Cloud verwenden (z. B.If you're using a private Azure cloud (ex. Azure Government, Azure China 21ViaNet oder Azure Deutschland. Ersetzen Sie das IDENTITY-Argument durch den Key Vault-URI, der in Teil II, Schritt 3 zurückgegeben wird.Azure Government, Azure China 21Vianet, or Azure Germany), replace the IDENTITY argument with the Vault URI that is returned in Part II, step 3. Schließen Sie „https://“ nicht in den Tresor-URI ein.Do not include "https://" in the Vault URI.
    • Ersetzen Sie den ersten Teil des SECRET -Arguments durch die Azure Active Directory- Client-ID aus Teil I. In diesem Beispiel ist die Client-IDEF5C8E094D2A4A769998D93440D8115D.Replace the first part of the SECRET argument with the Azure Active Directory Client ID from Part I. In this example, the Client ID is EF5C8E094D2A4A769998D93440D8115D.

      Wichtig

      Bindestriche müssen aus der Client-IDentfernt werden.You must remove the hyphens from the Client ID.

    • Setzen Sie in den zweiten Teil des SECRET -Arguments den geheimen Clientschlüssel aus Teil I ein. In diesem Beispiel ist der geheime Clientschlüssel aus Teil I Replace-With-AAD-Client-Secret.Complete the second part of the SECRET argument with Client Secret from Part I. In this example the Client Secret from Part I is Replace-With-AAD-Client-Secret. Die endgültige Zeichenfolge für das SECRET -Argument ist eine lange Abfolge von Buchstaben und Ziffern ohne Bindestriche.The final string for the SECRET argument will be a long sequence of letters and numbers, with no hyphens.

      USE master;  
      
      CREATE CREDENTIAL Azure_EKM_Backup_cred   
          WITH IDENTITY = 'ContosoDevKeyVault', -- for global Azure
          -- WITH IDENTITY = 'ContosoDevKeyVault.vault.usgovcloudapi.net', -- for Azure Government
          -- WITH IDENTITY = 'ContosoDevKeyVault.vault.azure.cn', -- for Azure China 21Vianet
          -- WITH IDENTITY = 'ContosoDevKeyVault.vault.microsoftazure.de', -- for Azure Germany   
          SECRET = 'EF5C8E094D2A4A769998D93440D8115DReplace-With-AAD-Client-Secret'   
      FOR CRYPTOGRAPHIC PROVIDER AzureKeyVault_EKM_Prov;    
      
  2. Erstellen einer SQL ServerSQL Server -Anmeldung für das Datenbank-EngineDatabase Engine für die SicherungsverschlüsselungCreate a SQL ServerSQL Server login for the Datenbank-EngineDatabase Engine for Backup Encryption

    Erstellen Sie eine SQL ServerSQL Server --Anmeldung, die vom Datenbank-EngineDatabase Enginefür verschlüsselte Sicherungen verwendet wird, und fügen Sie ihr die Anmeldeinformationen aus Schritt 1 hinzu.Create a SQL ServerSQL Server login to be used by the Datenbank-EngineDatabase Enginee for encryption backups, and add the credential from Step 1 to it. In diesem Transact-SQLTransact-SQL -Beispiel wird der gleiche Schlüssel verwendet, der zuvor importiert wurde.This Transact-SQLTransact-SQL example uses the same key that was imported earlier.

    Wichtig

    Sie können zum Verschlüsseln von Sicherungen keinen asymmetrischen Schlüssel verwenden, den Sie bereits für TDE (im Beispiel oben) oder die Verschlüsselung auf Spaltenebene (im Beispiel unten) verwendet haben.You cannot use the same asymmetric key for backup encryption if you've already used that key for TDE (the above example) or column level Encryption (the following example).

    In diesem Beispiel wird der asymmetrische Schlüssel CONTOSO_KEY_BACKUP aus dem Schlüsseltresor verwendet, der zuvor für die Masterdatenbank importiert oder erstellt werden kann, wie weiter oben in Teil IV, Schritt 5 beschrieben.This example uses the CONTOSO_KEY_BACKUP asymmetric key stored in the key vault, which can be imported or created earlier for the master database, as Part IV, Step 5 earlier.

    USE master;  
    
    -- Create a SQL Server login associated with the asymmetric key   
    -- for the Database engine to use when it is encrypting the backup.  
    CREATE LOGIN Backup_Login   
    FROM ASYMMETRIC KEY CONTOSO_KEY_BACKUP;  
    GO   
    
    -- Alter the Encrypted Backup Login to add the credential for use by   
    -- the Database Engine to access the key vault  
    ALTER LOGIN Backup_Login   
    ADD CREDENTIAL Azure_EKM_Backup_cred ;  
    GO  
    
  3. Sichern der DatenbankBackup the Database

    Sichern Sie die Datenbank, indem Sie die Verschlüsselung mit dem asymmetrischen Schlüssel angeben, der im Schlüsseltresor gespeichert ist.Backup the database specifying encryption with the asymmetric key stored in the key vault.

    Im folgenden Beispiel sollten Sie beachten, dass wenn die Datenbank bereits mit TDE verschlüsselt wurde und sich der asymmetrische Schlüssel CONTOSO_KEY_BACKUP vom asymmetrischen Schlüssel von TDE unterscheidet, die Sicherung mit dem asymmetrischen Schlüssel von TDE und CONTOSO_KEY_BACKUP verschlüsselt wird.In the below example, note that if the database was already encrypted with TDE, and the asymmetric key CONTOSO_KEY_BACKUP is different from the TDE asymmetric key, the backup will be encrypted by both the TDE asymmetric key and CONTOSO_KEY_BACKUP. Die SQL ServerSQL Server-Zielinstanz benötigt beide Schlüssel, um die Sicherung zu entschlüsseln.The target SQL ServerSQL Server instance will need both keys in order to decrypt the backup.

    USE master;  
    
    BACKUP DATABASE [DATABASE_TO_BACKUP]  
    TO DISK = N'[PATH TO BACKUP FILE]'   
    WITH FORMAT, INIT, SKIP, NOREWIND, NOUNLOAD,   
    ENCRYPTION(ALGORITHM = AES_256,   
    SERVER ASYMMETRIC KEY = [CONTOSO_KEY_BACKUP]);  
    GO  
    
  4. Wiederherstellen der DatenbankRestore the Database

    Um eine Sicherung, die mithilfe von TDE verschlüsselt wurde, wiederherzustellen, muss die SQL ServerSQL Server-Zielinstanz zunächst über eine Kopie des asymmetrischen Key Vault-Schlüssels für die Verschlüsselung verfügen.To restore a database backup that is encrypted with TDE, the target SQL ServerSQL Server instance must first have a copy of the asymmetric Key Vault key used for encryption. Dies würde folgendermaßen erreicht werden:This is how this would be achieved:

    • Ist der ursprüngliche asymmetrische Schlüssel, der für TDE verwendet wird, nicht mehr im Key Vault vorhanden, dann stellen Sie die wichtigste Schlüsselsicherung im Key Vault wieder her oder importieren Sie den Schlüssel aus einem lokalen HSM.If the original asymmetric key used for TDE is no longer in Key Vault, restore the Key Vault key backup or reimport the key from a local HSM. Wichtig: Damit der Fingerabdruck des Schlüssels dem in der Datenbanksicherung gespeicherten Fingerabdruck entspricht, erhält der Schlüssel denselben Key Vault-Schlüsselnamen, den er ursprünglich erhalten hatte.Important: In order to have the key's thumbprint match the thumbprint recorded on the database backup, the key must be named the same Key Vault key name as it was originally named before.

    • Wenden Sie die Schritte 1 und 2 auf die SQL ServerSQL Server-Zielinstanz an.Apply Steps 1 and 2 on the target SQL ServerSQL Server instance.

    • Sobald die SQL ServerSQL Server-Zielinstanz Zugriff auf den asymmetrischen Schlüssel zum Verschlüsseln der Sicherung hat, stellen Sie die Datenbank auf dem Server wieder her.Once the target SQL ServerSQL Server instance has access to the asymmetric key(s) used to encrypt the backup, restore the database on the server.

    Codebeispiel für die Wiederherstellung:Sample restore code:

    RESTORE DATABASE [DATABASE_TO_BACKUP]  
    FROM DISK = N'[PATH TO BACKUP FILE]'   
        WITH FILE = 1, NOUNLOAD, REPLACE;  
    GO  
    

    Weitere Informationen zu Sicherungsoptionen finden Sie unter BACKUP (Transact-SQL).For more information about backup options, see BACKUP (Transact-SQL).

Verschlüsselung auf Spaltenebene mit einem asymmetrischen Schlüssel aus dem SchlüsseltresorColumn Level Encryption by Using an Asymmetric Key from the Key Vault

Das folgende Beispiel erstellt einen symmetrischen Schlüssel, der durch den asymmetrischen Schlüssel im Schlüsseltresor geschützt wird.The following example creates a symmetric key protected by the asymmetric key in the key vault. Anschließend wird der symmetrische Schlüssel zum Verschlüsseln von Daten in der Datenbank verwendet.Then the symmetric key is used to encrypt data in the database.

Wichtig

Sie können für die Sicherungsverschlüsselung nicht den gleichen asymmetrischen Schlüssel verwenden, den Sie bereits für TDE oder die Sicherungsverschlüsslung (siehe vorstehende Beispiele) verwendet haben.You cannot use the same asymmetric key for backup encryption if you've already used that key for TDE or backup encryption (the preceding examples).

In diesem Beispiel wird der asymmetrische Schlüssel CONTOSO_KEY_COLUMNS aus dem Schlüsseltresor verwendet, der zuvor importiert oder erstellt wurde, wie oben in Schritt 3, Abschnitt 3 von Installationsschritte für die Erweiterbare Schlüsselverwaltung mit Azure Key Vaultbeschrieben.This example uses the CONTOSO_KEY_COLUMNS asymmetric key stored in the key vault, which can be imported or created earlier, as described in Step 3, section 3 of Setup Steps for Extensible Key Management Using the Azure Key Vault. Um diesen asymmetrischen Schlüssel in der ContosoDatabase -Datenbank zu verwenden, müssen Sie die CREATE ASYMMETRIC KEY -Anweisung erneut ausführen, um der ContosoDatabase -Datenbank einen Verweis auf den Schlüssel zur Verfügung zu stellen.To use this asymmetric key in the ContosoDatabase database, you must execute the CREATE ASYMMETRIC KEY statement again, to provide the ContosoDatabase database with a reference to the key.

USE [ContosoDatabase];  
GO  
  
-- Create a reference to the key in the key vault  
CREATE ASYMMETRIC KEY CONTOSO_KEY_COLUMNS   
FROM PROVIDER [AzureKeyVault_EKM_Prov]  
WITH PROVIDER_KEY_NAME = 'ContosoDevRSAKey2',  
CREATION_DISPOSITION = OPEN_EXISTING;  
  
-- Create the data encryption key.  
-- The data encryption key can be created using any SQL Server   
-- supported algorithm or key length.  
-- The DEK will be protected by the asymmetric key in the key vault  
  
CREATE SYMMETRIC KEY DATA_ENCRYPTION_KEY  
    WITH ALGORITHM=AES_256  
    ENCRYPTION BY ASYMMETRIC KEY CONTOSO_KEY_COLUMNS;  
  
DECLARE @DATA VARBINARY(MAX);  
  
--Open the symmetric key for use in this session  
OPEN SYMMETRIC KEY DATA_ENCRYPTION_KEY   
DECRYPTION BY ASYMMETRIC KEY CONTOSO_KEY_COLUMNS;  
  
--Encrypt syntax  
SELECT @DATA = ENCRYPTBYKEY  
    (  
    KEY_GUID('DATA_ENCRYPTION_KEY'),   
    CONVERT(VARBINARY,'Plain text data to encrypt')  
    );  
  
-- Decrypt syntax  
SELECT CONVERT(VARCHAR, DECRYPTBYKEY(@DATA));  
  
--Close the symmetric key  
CLOSE SYMMETRIC KEY DATA_ENCRYPTION_KEY;  

Weitere InformationenSee Also

Installationsschritte für die Erweiterbare Schlüsselverwaltung mit Azure Key Vault Setup Steps for Extensible Key Management Using the Azure Key Vault
Erweiterbare Schlüsselverwaltung mit Azure Key VaultExtensible Key Management Using Azure Key Vault
EKM provider enabled (Serverkonfigurationsoption) EKM provider enabled Server Configuration Option
SQL Server-Connector – Verwaltung und ProblembehandlungSQL Server Connector Maintenance & Troubleshooting