Partager via


ALTER MASTER KEY (Transact-SQL)

S’applique à : SQL Server Azure SQL Database Azure SQL Managed Instance Azure Synapse Analytics Analytics Platform System (PDW) Base de données SQL dans Microsoft Fabric

Permet de modifier les propriétés de la clé principale d'une base de données.

Conventions de la syntaxe Transact-SQL

Syntaxe

Syntaxe pour SQL Server

-- Syntax for SQL Server
ALTER MASTER KEY <alter_option>

<alter_option> ::=
    <regenerate_option> | <encryption_option>

<regenerate_option> ::=
    [ FORCE ] REGENERATE WITH ENCRYPTION BY PASSWORD = 'password'

<encryption_option> ::=
    ADD ENCRYPTION BY { SERVICE MASTER KEY | PASSWORD = 'password' }
    |
    DROP ENCRYPTION BY { SERVICE MASTER KEY | PASSWORD = 'password' }

Syntaxe pour Azure SQL Database et base de données SQL dans Microsoft Fabric

-- Syntax for Azure SQL Database
-- Note: DROP ENCRYPTION BY SERVICE MASTER KEY is not supported on Azure SQL Database.

ALTER MASTER KEY <alter_option>

<alter_option> ::=
    <regenerate_option> | <encryption_option>

<regenerate_option> ::=
    [ FORCE ] REGENERATE WITH ENCRYPTION BY PASSWORD = 'password'

<encryption_option> ::=
    ADD ENCRYPTION BY { SERVICE MASTER KEY | PASSWORD = 'password' }
    |
    DROP ENCRYPTION BY { PASSWORD = 'password' }

Syntaxe pour Azure Synapse Analytics et Analytics Platform System (PDW)

-- Syntax for Azure Synapse Analytics and Analytics Platform System

ALTER MASTER KEY <alter_option>

<alter_option> ::=
    <regenerate_option> | <encryption_option>

<regenerate_option> ::=
    [ FORCE ] REGENERATE WITH ENCRYPTION BY PASSWORD ='password'

<encryption_option> ::=
    ADD ENCRYPTION BY SERVICE MASTER KEY
    |
    DROP ENCRYPTION BY SERVICE MASTER KEY

Arguments

PASSWORD ='password'

Spécifie un mot de passe avec lequel chiffrer ou déchiffrer la clé principale de 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.

Notes

L'option REGENERATE permet de créer de nouveau la clé principale de base de données et toutes les clés qu'elle protège. Les clés sont déchiffrées au préalable au moyen de l'ancienne clé principale, puis chiffrées au moyen de la nouvelle clé principale. Cette opération gourmande en ressources doit être planifiée pendant une période de faible demande, sauf si la clé principale est compromise.

SQL Server 2012 (11.x) utilise l’algorithme de chiffrement AES pour protéger la clé principale du service (SMK) et la clé principale de base de données (DMK). AES est un algorithme de chiffrement plus récent que 3DES, qui était utilisé dans les versions antérieures. Après la mise à niveau d’une instance du Moteur de base de données vers SQL Server 2012 (11.x), la clé SMK et le DMK doivent être régénérés pour mettre à niveau les clés principales vers AES. Pour plus d’informations sur la régénération de la clé SMK, consultez l’article ALTER SERVICE MASTER KEY.

Lorsque l’option FORCE est utilisée, la régénération des clés se poursuit même si la clé principale n’est pas disponible ou si le serveur ne peut pas déchiffrer toutes les clés privées chiffrées. Si la clé principale ne peut pas être ouverte, utilisez l’instruction RESTORE MASTER KEY pour restaurer la clé principale à partir d’une sauvegarde. Utilisez l'option FORCE seulement si la clé principale ne peut pas être récupérée ou si le déchiffrement échoue. Les informations chiffrées uniquement par une clé irrétrivée sont perdues.

L'option DROP ENCRYPTION BY SERVICE MASTER KEY permet de supprimer le chiffrement de la clé principale de base de données au moyen de la clé principale du service.

DROP ENCRYPTION BY SERVICE MASTER KEY n’est pas pris en charge sur Azure SQL Database.

ADD ENCRYPTION BY SERVICE MASTER KEY entraîne le chiffrement d'une copie de la clé principale au moyen de la clé principale du service et le stockage de cette copie dans la base de données en cours et dans master.

Autorisations

Exige l’autorisation CONTROL sur la base de données. Si la clé principale de base de données est chiffrée avec un mot de passe, la connaissance de ce mot de passe est également requise.

Exemples

Dans l'exemple ci-dessous, une nouvelle clé principale de base de données est créée pour AdventureWorks et les clés placées sous cette clé dans la hiérarchie de chiffrement sont chiffrées de nouveau. Remplacez par <secure password> un mot de passe fort et unique.

USE AdventureWorks2022;
ALTER MASTER KEY REGENERATE WITH ENCRYPTION BY PASSWORD = '<secure password>';
GO

Exemples : Azure Synapse Analytics et Analytics Platform System (PDW)

Dans l’exemple suivant, une clé principale de base de données est créée pour AdventureWorksPDW2012 et les clés placées sous cette clé dans la hiérarchie de chiffrement sont de nouveau chiffrées. Remplacez par <secure password> un mot de passe fort et unique.

USE master;
ALTER MASTER KEY REGENERATE WITH ENCRYPTION BY PASSWORD = '<secure password>';
GO