Sintomas
Suponha que você execute uma consulta com agregações e junções (por exemplo: CONTAR COM AGRUPAR POR) em uma tabela com índice filtrado no SQL Server usado como um servidor remoto, e o usuário não tem a permissão DEFINIÇÃO DE EXIBIÇÃO. Nesse cenário, o servidor vinculado considera o índice filtrado como um índice exclusivo completo e a consulta retorna resultados incorretos.
Mais informações
Quando você executar uma consulta remota, o processo do servidor vinculado usa metadados de índice para otimizar a consulta. Quando você não tem permissão VIEW DEFINITION para o banco de dados que está sendo consultado, os metadados não indicam que o índice é um índice filtrado e o otimizador de consulta considera o índice como um índice exclusivo completo. Esta correção corrige os metadados de índice de um índice filtrado quando você não tem permissão VIEW DEFINITION para consideração pelo Otimizador de Consulta.
Status
A Microsoft confirmou que este é um problema nos produtos Microsoft listados na seção "Aplicável a".
Resolução
Esse problema foi corrigido nas seguintes atualizações cumulativas do SQL Server:
Observação: Essa correção deve ser aplicada ao servidor vinculado remoto.
Sobre atualizações cumulativas do SQL Server:
Cada nova atualização cumulativa do SQL Server contém todos os hotfixes e todas as correções de segurança que foram incluídas na atualização cumulativa anterior. Confira as atualizações cumulativas mais recentes do SQL Server:
Solução alternativa
Para resolver esse problema, tente um dos seguintes métodos:
-
Remover o índice filtrado.
-
Conceder definição de exibição ao usuário. Por ex: CONCEDER DEFINIÇÃO DE EXIBIÇÃO PARA TEST_USER;
Referências
Saiba mais sobre a terminologia que a Microsoft usa para descrever atualizações de software.