ALTER CERTIFICATE (Transact-SQL)
Ändert den privaten Schlüssel, mit dem ein Zertifikat verschlüsselt wird, oder fügt einen privaten Schlüssel hinzu, falls keiner vorhanden ist. Ändert die Verfügbarkeit eines Zertifikats für Service Broker.
Syntax
ALTER CERTIFICATE certificate_name
REMOVE PRIVATE KEY
|
WITH PRIVATE KEY ( <private_key_spec> [ ,... ] )
|
WITH ACTIVE FOR BEGIN_DIALOG = [ ON | OFF ]
<private_key_spec> ::=
FILE = 'path_to_private_key'
|
DECRYPTION BY PASSWORD = 'key_password'
|
ENCRYPTION BY PASSWORD = 'password'
Argumente
certificate_name
Der eindeutige Name, unter dem das Zertifikat in der Datenbank bekannt ist.FILE ='path_to_private_key'
Gibt den vollständigen Pfad einschließlich des Dateinamens für den privaten Schlüssel an. Dieser Parameter kann ein lokaler Pfad oder ein UNC-Pfad zu einem Netzwerkspeicherort sein. Auf diese Datei wird im Sicherheitskontext des SQL Server-Dienstkontos zugegriffen. Wenn Sie diese Option verwenden, müssen Sie sicherstellen, dass das Dienstkonto Zugriff auf die angegebene Datei hat.DECRYPTION BY PASSWORD ='key_password'
Gibt das zum Entschlüsseln des privaten Schlüssels erforderliche Kennwort an.ENCRYPTION BY PASSWORD ='password'
Legt das zum Verschlüsseln des privaten Zertifikatsschlüssels verwendete Kennwort in der Datenbank fest. password muss den Anforderungen der Windows-Kennwortrichtlinien des Computers entsprechen, auf dem die Instanz von SQL Server ausgeführt wird. Weitere Informationen finden Sie unter Kennwortrichtlinie.REMOVE PRIVATE KEY
Gibt an, dass der private Schlüssel nicht mehr in der Datenbank verwaltet werden soll.ACTIVE FOR BEGIN_DIALOG = { ON | OFF }
Stellt das Zertifikat für den Initiator einer Service Broker-Dialogkonversation zur Verfügung.
Hinweise
Der private Schlüssel muss dem öffentlichen Schlüssel entsprechen, der mit certificate_name angegeben ist.
Die DECRYPTION BY PASSWORD-Klausel kann ausgelassen werden, falls das Kennwort in der Datei mit einem NULL-Kennwort geschützt ist.
Wenn der private Schlüssel eines Zertifikats, das bereits in der Datenbank vorhanden ist, aus einer Datei importiert wird, wird der private Schlüssel automatisch mit dem Datenbank-Hauptschlüssel geschützt. Verwenden Sie die ENCRYPTION BY PASSWORD-Klausel, um den privaten Schlüssel mit einem Kennwort zu schützen.
Mit der Option REMOVE PRIVATE KEY wird der private Schlüssel des Zertifikats aus der Datenbank gelöscht. Dies ist möglich, wenn das Zertifikat zum Überprüfen von Signaturen oder für Service Broker-Szenarien, die keinen privaten Schlüssel erfordern, verwendet wird. Den privaten Schlüssel eines Zertifikats, das einen symmetrischen Schlüssel schützt, dürfen Sie nicht entfernen.
Sie müssen kein Entschlüsselungskennwort angeben, wenn der private Schlüssel mithilfe des Datenbank-Hauptschlüssels verschlüsselt wird.
Wichtig |
---|
Erstellen Sie immer eine Archivierungskopie eines privaten Schlüssels, bevor Sie ihn aus einer Datenbank entfernen. Weitere Informationen finden Sie unter BACKUP CERTIFICATE (Transact-SQL). |
Berechtigungen
Erfordert die ALTER-Berechtigung für das Zertifikat.
Beispiele
A. Ändern des Kennworts eines Zertifikats
ALTER CERTIFICATE Shipping04
WITH PRIVATE KEY (DECRYPTION BY PASSWORD = 'pGF$5DGvbd2439587y',
ENCRYPTION BY PASSWORD = '4-329578thlkajdshglXCSgf');
GO
B. Ändern des Kennworts, mit dem der private Schlüssel verschlüsselt wird
ALTER CERTIFICATE Shipping11
WITH PRIVATE KEY (ENCRYPTION BY PASSWORD = '34958tosdgfkh##38',
DECRYPTION BY PASSWORD = '95hkjdskghFDGGG4%');
GO
C. Importieren eines privaten Schlüssels für ein in der Datenbank vorhandenes Zertifikat
ALTER CERTIFICATE Shipping13
WITH PRIVATE KEY (FILE = 'c:\\importedkeys\Shipping13',
DECRYPTION BY PASSWORD = 'GDFLKl8^^GGG4000%');
GO
D. Ändern des Schutzes des privaten Schlüssels von einem Kennwort zum Datenbank-Hauptschlüssel
ALTER CERTIFICATE Shipping15
WITH PRIVATE KEY (DECRYPTION BY PASSWORD = '95hk000eEnvjkjy#F%');
GO