Sintomas
Assuma que execute uma consulta com agregados e juntas (por exemplo: COUNT WITH GROUP BY) numa tabela com índice filtrado no SQL Server que é usado como um servidor remoto, e o utilizador não tem a permissão DE DEFINIÇÃO DE VER. Neste cenário, o servidor ligado considera o índice filtrado como um índice único completo, e a consulta devolve resultados incorretos.
Mais informações
Quando executam uma consulta remota, o processo do servidor ligado utiliza metadados de índice para otimizar a consulta. Quando não tem permissão VIEW DEFINITION para a base de dados que está a ser consultada, os metadados não indicam que o índice é um índice filtrado, e o otimizador de consulta considera o índice um índice único completo. Esta correção corrige os metadados de índice para um índice filtrado quando não tem permissão DE DEFINIÇÃO DE VER para consideração pelo Otimizador de Consulta.
Estado
A Microsoft confirmou que este problema ocorre nos produtos da Microsoft listados na secção "Aplica-se a".
Resolução
Esta emissão é corrigida nas seguintes atualizações cumulativas para o SQL Server:
Nota:Esta correção deve ser aplicada ao servidor ligado à distância.
Sobre as atualizações cumulativas para o 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 com a atualização cumulativa anterior. Confira as últimas atualizações cumulativas do SQL Server:
Solução
Para contornar esta questão, experimente qualquer um dos seguintes métodos:
-
Retire o índice filtrado.
-
Conceder a definição de visualização ao utilizador. Ex: GRANT VIEW DEFINIÇÃO PARA test_user;
Referências
Conheça a terminologia que a Microsoft utiliza para descrever atualizações de software.