ALTER MASTER KEY (Transact-SQL)

Gilt für:SQL ServerAzure SQL-DatenbankAzure SQL Managed InstanceAzure Synapse AnalyticsAnalytics Platform System (PDW)SQL-Datenbank in Microsoft Fabric

Ändert die Eigenschaften eines Datenbank-Hauptschlüssels.

Transact-SQL-Syntaxkonventionen

Syntax

Syntax für SQL Server

-- Syntax for SQL Server
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' }

Syntax für Azure SQL-Datenbank und SQL Database in Microsoft Fabric

-- Syntax for Azure SQL Database
-- Note: DROP ENCRYPTION BY SERVICE MASTER KEY is not supported on Azure SQL Database.

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 { PASSWORD = 'password' }

Syntax für Azure Synapse Analytics und Analytics-Plattformsystem (PDW)

-- Syntax for Azure Synapse Analytics and Analytics Platform System

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
    |
    DROP ENCRYPTION BY SERVICE MASTER KEY

Arguments

PASSWORT ='Passwort'

Gibt ein Kennwort an, mit dem der Datenbankmasterschlüssel verschlüsselt oder entschlüsselt werden soll. password muss den Anforderungen der Windows-Kennwortrichtlinien des Computers entsprechen, auf dem die Instanz von SQL Server ausgeführt wird.

Remarks

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. Dieser ressourcenintensive Vorgang sollte während eines Zeitraums mit geringer Nachfrage geplant werden, es sei denn, der Hauptschlüssel ist kompromittiert.

SQL Server 2012 (11.x) SQL Server 2016 schützt den Diensthauptschlüssel (Service Master Key, SMK) und den Datenbank-Hauptschlü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 Upgrade einer Instanz des Datenbank-Engine auf SQL Server 2012 (11.x) sollten SMK und DMK neu generiert werden, um die Hauptschlüssel auf AES zu aktualisieren. Weitere Informationen zur Regenerierung des SMK finden Sie unter ALTER SERVICE MASTER KEY.

Wenn die FORCE-Option verwendet wird, wird die Schlüsselregenerierung fortgesetzt, auch wenn der Hauptschlüssel nicht verfügbar ist oder der Server nicht alle verschlüsselten privaten Schlüssel entschlüsseln kann. Wenn der Hauptschlüssel nicht geöffnet werden kann, verwenden Sie die Anweisung, RESTORE MASTER KEY um den Hauptschlüssel aus einem Backup wiederherzustellen. 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 durch einen unwiderruflichen Schlüssel verschlüsselt werden, werden verloren.

Die Option DROP ENCRYPTION BY SERVICE MASTER KEY entfernt die Verschlüsselung des Datenbank-Masterschlüssels durch den Service-Masterschlüssel.

DROP ENCRYPTION BY SERVICE MASTER KEY wird in der Azure SQL-Datenbank nicht unterstützt.

ADD ENCRYPTION BY SERVICE MASTER KEY bewirkt, dass eine Kopie des Masterschlüssels mit dem Service-Masterschlüssel verschlüsselt und sowohl in der aktuellen Datenbank als auch im Master gespeichert wird.

Permissions

Erfordert die CONTROL-Berechtigung für die Datenbank. Wenn der Datenbankmasterschlüssel mit einem Kennwort verschlüsselt ist, ist auch die Kenntnis dieses Kennworts erforderlich.

Examples

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. Ersetzen Sie <secure password> es durch ein sicheres, eindeutiges Kennwort.

USE AdventureWorks2022;
ALTER MASTER KEY REGENERATE WITH ENCRYPTION BY PASSWORD = '<secure password>';
GO

Beispiele: Azure Synapse Analytics und Analytics-Plattformsystem (PDW)

Im folgenden Beispiel wird ein neuer Datenbank-Hauptschlüssel für AdventureWorksPDW2012 erstellt, und die Schlüssel, die sich in der Verschlüsselungshierarchie unter diesem Schlüssel befinden, werden neu verschlüsselt. Ersetzen Sie <secure password> es durch ein sicheres, eindeutiges Kennwort.

USE master;
ALTER MASTER KEY REGENERATE WITH ENCRYPTION BY PASSWORD = '<secure password>';
GO