ALTER MASTER KEY (Transact-SQL)

 

THIS TOPIC APPLIES TO:yesSQL Server (starting with 2008)noAzure SQL DatabaseyesAzure SQL Data Warehouse yesParallel Data Warehouse

Ändert die Eigenschaften eines Datenbank-Hauptschlüssels.

Gilt für: SQL Server (SQL Server 2008 bis aktuelle Version).

Topic link icon Transact-SQL-Syntaxkonventionen

  
ALTER MASTER KEY <alter_option>  
  
<alter_option> ::=  
    <regenerate_option> | <encryption_option>  
  
<regenerate_option> ::=  
    [ FORCE ] REGENERATE WITH ENCRYPTION BY PASSWORD = 'password'  
  
<encryption_option> ::=  
    ADD ENCRYPTION BY { SERVICE MASTER KEY | PASSWORD = 'password' }  
    |   
    DROP ENCRYPTION BY { SERVICE MASTER KEY | PASSWORD = 'password' }  

PASSWORD ='password'
Gibt ein Kennwort an, mit dem der Datenbank-Hauptschlüssel ver- oder entschlüsselt wird. password muss den Anforderungen der Windows-Kennwortrichtlinien des Computers entsprechen, auf dem die Instanz von SQL Server ausgeführt wird.

Mit der REGENERATE-Option werden der Datenbank-Hauptschlüssel und alle durch ihn geschützten Schlüssel neu erstellt. Die Schlüssel werden zunächst mit dem alten Hauptschlüssel entschlüsselt und anschließend mit dem neuen Hauptschlüssel verschlüsselt. Die Ausführung dieses ressourcenintensiven Vorgangs sollte außerhalb der Hauptzeiten geplant werden, es sei denn, der Hauptschlüssel ist nicht mehr sicher.

SQL Server 2012 schützt den Diensthauptschlüssel (Service Master Key, SMK) und den Datenbankhauptschlüssel (Database Master Key, DMK) mithilfe des AES-Verschlüsselungsalgorithmus. AES ist ein neuerer Verschlüsselungsalgorithmus als der in früheren Versionen verwendete 3DES-Algorithmus. Nach dem Aktualisieren einer Instanz vom Datenbankmodul auf SQL Server 2012 sollten SMK und DMK erneut generiert werden, um die Hauptschlüssel auf AES zu aktualisieren. Weitere Informationen zum Neugenerieren des SMK finden Sie unter ALTER SERVICE MASTER KEY (Transact-SQL).

Bei Verwendung der FORCE-Option wird die Schlüsselneugenerierung fortgesetzt, auch wenn der Hauptschlüssel nicht verfügbar ist oder wenn der Server nicht alle verschlüsselten privaten Schlüssel entschlüsseln kann. Falls der Hauptschlüssel nicht geöffnet werden kann, können Sie den Hauptschlüssel mit der RESTORE MASTER KEY-Anweisung aus einer Sicherung wiederherstellen. Die FORCE-Option sollte nur verwendet werden, wenn der Hauptschlüssel nicht abgerufen werden kann oder wenn bei der Entschlüsselung ein Fehler aufgetreten ist. Informationen, die nur mit dem nicht abrufbaren Schlüssel verschlüsselt sind, gehen verloren.

Mit der DROP ENCRYPTION BY SERVICE MASTER KEY-Option wird die Verschlüsselung des Datenbank-Hauptschlüssels durch den Diensthauptschlüssel entfernt.

Mit ADD ENCRYPTION BY SERVICE MASTER KEY wird eine Kopie des Hauptschlüssels mithilfe des Diensthauptschlüssels verschlüsselt. Der Hauptschlüssel wird dann sowohl in der aktuellen Datenbank als auch in der master-Datenbank gespeichert.

Erfordert die CONTROL-Berechtigung für die Datenbank. Falls der Datenbank-Hauptschlüssel mit einem Kennwort verschlüsselt wurde, muss das Kennwort bekannt sein.

Im folgenden Beispiel wird ein neuer Datenbank-Hauptschlüssel für AdventureWorks erstellt, und die Schlüssel, die sich in der Verschlüsselungshierarchie unter diesem Schlüssel befinden, werden neu verschlüsselt.

USE AdventureWorks2012;  
ALTER MASTER KEY REGENERATE WITH ENCRYPTION BY PASSWORD = 'dsjdkflJ435907NnmM#sX003';  
GO  

CREATE MASTER KEY (Transact-SQL)
OPEN MASTER KEY (Transact-SQL)
CLOSE MASTER KEY (Transact-SQL)
BACKUP MASTER KEY (Transact-SQL)
RESTORE MASTER KEY (Transact-SQL)
DROP MASTER KEY (Transact-SQL)
Verschlüsselungshierarchie
CREATE DATABASE (SQL Server Transact-SQL)
Anfügen und Trennen von Datenbanken (SQL Server)

Community-Beiträge

Anzeigen: