Partager via


ALTER CERTIFICATE (Transact-SQL)

Modifie la clé privée utilisée pour chiffrer un certificat ou en ajoute une si aucune clé n'est présente. Affecte à un certificat la disponibilité Service Broker.

Icône Lien de rubriqueConventions de syntaxe Transact-SQL

Syntaxe

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' 

Arguments

  • certificate_name
    Nom unique sous lequel le certificat est connu dans la base de données.

  • FILE ='path_to_private_key'
    Spécifie le chemin d'accès complet, y compris le nom du fichier, à la clé privée. Ce paramètre peut être un chemin d'accès local ou un chemin d'accès UNC à un emplacement réseau. L'accès au fichier a lieu dans le contexte de sécurité du compte de service SQL Server. Lorsque vous utilisez cette option, vous devez vérifier que le compte de service a accès au fichier spécifié.

  • DECRYPTION BY PASSWORD ='key_password'
    Spécifie le mot de passe exigé pour déchiffrer la clé privée.

  • ENCRYPTION BY PASSWORD ='password'
    Spécifie le mot de passe utilisé pour chiffrer la clé privée du certificat dans la base de données. password doit satisfaire aux critères de la stratégie de mot de passe Windows de l'ordinateur qui exécute l'instance de SQL Server. Pour plus d'informations, consultez Stratégie de mot de passe.

  • REMOVE PRIVATE KEY
    Spécifie que la clé privée ne doit plus être conservée dans la base de données.

  • ACTIVE FOR BEGIN_DIALOG = { ON | OFF }
    Met le certificat à disposition de l'initiateur d'une conversation Service Broker.

Notes

La clé privée doit correspondre à la clé publique spécifiée par certificate_name.

Vous pouvez omettre la clause DECRYPTION BY PASSWORD si le mot de passe dans le fichier est protégé par un mot de passe vide.

Lorsque la clé privée d'un certificat qui existe déjà dans la base de données est importée à partir d'un fichier, elle est automatiquement protégée par la clé principale de la base de données. Pour protéger la clé privée avec un mot de passe, utilisez la clause ENCRYPTION BY PASSWORD.

L'option REMOVE PRIVATE KEY supprime de la base de données la clé privée du certificat. Vous pouvez faire cela lorsque le certificat sera utilisé pour vérifier des signatures ou dans des scénarios Service Broker qui n'exigent pas une clé privée. Ne supprimez pas la clé privée d'un certificat qui protège une clé symétrique.

Il n'est pas nécessaire de spécifier un mot de passe de déchiffrement lorsque la clé privée est chiffrée à l'aide de la clé principale de la base de données.

Important

Effectuez toujours une copie de la clé privée avant de la supprimer de la base de données. Pour plus d'informations, consultez BACKUP CERTIFICATE (Transact-SQL).

Autorisations

Nécessite l'autorisation ALTER sur le certificat.

Exemples

A. Modification du mot de passe d'un certificat

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

B. Modification du mot de passe utilisé pour chiffrer la clé privée

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

C. Importation d'une clé privée pour un certificat déjà présent dans la base de données

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

D. Remplacement de la protection de la clé privée par mot de passe par une protection par clé principale de la base de données

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