Symptom
Anta att du kör en fråga med mängder och kopplingar (till exempel: COUNT WITH GROUP BY) i en tabell med filtrerat index i SQL Server som används som fjärrserver, och användaren har inte behörigheten VIEW DEFINITION. I det här scenariot betraktar den länkade servern det filtrerade indexet som ett fullständigt unikt index och frågan returnerar felaktiga resultat.
Mer information
När du kör en fjärrfråga använder den länkade serverprocessen indexmetadata för att optimera frågan. När du inte har behörigheten VISA DEFINITION för databasen som efterfrågas indikerar inte metadata att indexet är ett filtrerat index och frågeoptimeraren anser att indexet är ett fullständigt unikt index. Den här korrigeringen korrigerar indexmetadata för ett filtrerat index när du inte har behörigheten VISA DEFINITION för att övervägas av frågeoptimeraren.
Status
Microsoft har bekräftat att detta är ett problem i de Microsoft-produkter som anges i avsnittet "Gäller".
Lösning
Det här problemet åtgärdas i följande kumulativa uppdateringar för SQL Server:
- Kumulativ uppdatering 9 för SQL Server 2019
- Kumulativ uppdatering 22 för SQL Server 2017
- Kumulativ uppdatering 15 för SQL Server 2016 SP2
Notera: Den här korrigeringen ska tillämpas på den fjärrlänkade servern.
Om kumulativa uppdateringar för SQL Server:
Varje ny kumulativ uppdatering för SQL Server innehåller alla snabbkorrigeringar och alla säkerhetskorrigeringar som ingick i den tidigare kumulativa uppdateringen. Kolla in de senaste kumulativa uppdateringarna för SQL Server:
- Senaste kumulativa uppdateringen för SQL Server 2019
- Senaste kumulativa uppdateringen för SQL Server 2017
- Senaste kumulativa uppdateringen för SQL Server 2016
Lösning
Prova någon av följande metoder för att kringgå problemet:
- Ta bort det filtrerade indexet.
- Bevilja användaren en vydefinition. Exempel: BEVILJA VYDEFINITION TILL test_user;
Referenser
Läs om den terminologi som Microsoft använder för att beskriva programuppdateringar.