Symptômes
Supposons que vous exécutez une requête avec des agrégats et des jointeurs (par exemple : COUNT WITH GROUP BY) sur une table avec un index filtré dans SQL Server utilisé comme serveur distant et dont l’utilisateur n’a pas l’autorisation VIEW DEFINITION. Dans ce scénario, le serveur lié considère l’index filtré comme un index unique complet et la requête renvoie des résultats incorrects.
Informations supplémentaires
Lorsque vous exécutez une requête à distance, le processus du serveur lié utilise des métadonnées d’index pour optimiser la requête. Si vous n’avez pas l’autorisation AFFICHER LA DÉFINITION pour la base de données interrogée, les métadonnées n’indiquent pas que l’index est un index filtré, et l’optimiseur de requête considère l’index comme un index unique complet. Ce correctif corrige les métadonnées d’index pour un index filtré lorsque vous ne pouvez pas être pris en considération par l’optimiseur de requête si vous n’avez pas l’autorisation AFFICHER LA DÉFINITION.
Statut
Microsoft a confirmé l’existence de ce problème dans les produits Microsoft répertoriés dans la section « S’applique à ».
Résolution
Ce problème a été résolu dans les mises à jour cumulatives suivantes pour SQL Server :
Remarque :Ce correctif doit être appliqué au serveur lié distant.
À propos des mises à jour cumulatives SQL Server :
Chaque nouvelle mise à jour cumulative SQL Server contient tous les correctifs et tous les correctifs de sécurité inclus dans la mise à jour cumulative précédente. Consultez les dernières mises à jour cumulatives pour SQL Server :
Solution de contournement
Pour contourner ce problème, essayez l’une des méthodes suivantes :
-
Supprimez l’index filtré.
-
Accorder la définition d’affichage à l’utilisateur. Ex : ACCORDER LA DÉFINITION D’AFFICHAGE À test_user;
Références
En savoir plus à propos de la terminologie utilisée par Microsoft pour décrire les mises à jour logicielles.