ALTER SERVICE MASTER KEY (Transact-SQL)

Gilt für:SQL ServerAzure SQL Managed Instance

Ändert den Diensthauptschlüssel einer Instanz von SQL Server.

Transact-SQL-Syntaxkonventionen

Syntax

ALTER SERVICE MASTER KEY   
    [ { <regenerate_option> | <recover_option> } ] [;]  
  
<regenerate_option> ::=  
    [ FORCE ] REGENERATE  
  
<recover_option> ::=  
    { WITH OLD_ACCOUNT = 'account_name' , OLD_PASSWORD = 'password' }  
    |      
    { WITH NEW_ACCOUNT = 'account_name' , NEW_PASSWORD = 'password' }  

Hinweis

Informationen zum Anzeigen der Transact-SQL-Syntax für SQL Server 2014 (12.x) und früher finden Sie unter Dokumentation zu früheren Versionen.

Argumente

FORCE
Gibt an, dass der Diensthauptschlüssel neu generiert werden soll, auch wenn Daten bei diesem Vorgang verloren gehen können. Weitere Informationen finden Sie unter Ändern des SQL Server-Dienstkontos weiter unten in diesem Artikel.

REGENERATE
Gibt an, dass der Diensthauptschlüssel neu generiert werden soll.

OLD_ACCOUNT ='account_name'
Gibt den Namen des alten Windows-Dienstkontos an.

Warnung

Diese Option ist veraltet. Nicht verwenden. Verwenden Sie stattdessen den SQL Server-Konfigurations-Manager.

OLD_PASSWORD ='password'
Gibt das Kennwort des alten Windows-Dienstkontos an.

Warnung

Diese Option ist veraltet. Nicht verwenden. Verwenden Sie stattdessen den SQL Server-Konfigurations-Manager.

NEW_ACCOUNT ='account_name'
Gibt den Namen des neuen Windows-Dienstkontos an.

Warnung

Diese Option ist veraltet. Nicht verwenden. Verwenden Sie stattdessen den SQL Server-Konfigurations-Manager.

NEW_PASSWORD ='password'
Gibt das Kennwort des neuen Windows-Dienstkontos an.

Warnung

Diese Option ist veraltet. Nicht verwenden. Verwenden Sie stattdessen den SQL Server-Konfigurations-Manager.

Bemerkungen

Der Diensthauptschlüssel wird automatisch generiert, wenn er zum ersten Mal benötigt wird, um ein Kennwort für einen Verbindungsserver, Anmeldeinformationen oder den Datenbank-Hauptschlüssel zu verschlüsseln. Der Diensthauptschlüssel wird mithilfe des auf dem lokalen Computer verwendeten Computerschlüssels oder der Windows-Datenschutz-API (DPAPI) verschlüsselt. Diese API verwendet einen Schlüssel, der von den Windows-Anmeldeinformationen des SQL Server-Dienstkontos abgeleitet wird.

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 Aktualisieren einer Instanz von Datenbank-Engine auf SQL Server 2012 (11.x) sollten SMK und DMK erneut generiert werden, um die Hauptschlüssel auf AES zu aktualisieren. Weitere Informationen zum Neugenerieren des DMK finden Sie unter ALTER MASTER KEY (Transact-SQL).

Ändern des SQL Server-Dienstkontos

Verwenden Sie zur Änderung des SQL Server-Dienstkontos den SQL Server-Konfigurations-Manager. Um eine Änderung des Dienstkontos zu verwalten, speichert SQL Server eine redundante Kopie des Diensthauptschlüssels, die von dem Computerkonto geschützt wird, das die notwendigen der SQL Server-Dienstgruppe gewährten Berechtigungen hat. Wenn der Computer neu eingerichtet wird, kann der gleiche Domänenbenutzer, der zuvor vom Dienstkonto verwendet wurde, den Diensthauptschlüssel wiederherstellen. Dies funktioniert nicht mit lokalen Konten oder den Konten für das lokale System, den lokalen Dienst oder den Netzwerkdienst. Wenn Sie SQL Server auf einen anderen Computer verschieben, migrieren Sie den Diensthauptschlüssel über eine Sicherung und Wiederherstellung.

Mit REGENERATE wird der Diensthauptschlüssel neu generiert. Nach der Neugenerierung des Diensthauptschlüssels werden alle Schlüssel, die mit diesem Schlüssel verschlüsselt wurden, von SQL Server entschlüsselt und mit dem neuen Diensthauptschlüssel verschlüsselt. Dies ein ressourcenintensiver Vorgang. Die Ausführung dieses Vorgangs sollte außerhalb der Hauptzeiten geplant werden, es sei denn, der Schlüssel ist nicht mehr sicher. Falls einer dieser Entschlüsselungsvorgänge nicht erfolgreich beendet wird, wird für die gesamte Anweisung ein Fehler zurückgegeben.

Mit der FORCE-Option wird der Vorgang der Schlüsselneugenerierung fortgesetzt, auch wenn der aktuelle Hauptschlüssel nicht abgerufen werden kann oder wenn nicht alle privaten Schlüssel entschlüsselt werden können, die mit ihm verschlüsselt wurden. Verwenden Sie FORCE nur, wenn bei der Neugenerierung ein Fehler auftritt und der Diensthauptschlüssel nicht mithilfe der RESTORE SERVICE MASTER KEY-Anweisung wiederhergestellt werden kann.

Achtung

Der Diensthauptschlüssel ist der Stamm der SQL Server -Verschlüsselungshierarchie. Mit dem Diensthauptschlüssel werden alle Schlüssel und geheimen Bereiche in der Struktur direkt oder indirekt geschützt. Wenn ein abhängiger Schlüssel während der erzwungenen Neugenerierung nicht entschlüsselt werden kann, gehen die durch den Schlüssel geschützten Daten verloren.

Wenn Sie SQL auf einen anderen Computer verschieben, müssen Sie dasselbe Dienstkonto zur SMK-Entschlüsselung verwenden. Das Computerkonto wird von SQL Server automatisch verschlüsselt.

Berechtigungen

Erfordert die CONTROL SERVER-Berechtigung auf dem Server.

Beispiele

Im folgenden Beispiel wird der Diensthauptschlüssel neu generiert.

ALTER SERVICE MASTER KEY REGENERATE;  
GO  

Siehe auch

RESTORE SERVICE MASTER KEY (Transact-SQL)
BACKUP SERVICE MASTER KEY (Transact-SQL)
Verschlüsselungshierarchie