CREATE MASTER KEY (Transact-SQL)

S’applique à :SQL ServerAzure SQL DatabaseAzure SQL Managed InstanceAzure Synapse AnalyticsAnalytics Platform System (PDW)

Crée une clé principale de base de données dans la base de données.

Important

  • Vous devez sauvegarder la clé principale à l’aide de l’instruction BACKUP MASTER KEY et stocker la sauvegarde en lieu sûr, en dehors de votre lieu de travail.
  • Dans SQL Server, vous devez aussi sauvegarder la clé principale de service avec BACKUP SERVICE MASTER KEY et stocker la sauvegarde dans un endroit sécurisé hors site.

Conventions de la syntaxe Transact-SQL

Syntaxe

CREATE MASTER KEY [ ENCRYPTION BY PASSWORD ='password' ]
[ ; ]

Remarque

Pour afficher la syntaxe Transact-SQL pour SQL Server 2014 (12.x) et versions antérieures, consultez la Documentation sur les versions antérieures.

Arguments

PASSWORD ='password'

Mot de passe utilisé pour chiffrer la clé principale 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. password est facultatif dans SQL Database et Azure Synapse Analytics.

Notes

La clé principale de base de données est une clé symétrique utilisée pour protéger les clés privées des certificats et des clés asymétriques présentes dans la base de données et les secrets dans les informations d’identification délimitées à la base de données. Lors de sa création, la clé principale est chiffrée à l'aide de l'algorithme AES_256 et d'un mot de passe fourni par l'utilisateur. Dans SQL Server 2008 (10.0.x) et SQL Server 2008 R2 (10.50.x), l’algorithme Triple DES est utilisé. Pour permettre le déchiffrement automatique de la clé principale, une copie de la clé est chiffrée à l'aide de la clé principale de service et stockée dans la base de données et dans master. En général, la copie stockée dans master est mise à jour sans avertissement chaque fois que la clé principale est modifiée. Ce comportement par défaut peut être changé à l’aide de l’option DROP ENCRYPTION BY SERVICE MASTER KEY d’ALTER MASTER KEY. Une clé principale qui n’est pas chiffrée par la clé principale du service doit être ouverte à l’aide de l’instruction OPEN MASTER KEY et d’un mot de passe.

La colonne is_master_key_encrypted_by_server de l'affichage catalogue sys.databases dans master indique si la clé principale de base de données est chiffrée au moyen de la clé principale de service.

Des informations sur la clé principale de base de données sont consultables dans l'affichage catalogue sys.symmetric_keys.

Pour SQL Server et Parallel Data Warehouse, la clé principale est généralement protégée par la clé principale de service et au moins un mot de passe. Dans le cas où la base de données est physiquement déplacée vers un autre serveur (copie des journaux de transaction, restauration de sauvegarde, etc.), la base de données contient une copie de la clé principale chiffrée par la clé principale de service du serveur d’origine (sauf si ce chiffrement a été explicitement supprimé en utilisant ALTER MASTER KEY DDL) et une copie de cette clé chiffrée par chaque mot de passe spécifié pendant les opérations CREATE MASTER KEY ou ALTER MASTER KEY DDL consécutives. Pour récupérer la clé principale et toutes les données chiffrées à l’aide de la clé principale comme racine de la hiérarchie de clés après le déplacement de la base de données, l’utilisateur doit utiliser l’instruction OPEN MASTER KEY à l’aide de l’un des mots de passe utilisés pour protéger la clé principale, restaurer une sauvegarde de la clé principale ou restaurer une sauvegarde de la clé principale de service d’origine sur le nouveau serveur.

Pour SQL Database et Azure Synapse Analytics, la protection par mot de passe n’est pas considérée comme un mécanisme de sécurité pour empêcher un scénario de perte de données dans les situations où la base de données peut être déplacée d’un serveur à un autre, car la protection de clé principale du service sur la clé principale est gérée par la plateforme Microsoft Azure. Par conséquent, le mot de passe de la clé principale est facultatif dans SQL Database et Azure Synapse Analytics.

Pour SQL Database, la clé principale de base de données peut être créée automatiquement pour protéger les secrets dans les informations d’identification délimitées à la base de données utilisées pour l’audit et d’autres fonctionnalités qui nécessitent des informations d’identification délimitées à une base de données pour s’authentifier auprès d’une ressource externe, comme un compte Stockage Azure. La clé principale est créée avec un mot de passe sélectionné de manière aléatoire forte. Les utilisateurs ne peuvent pas créer la clé principale sur une base de données logique master . Le mot de passe de clé principale est inconnu de Microsoft et n’est pas détectable après la création. Pour cette raison, la création d’une clé principale de base de données avant de créer des informations d’identification délimitées à la base de données est recommandée.

La clés principale du service et les clés principales de base de données sont protégées à l'aide de l'algorithme AES-256.

Autorisations

Requiert l'autorisation CONTROL sur la base de données.

Exemples

Utilisez l’exemple suivant pour créer une clé principale de base de données dans la base de données. La clé est chiffrée à l'aide d’un mot de passe.

CREATE MASTER KEY ENCRYPTION BY PASSWORD = '<strong password>';
GO

Vérifiez la présence de la nouvelle clé, ##MS_DatabaseMasterKey## :

SELECT * FROM sys.symmetric_keys;
GO