Simptome
Să presupunem că ați rulat o interogare cu agregate și asocieri (de exemplu: COUNT cu GROUP BY) într-un tabel cu index filtrat în SQL Server care este utilizat ca server la distanță, iar utilizatorul nu are permisiunea de DEFINIȚIe a VIZUALIZĂRIi. În acest scenariu, serverul legat consideră indexul filtrat ca un index unic complet, iar interogarea returnează rezultate incorecte.
Mai multe informații
Atunci când rulați o interogare la distanță, procesul de server legat utilizează metadate de index pentru a optimiza interogarea. Atunci când nu aveți permisiunea de DEFINIȚIe a VIZUALIZĂRIi pentru baza de date interogată, metadatele nu indică faptul că indexul este un index filtrat, iar Optimizatorul de interogare consideră că indexul este un index unic complet. Această remediere corectează metadatele index pentru un index filtrat atunci când nu aveți permisiunea de DEFINIȚIe a VIZUALIZĂRIi pentru examinare de către Optimizatorul de interogare.
Stare
Microsoft a confirmat că aceasta este o problemă în produsele Microsoft enumerate în secțiunea „Se aplică la”.
Rezolvare
Această problemă este remediată în următoarele actualizări cumulative pentru SQL Server:
NotăAceastă remediere trebuie aplicată la serverul legat la distanță.
Despre actualizările cumulative pentru SQL Server:
Fiecare nouă actualizare cumulativă pentru SQL Server conține toate remedierile rapide și toate remedierile de securitate care au fost incluse în actualizarea cumulativă anterioară. Consultați cele mai recente actualizări cumulative pentru SQL Server:
Soluție de evitare
Pentru a rezolva această problemă, încercați una dintre următoarele metode:
-
Eliminați indexul filtrat.
-
Grant View definition pentru utilizator. Ex: GRANT VIEW DEFINITion TO test_user;
Referințe
Aflați despre terminologia pe care o utilizează Microsoft pentru a descrie actualizările de software.