ALTER CERTIFICATE (Transact-SQL)ALTER CERTIFICATE (Transact-SQL)

DIESES THEMA GILT FÜR: jaSQL Server (ab 2008)jaAzure SQL-DatenbankjaAzure SQL Data Warehouse jaParallel Data Warehouse THIS TOPIC APPLIES TO: yesSQL Server (starting with 2008)yesAzure SQL DatabaseyesAzure SQL Data Warehouse yesParallel Data Warehouse

Ändert den privaten Schlüssel, mit dem ein Zertifikat verschlüsselt wird, oder fügt einen privaten Schlüssel hinzu, falls keiner vorhanden ist.Changes the private key used to encrypt a certificate, or adds one if none is present. Ändert die Verfügbarkeit eines Zertifikats für Service BrokerService Broker.Changes the availability of a certificate to Service BrokerService Broker.

Themenlinksymbol Transact-SQL Syntax Conventions (Transact-SQL-Syntaxkonventionen)Topic link icon Transact-SQL Syntax Conventions

SyntaxSyntax

-- Syntax for SQL Server and Azure SQL Database  

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'   
-- Syntax for Azure SQL Data Warehouse and Parallel Data Warehouse  

ALTER CERTIFICATE certificate_name   
{  
      REMOVE PRIVATE KEY  
    | WITH PRIVATE KEY (   
        FILE = '<path_to_private_key>',  
        DECRYPTION BY PASSWORD = '<key password>' )
}  

ArgumenteArguments

Namecertificate_name
Der eindeutige Name, unter dem das Zertifikat in der Datenbank bekannt ist.Is the unique name by which the certificate is known in database.

Datei = "Path_to_private_key"FILE ='path_to_private_key'
Gibt den vollständigen Pfad einschließlich des Dateinamens für den privaten Schlüssel an.Specifies the complete path, including file name, to the private key. Dieser Parameter kann ein lokaler Pfad oder ein UNC-Pfad zu einem Netzwerkspeicherort sein.This parameter can be a local path or a UNC path to a network location. Auf diese Datei wird im Sicherheitskontext des SQL ServerSQL Server-Dienstkontos zugegriffen.This file will be accessed within the security context of the SQL ServerSQL Server service account. Wenn Sie diese Option verwenden, müssen Sie sicherstellen, dass das Dienstkonto Zugriff auf die angegebene Datei hat.When you use this option, you must make sure that the service account has access to the specified file.

DECRYPTION BY PASSWORD = "Key_password"DECRYPTION BY PASSWORD ='key_password'
Gibt das zum Entschlüsseln des privaten Schlüssels erforderliche Kennwort an.Specifies the password that is required to decrypt the private key.

ENCRYPTION BY PASSWORD = "Kennwort"ENCRYPTION BY PASSWORD ='password'
Gibt das Kennwort an, mit dem der private Schlüssel des Zertifikats in der Datenbank verschlüsselt wird.Specifies the password used to encrypt the private key of the certificate in the database. Kennwort erfüllt die Anforderungen der Windows-Kennwortrichtlinien des Computers, der die Instanz ausgeführt wird SQL ServerSQL Server.password must meet the Windows password policy requirements of the computer that is running the instance of SQL ServerSQL Server. Weitere Informationen finden Sie unter Password Policy.For more information, see Password Policy.

REMOVE PRIVATE KEYREMOVE PRIVATE KEY
Gibt an, dass der private Schlüssel nicht mehr in der Datenbank verwaltet werden soll.Specifies that the private key should no longer be maintained inside the database.

ACTIVE FOR BEGIN_DIALOG = {ON | {OFF}ACTIVE FOR BEGIN_DIALOG = { ON | OFF }
Stellt das Zertifikat für den Initiator einer Service BrokerService Broker-Dialogkonversation zur Verfügung.Makes the certificate available to the initiator of a Service BrokerService Broker dialog conversation.

HinweiseRemarks

Der private Schlüssel muss dem öffentlichen Schlüssel gemäß entsprechen Name.The private key must correspond to the public key specified by certificate_name.

Die DECRYPTION BY PASSWORD-Klausel kann ausgelassen werden, falls das Kennwort in der Datei mit einem NULL-Kennwort geschützt ist.The DECRYPTION BY PASSWORD clause can be omitted if the password in the file is protected with a null password.

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.When the private key of a certificate that already exists in the database is imported from a file, the private key will be automatically protected by the database master key. Verwenden Sie die ENCRYPTION BY PASSWORD-Klausel, um den privaten Schlüssel mit einem Kennwort zu schützen.To protect the private key with a password, use the ENCRYPTION BY PASSWORD phrase.

Mit der Option REMOVE PRIVATE KEY wird der private Schlüssel des Zertifikats aus der Datenbank gelöscht.The REMOVE PRIVATE KEY option will delete the private key of the certificate from the database. Dies ist möglich, wenn das Zertifikat zum Überprüfen von Signaturen oder für Service BrokerService Broker-Szenarien, die keinen privaten Schlüssel erfordern, verwendet wird.You can do this when the certificate will be used to verify signatures or in Service BrokerService Broker scenarios that do not require a private key. Den privaten Schlüssel eines Zertifikats, das einen symmetrischen Schlüssel schützt, dürfen Sie nicht entfernen.Do not remove the private key of a certificate that protects a symmetric key.

Sie müssen kein Entschlüsselungskennwort angeben, wenn der private Schlüssel mithilfe des Datenbank-Hauptschlüssels verschlüsselt wird.You do not have to specify a decryption password when the private key is encrypted by using the database master key.

Wichtig

Erstellen Sie immer eine Archivierungskopie eines privaten Schlüssels, bevor Sie ihn aus einer Datenbank entfernen.Always make an archival copy of a private key before removing it from a database. Weitere Informationen finden Sie unter BACKUP CERTIFICATE (Transact-SQL).For more information, see BACKUP CERTIFICATE (Transact-SQL).

Die Option WITH PRIVATE KEY ist in einer enthaltenen Datenbank nicht verfügbar.The WITH PRIVATE KEY option is not available in a contained database.

BerechtigungenPermissions

Erfordert die ALTER-Berechtigung für das Zertifikat.Requires ALTER permission on the certificate.

BeispieleExamples

A.A. Ändern des Kennworts für ein ZertifikatChanging the password of a certificate

ALTER CERTIFICATE Shipping04   
    WITH PRIVATE KEY (DECRYPTION BY PASSWORD = 'pGF$5DGvbd2439587y',  
    ENCRYPTION BY PASSWORD = '4-329578thlkajdshglXCSgf');  
GO  

B.B. Ändern des Kennworts, das zum Verschlüsseln des privaten Schlüssels verwendet wirdChanging the password that is used to encrypt the private key

ALTER CERTIFICATE Shipping11   
    WITH PRIVATE KEY (ENCRYPTION BY PASSWORD = '34958tosdgfkh##38',  
    DECRYPTION BY PASSWORD = '95hkjdskghFDGGG4%');  
GO  

C.C. Importieren eines privaten Schlüssels für ein Zertifikat, das bereits in der Datenbank vorhanden istImporting a private key for a certificate that is already present in the database

ALTER CERTIFICATE Shipping13   
    WITH PRIVATE KEY (FILE = 'c:\\importedkeys\Shipping13',  
    DECRYPTION BY PASSWORD = 'GDFLKl8^^GGG4000%');  
GO  

D.D. Ändern des Schutzes für den privaten Schlüssel von einem Kennwort in den Datenbank-HauptschlüsselChanging the protection of the private key from a password to the database master key

ALTER CERTIFICATE Shipping15   
    WITH PRIVATE KEY (DECRYPTION BY PASSWORD = '95hk000eEnvjkjy#F%');  
GO  

Siehe auchSee Also

CREATE CERTIFICATE (Transact-SQL) CREATE CERTIFICATE (Transact-SQL)
DROP CERTIFICATE ( Transact-SQL ) DROP CERTIFICATE (Transact-SQL)
BACKUP CERTIFICATE (Transact-SQL) BACKUP CERTIFICATE (Transact-SQL)
Verschlüsselungshierarchie Encryption Hierarchy
EVENTDATA (Transact-SQL)EVENTDATA (Transact-SQL)