Remarque
L’accès à cette page nécessite une autorisation. Vous pouvez essayer de vous connecter ou de modifier des répertoires.
L’accès à cette page nécessite une autorisation. Vous pouvez essayer de modifier des répertoires.
S’applique à :SQL Server
Azure SQL Database
Azure SQL Managed Instance
Analytics Platform System (PDW)
Base de données SQL dans Microsoft Fabric
Modifie le mot de passe utilisé pour chiffrer la clé privée d’un certificat, supprime la clé privée, ou importe la clé privée si aucune n’est présente. Affecte à un certificat la disponibilité Service Broker.
Conventions de la syntaxe Transact-SQL
Syntax
-- 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' | BINARY = private_key_bits }
[ , DECRYPTION BY PASSWORD = 'current_password' ]
[ , ENCRYPTION BY PASSWORD = 'new_password' ]
}
|
{
[ DECRYPTION BY PASSWORD = 'current_password' ]
[ [ , ] ENCRYPTION BY PASSWORD = 'new_password' ]
}
-- Syntax for Parallel Data Warehouse
ALTER CERTIFICATE certificate_name
{
REMOVE PRIVATE KEY
| WITH PRIVATE KEY (
FILE = '<path_to_private_key>',
DECRYPTION BY PASSWORD = '<key password>' )
}
Arguments
certificate_name
Nom unique par lequel le certificat est connu dans la base de données.
SUPPRIMER UNE CLÉ PRIVÉE
Spécifie que la clé privée ne sera plus conservée à l’intérieur de la base de données.
WITH PRIVATE KEY Spécifie que la clé privée du certificat est chargée dans SQL Server.
FICHIER ='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. Le fichier est accessible 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é.
Si vous spécifiez uniquement un nom de fichier, le fichier est enregistré dans le dossier de données utilisateur par défaut de l’instance. Ce dossier peut ou non être le dossier SQL Server DATA. Pour la base de données locale SQL Server Express, le dossier de données utilisateur par défaut de l’instance correspond au chemin d’accès spécifié par la variable d’environnement %USERPROFILE% pour le compte qui a créé l’instance.
BINAIRE ='private_key_bits'
S’applique à : SQL Server 2012 (11.x) et versions ultérieures.
Bits de clé privée spécifiés comme constante binaire. Ces bits peuvent être sous forme chiffrée. Si le chiffrement est chiffré, vous devez fournir un mot de passe de déchiffrement. SQL Server n’effectue pas de vérifications de stratégie de mot de passe sur ce mot de passe. Les bits de clé privée doivent être dans un format de fichier PVK.
DÉCHIFFREMENT PAR MOT DE PASSE ='current_password'
Spécifie le mot de passe exigé pour déchiffrer la clé privée.
CHIFFREMENT PAR MOT DE PASSE ='new_password'
Spécifie le mot de passe utilisé pour chiffrer la clé privée du certificat dans la base de données.
new_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 Password Policy.
ACTIF DEPUIS BEGIN_DIALOG = { ON | OFF }
Met le certificat à disposition de l'initiateur d'une conversation Service Broker.
Remarks
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 du fichier est protégé par un mot de passe Null.
Lorsque vous importez la clé privée d’un certificat qui existe déjà dans la base de données, la clé privée est automatiquement protégée par la clé principale de 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 la clé privée du certificat de la base de données. Vous pouvez supprimer la clé privée lorsque vous utilisez le certificat pour vérifier les signatures ou dans les scénarios Service Broker qui ne nécessitent pas de clé privée. Ne supprimez pas la clé privée d’un certificat qui protège une clé symétrique. Vous devez restaurer la clé privée pour signer tous les modules ou chaînes supplémentaires qui doivent être vérifiés avec le certificat, ou pour déchiffrer une valeur chiffrée avec le certificat.
Vous n’avez pas besoin 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 base de données.
Pour modifier le mot de passe utilisé pour chiffrer la clé privée, ne spécifiez pas les clauses FILE ou BINARY.
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) et CERTPRIVATEKEY (Transact-SQL).
L’option WITH PRIVATE KEY n’est pas disponible dans une base de données autonome.
Limites
Les noms de certificats ne peuvent pas être modifiés après la création. ALTER CERTIFICATE ne prend pas en charge le changement de nom des certificats. Si vous devez utiliser un autre nom de certificat, vous devez créer un certificat et migrer des dépendances.
Solution de contournement pour les certificats TDE
Si vous devez remplacer un certificat TDE (Transparent Data Encryption) par un autre nom :
Sauvegardez le certificat actuel et la clé privée :
BACKUP CERTIFICATE OldTDECert TO FILE = 'C:\Backup\OldTDECert.cer' WITH PRIVATE KEY ( FILE = 'C:\Backup\OldTDECert.pvk', ENCRYPTION BY PASSWORD = '<password>' );Créez le nouveau certificat avec le nom correct :
CREATE CERTIFICATE NewTDECert WITH SUBJECT = 'TDE Certificate - Correct Name';Pour chaque base de données chiffrée par TDE, modifiez la clé de chiffrement :
USE EncryptedDB; GO ALTER DATABASE ENCRYPTION KEY ENCRYPTION BY SERVER CERTIFICATE NewTDECert;Une fois toutes les bases de données migrées, supprimez l’ancien certificat :
USE master; GO DROP CERTIFICATE OldTDECert;
Important
Sauvegardez toujours des certificats et des clés privées avant d’apporter des modifications TDE. Stockez les sauvegardes dans un emplacement sécurisé distinct du serveur de base de données.
Permissions
Nécessite l'autorisation ALTER sur le certificat.
Examples
A. Suppression de la clé privée d’un certificat
ALTER CERTIFICATE Shipping04
REMOVE PRIVATE KEY;
GO
B. Modification du mot de passe utilisé pour chiffrer la clé privée
ALTER CERTIFICATE Shipping11
WITH PRIVATE KEY (DECRYPTION BY PASSWORD = '95hkjdskghFDGGG4%',
ENCRYPTION BY PASSWORD = '34958tosdgfkh##38');
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