Freigeben über


ALTER SERVICE MASTER KEY (Transact-SQL)

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

Themenlink (Symbol)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' }

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 Thema.

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

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

    VorsichtshinweisVorsicht

    Diese Option ist veraltet. Sie darf nicht verwendet werden. Verwenden Sie stattdessen den SQL Server Konfigurations-Manager.

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

    VorsichtshinweisVorsicht

    Diese Option ist veraltet. Sie darf nicht verwendet werden. Verwenden Sie stattdessen den SQL Server Konfigurations-Manager.

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

    VorsichtshinweisVorsicht

    Diese Option ist veraltet. Sie darf nicht verwendet werden. Verwenden Sie stattdessen den SQL Server Konfigurations-Manager.

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

    VorsichtshinweisVorsicht

    Diese Option ist veraltet. Sie darf nicht verwendet werden. Verwenden Sie stattdessen den SQL Server Konfigurations-Manager.

Hinweise

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 ist.

Der Diensthauptschlüssel kann nur von dem Dienstkonto entschlüsselt werden, unter dem er erstellt wurde, oder von einem Prinzipal, der auf die Windows-Anmeldeinformationen dieses Dienstkontos zugreifen kann. Wenn Sie das Windows-Konto ändern, unter dem der SQL Server-Dienst ausgeführt wird, müssen Sie auch die Entschlüsselung des Diensthauptschlüssels mit dem neuen Konto ermöglichen.

Ändern des SQL Server-Dienstkontos

Verwenden Sie zum Ändern 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 über die erforderlichen, der SQL Server-Dienstgruppe erteilten Berechtigungen verfügt. 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 mit 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.

VorsichtshinweisVorsicht

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.

Mit den MACHINE KEY-Optionen können Sie Verschlüsselung mithilfe des Computerschlüssels hinzufügen oder entfernen.

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