Симптоми
Да предположим, че изпълнявате заявка със инертни материали и съединения (например: COUNT с GROUP BY) върху таблица с филтриран индекс в SQL Server, който се използва като отдалечен сървър, и потребителят няма разрешение за дефиниция на ИЗГЛЕДА. В този случай свързаният сървър счита филтрирания индекс като пълен уникален индекс и заявката връща неправилни резултати.
Допълнителна информация
Когато изпълнявате отдалечена заявка, свързаният сървърен процес използва метаданни за индекса, за да оптимизира заявката. Когато не разполагате с разрешение за дефиниция на ИЗГЛЕДА за базата данни, за която се извършва запитване, метаданните не показват, че индексът е филтриран индекс, и оптимизатора на заявки смята, че индексът е пълен уникален индекс. Тази корекция поправя метаданните за индекса за филтриран индекс, когато не разполагате с разрешение за разглеждане на ДЕФИНИЦИЯта на заявката, ако е необходимо.
Състоянието
Microsoft потвърди, че това е проблем в продуктите на Microsoft, които са посочени в секцията "важи за".
Решение
Този проблем е коригиран в следните сборни актуализации за SQL Server:
ЗабележкаТази корекция трябва да бъде приложена към отдалечения свързан сървър.
За сборните актуализации за SQL Server:
Всяка нова сборна актуализация за SQL Server съдържа всички поправки и всички корекции на защитата, които са били включени в предишната сборна актуализация. Вижте последните сборни актуализации за SQL Server:
Заобиколно решение
За да заобиколите този проблем, изпробвайте някой от следните методи:
-
Премахване на филтрирания индекс.
-
Предоставяне на дефиниция на изгледа на потребителя. Ех: даване на дефиниция на ИЗГЛЕДА на test_user;
Препратки
Научете повече за терминологията , която Microsoft използва, за да опише софтуерни актуализации.