sp_control_dbmasterkey_password (Transact-SQL)

Permet d'ajouter et de supprimer des informations d'identification contenant le mot de passe requis pour ouvrir la clé principale d'une base de données.

Icône Lien de rubriqueConventions de la syntaxe de Transact-SQL

Syntaxe

sp_control_dbmasterkey_password @db_name = 'database_name' 
        , @password = 'master_key_password' 
        , @action = { 'add' | 'drop' }

Arguments

  • @db_name=N'database_name'
    Spécifie le nom de la base de données associée à ces informations d'identification. Il ne peut s'agir d'une base de données système. database_name est de type nvarchar.
  • @password= N'password'
    Spécifie le mot de passe de la clé principale. password est de type nvarchar.
  • @action=N'add'
    Indique que des informations d'identification seront ajoutées dans la banque d'informations d'identification pour la base de données spécifiée. Les informations d'identification contiennent le mot de passe de la clé principale de base de données. La valeur passée à @action est de type nvarchar.
  • @action= N'drop'
    Indique que des informations d'identification seront supprimées de la banque d'informations d'identification pour la base de données spécifiée. La valeur passée à @action est de type nvarchar.

Notes

Lorsque SQL Server requiert la clé principale d'une base de données pour chiffrer ou déchiffrer une clé, SQL Server tente de déchiffrer la clé principale de base de données à l'aide de la clé principale de service de l'instance. Si le déchiffrement échoue, SQL Server recherche dans la banque d'informations d'identification les informations d'identification de clé principale qui possèdent le même GUID de famille que la base de données pour laquelle la clé principale est requise. SQL Server tente alors de déchiffrer la clé principale de base de données avec toutes les informations d'identification correspondantes, jusqu'à ce que le déchiffrement réussisse ou qu'il ne reste plus d'informations d'identification.

ms182754.Caution(fr-fr,SQL.90).gifAttention :
Ne créez pas d'informations d'identification de clé principale pour une base de données qui doit être inaccessible à sa et à d'autres entités de sécurité de serveur dotées de privilèges de haut niveau. Vous pouvez configurer une base de données afin que sa hiérarchie de clés ne puisse pas être déchiffrée par la clé principale du service. Cette option est prise en charge dans le cadre d'une défense en profondeur de bases de données qui contiennent des données chiffrées qui ne doivent pas être accessibles à sa ni à d'autres entités de sécurité de serveur dotées de privilèges de haut niveau. La création d'informations d'identification de clé principale pour une telle base de données supprime cette défense en profondeur en permettant à sa et à d'autres entités de sécurité de serveur dotées de privilèges de haut niveau de déchiffrer la base de données.

Les informations d'identification créées à l'aide de sp_control_dbmasterkey_password sont consultables dans l'affichage catalogue sys.master_key_passwords. Les noms des informations d'identification créées pour les clés principales des bases de données ont le format suivant : ##DBMKEY_<database_family_guid>_<random_password_guid>##. Le mot de passe est stocké en tant que secret des informations d'identification. À chaque mot de passe ajouté dans la banque d'informations d'identification correspond une ligne dans sys.credentials.

Vous ne pouvez pas utiliser sp_control_dbmasterkey_password pour créer des informations d'identification pour les bases de données système suivantes : master, model, msdb et tempdb.

sp_control_dbmasterkey_password ne vérifie pas que le mot de passe permet d'ouvrir la clé principale de la base de données spécifiée.

Si vous spécifiez un mot de passe déjà stocké dans des informations d'identification pour la base de données spécifiée, sp_control_dbmasterkey_password échoue.

ms182754.note(fr-fr,SQL.90).gifRemarque :
Deux bases de données issues d'instances de serveur différentes peuvent partager le même GUID de famille. Dans ce cas de figure, les bases de données partagent les mêmes enregistrements de clé principale dans la banque d'informations d'identification.

Les paramètres passés à sp_control_dbmasterkey_password n'apparaissent pas dans les traces.

Autorisations

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

Exemples

A. Création d'informations d'identification pour la clé principale d'AdventureWorks

Dans l'exemple ci-dessous, des informations d'identification sont créées pour la clé principale de la base de données AdventureWorks et le mot de passe de la clé principale est enregistré en tant que secret dans les informations d'identification. Comme le type de données de tous les paramètres passés à sp_control_dbmasterkey_password doit être nvarchar, les chaînes de texte sont converties à l'aide de l'opérateur de cast N.

EXEC sp_control_dbmasterkey_password @db_name = N'AdventureWorks', 
    @password = N'sdfjlkj#mM00sdfdsf98093258jJlfdk4', @action = N'add';
GO

B. Suppression d'informations d'identification pour la clé principale d'une base de données

Dans l'exemple ci-dessous, les informations d'identification créées dans l'exemple A sont supprimées. Notez que tous les paramètres sont requis, y compris le mot de passe.

EXEC sp_control_dbmasterkey_password @db_name = N'AdventureWorks', 
    @password = N'sdfjlkj#mM00sdfdsf98093258jJlfdk4', @action = N'drop';
GO

Voir aussi

Référence

Procédures stockées liées à la sécurité (Transact-SQL)
Procédures stockées système (Transact-SQL)
sys.credentials (Transact-SQL)

Autres ressources

Configuration d'une base de données miroir chiffrée
Informations d'identification

Aide et Informations

Assistance sur SQL Server 2005