Partager via


Activation de l'accès aux bases de données croisées dans SQL Server (ADO.NET)

Le chaînage des propriétés des bases de données croisées se produit lorsqu'une procédure dans une base de données repose sur des objets appartenant à une autre base de données. La chaîne des propriétés des bases de données croisées fonctionne de la même manière que le chaînage des propriétés dans une seule base de données, sauf qu'une chaîne de propriétés continue nécessite le mappage de tous les propriétaires d'objets au même compte de connexion. Si l'objet source de la base de données source et les objets cibles des bases de données cibles appartiennent au même compte de connexion, SQL Server ne vérifie pas les autorisations sur les objets cibles.

Désactivé par défaut

À partir de SQL 2000 SP3, le chaînage des propriétés des bases de données est désactivé par défaut. Microsoft vous recommande de désactiver le chaînage des propriétés des bases de données croisées, car il vous expose aux risques de sécurité suivants :

  • Les propriétaires et les membres de base de données des rôles de base de données db_ddladmin ou db_owners peuvent créer des objets appartenant à d'autres utilisateurs. Ces objets peuvent potentiellement viser des objets dans d'autres bases de données. Cela signifie que si vous activez le chaînage des propriétés des bases de données croisées, vous devez faire totalement confiance aux utilisateurs dans toutes les bases de données.

  • Les utilisateurs avec l'autorisation CREATE DATABASE peuvent créer de nouvelles bases de données et attacher les bases de données existantes. Si le chaînage des propriétés des bases de données croisées est activé, ces utilisateurs peuvent accéder à des objets dans d'autres bases de données pour lesquels ils n'ont pas de privilèges à partir des bases de données qu'ils ont récemment créées ou attachées.

Activation du chaînage des propriétés des bases de données croisées

L'activation du chaînage des propriétés des bases de données croisées doit être réservée aux environnements dans lesquels vous pouvez faire totalement confiance aux utilisateurs disposant de privilèges élevés. Vous pouvez configurer l'activation au cours de l'installation pour l'ensemble des bases de données, ou de manière sélective pour des bases de données spécifiques à l'aide des commandes Transact-SQL sp_configure et sp_dboption.

Introduite dans SQL Server 2000 SP3 sous la forme d'une amélioration de la sécurité, l'option Cross DB Ownership Chaining vous permet de configurer le chaînage des propriétés des bases de données croisées. Pour configurer de manière sélective le chaînage des propriétés des bases de données croisées dans SQL Server 2005 et versions ultérieures, utilisez sp_configure afin de désactiver cette option pour le serveur. Puis, utilisez la commande ALTER DATABASE avec SET DB_CHAINING ON afin de configurer le chaînage des propriétés des bases de données croisées uniquement pour les bases de données qui le nécessitent.

Code SQL dynamique

Le chaînage des propriétés des bases de données croisées ne fonctionne pas dans les cas où des instructions SQL créées dynamiquement sont exécutées sauf si le même utilisateur existe dans les deux bases de données. Il est possible de contourner cette restriction dans SQL Server 2005 en créant une procédure stockée qui accède aux données dans une autre base de données et en signant la procédure avec un certificat qui existe dans les deux bases de données. De cette manière, les utilisateurs ont accès aux ressources de base de données utilisées par la procédure sans que l'accès ou les autorisations de base de données leur soient octroyés.

Ressources externes

Pour plus d'informations, voir les ressources suivantes.

Ressource

Description

Extension de l'emprunt d'identité de base de données à l'aide de la commande EXECUTE AS et Cross DB Ownership Chaining Option dans la documentation en ligne de SQL Server 2008

Les rubriques décrivent comment configurer le chaînage des propriétés des bases de données croisées pour une instance de Microsoft SQL Server 2008.

Extension de l'emprunt d'identité de base de données à l'aide de la commande EXECUTE AS et Cross DB Ownership Chaining Option dans la documentation en ligne de SQL Server 2005

Les rubriques décrivent comment configurer le chaînage des propriétés des bases de données croisées pour une instance de Microsoft SQL Server 2005.

Cross DB Ownership Chaining dans la documentation en ligne de SQL Server 2000

Décrit comment configurer le chaînage des propriétés des bases de données croisées à l'aide des options introduites dans SQL Server 2000 SP3.

Voir aussi

Concepts

Gestion des autorisations à l'aide des procédures stockées dans SQL Server (ADO.NET)

Écriture de code SQL dynamique sécurisé dans SQL Server (ADO.NET)

Signature de procédures stockées dans SQL Server (ADO.NET)

Autres ressources

Sécurisation des applications ADO.NET

Vue d'ensemble de la sécurité SQL Server (ADO.NET)