Sintomi
Si supponga di eseguire una query con aggregazioni e join, ad esempio COUNT WITH GROUP BY, in una tabella con indice filtrato in SQL Server usata come server remoto e che l'utente non abbia l'autorizzazione VIEW DEFINITION. In questo scenario, il server collegato considera l'indice filtrato come un indice univoco completo e la query restituisce risultati non corretti.
Ulteriori informazioni
Quando si esegue una query remota, il processo del server collegato usa i metadati dell'indice per ottimizzare la query. Se non si dispone dell'autorizzazione VIEW DEFINITION per il database in cui viene eseguita la query, i metadati non indicano che l'indice è un indice filtrato e l'ottimizzatore di query considera l'indice come un indice univoco completo. Questa correzione corregge i metadati dell'indice per un indice filtrato quando non si dispone dell'autorizzazione VIEW DEFINITION a cui è stata concessa l'autorizzazione di tipo VIEW DEFINITION da parte di Query Optimizer.
Stato
Microsoft ha confermato che questo problema si verifica nei prodotti elencati nella sezione "Si applica a".
Risoluzione
Questo problema è stato risolto negli aggiornamenti cumulativi seguenti per SQL Server:
Nota:Questa correzione dovrebbe essere applicata al server collegato remoto.
Informazioni sugli aggiornamenti cumulativi per SQL Server:
Ogni nuovo aggiornamento cumulativo per SQL Server contiene tutti gli aggiornamenti rapidi e tutte le correzioni di sicurezza incluse nell'aggiornamento cumulativo precedente. Vedere gli aggiornamenti cumulativi più recenti per SQL Server:
Soluzione alternativa
Per risolvere il problema, provare uno dei metodi seguenti:
-
Rimuovere l'indice filtrato.
-
Concedere la definizione della visualizzazione all'utente. Ad esempio: GRANT VIEW DEFINITION TO test_user;
Riferimenti
Informazioni sulla terminologia usata da Microsoft per descrivere gli aggiornamenti software.