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

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 Database Engine (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 DMK finden Sie unter ALTER MASTER KEY (Transact-SQL).

Ä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 durch das Computerkonto geschützt wird, das der SQL Server-Dienstgruppe die notwendigen Berechtigungen gewährt. Wenn der Computer neu erstellt 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.

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

Verweis

RESTORE SERVICE MASTER KEY (Transact-SQL)

BACKUP SERVICE MASTER KEY (Transact-SQL)

Konzepte

Verschlüsselungshierarchie