Freigeben über


ALTER SYMMETRIC KEY (Transact-SQL)

Gilt für: SQL Server Azure SQL-Datenbank Azure SQL Managed Instance Azure Synapse Analytics SQL-Datenbank in Microsoft Fabric

Ändert die Eigenschaften eines symmetrischen Schlüssels.

Transact-SQL-Syntaxkonventionen

Hinweis

Diese Syntax wird vom serverlosen SQL-Pool in Azure Synapse Analytics nicht unterstützt.

Syntax

ALTER SYMMETRIC KEY Key_name <alter_option>  
  
<alter_option> ::=  
   ADD ENCRYPTION BY <encrypting_mechanism> [ , ... n ]  
   |   
   DROP ENCRYPTION BY <encrypting_mechanism> [ , ... n ]  
<encrypting_mechanism> ::=  
   CERTIFICATE certificate_name  
   |  
   PASSWORD = 'password'  
   |  
   SYMMETRIC KEY Symmetric_Key_Name  
   |  
   ASYMMETRIC KEY Asym_Key_Name  

Argumente

Key_name
Der Name des zu ändernden symmetrischen Schlüssels in der Datenbank.

ADD ENCRYPTION BY
Fügt die Verschlüsselung mithilfe der angegebenen Methode hinzu.

DROP ENCRYPTION BY
Löscht die Verschlüsselung mithilfe der angegebenen Methode. Es können nicht alle Verschlüsselungen für einen symmetrischen Schlüssel entfernt werden.

CERTIFICATE certificate_name
Gibt das zum Verschlüsseln des symmetrischen Schlüssels verwendete Zertifikat an. Dieses Zertifikat muss bereits in der Datenbank vorhanden sein.

PASSWORD ='password'
Gibt das zum Verschlüsseln des symmetrischen Schlüssels verwendete Kennwort an. password muss den Anforderungen der Windows-Kennwortrichtlinien des Computers entsprechen, auf dem die Instanz von SQL Server ausgeführt wird.

SYMMETRIC KEY Symmetric_Key_Name
Gibt den symmetrischen Schlüssel an, der zum Verschlüsseln des zu ändernden symmetrischen Schlüssels verwendet wird. Dieser symmetrische Schlüssel muss bereits in der Datenbank vorhanden und geöffnet sein.

ASYMMETRIC KEY Asym_Key_Name
Gibt den asymmetrischen Schlüssel an, der zum Verschlüsseln des zu ändernden symmetrischen Schlüssels verwendet wird. Dieser asymmetrische Schlüssel muss bereits in der Datenbank vorhanden sein.

Bemerkungen

Achtung

Wenn ein symmetrischer Schlüssel mit einem Kennwort anstatt mit einem öffentlichen Schlüssel des Datenbank-Hauptschlüssels verschlüsselt ist, wird der TRIPLE_DES-Verschlüsselungsalgorithmus verwendet. Daher werden Schlüssel, die mit einem starken Verschlüsselungsalgorithmus wie z. B. AES erstellt werden, selbst mit einem schwächeren Algorithmus verschlüsselt.

Sie können die Verschlüsselung des symmetrischen Schlüssels ändern, indem Sie die Ausdrücke ADD ENCRYPTION und DROP ENCRYPTION verwenden. Ein Schlüssel kann nicht unverschlüsselt vorhanden sein. Daher ist es die bewährte Methode, die neue Form der Verschlüsselung hinzuzufügen, bevor die alte Form der Verschlüsselung entfernt wird.

Wenn Sie den Besitzer eines symmetrischen Schlüssels ändern möchten, können Sie ALTER AUTHORIZATION verwenden.

Hinweis

Der RC4-Algorithmus wird nur aus Gründen der Abwärtskompatibilität unterstützt. Neues Material kann nur mit RC4 oder RC4_128 verschlüsselt werden, wenn die Datenbank den Kompatibilitätsgrad 90 oder 100 besitzt. (Nicht empfohlen.) Verwenden Sie stattdessen einen neueren Algorithmus, z. B. einen der AES-Algorithmen. In SQL Server 2012 (11.x) kann mit RC4 oder RC4_128 verschlüsseltes Material in jedem Kompatibilitätsgrad entschlüsselt werden.

Berechtigungen

Erfordert die ALTER-Berechtigung für den symmetrischen Schlüssel. Falls die Verschlüsselung mit einem Zertifikat oder asymmetrischen Schlüssel hinzugefügt wird, ist die VIEW DEFINITION-Berechtigung für das Zertifikat oder den asymmetrischen Schlüssel erforderlich. Falls die Verschlüsselung mit einem Zertifikat oder asymmetrischen Schlüssel gelöscht wird, ist die CONTROL-Berechtigung für das Zertifikat oder den asymmetrischen Schlüssel erforderlich.

Beispiele

Im folgenden Beispiel wird die Verschlüsselungsmethode geändert, die zum Schutz eines symmetrischen Schlüssels verwendet wird. Der symmetrische Schlüssel JanainaKey043 wird mithilfe des Zertifikats Shipping04 bei der Erstellung des Schlüssels verschlüsselt. Da der Schlüssel nicht ohne Verschlüsselung gespeichert werden kann, wird in diesem Beispiel die Verschlüsselung mit einem Kennwort hinzugefügt. Anschließend wird die Verschlüsselung durch das Zertifikat entfernt.

CREATE SYMMETRIC KEY JanainaKey043 WITH ALGORITHM = AES_256   
    ENCRYPTION BY CERTIFICATE Shipping04;  
-- Open the key.   
OPEN SYMMETRIC KEY JanainaKey043 DECRYPTION BY CERTIFICATE Shipping04  
    WITH PASSWORD = '<enterStrongPasswordHere>';   
-- First, encrypt the key with a password.  
ALTER SYMMETRIC KEY JanainaKey043   
    ADD ENCRYPTION BY PASSWORD = '<enterStrongPasswordHere>';  
-- Now remove encryption by the certificate.  
ALTER SYMMETRIC KEY JanainaKey043   
    DROP ENCRYPTION BY CERTIFICATE Shipping04;  
CLOSE SYMMETRIC KEY JanainaKey043;  

Siehe auch

CREATE SYMMETRIC KEY (Transact-SQL)
OPEN SYMMETRIC KEY (Transact-SQL)
CLOSE SYMMETRIC KEY (Transact-SQL)
DROP SYMMETRIC KEY (Transact-SQL)
Verschlüsselungshierarchie