Sintomas
Considere o seguinte cenário:
-
Você tem uma função CLR SQL em SQL Server 2016 e 2017.
-
A função CLR invoca instruções Transact-SQL por meio de chamadas de representação, como chamando a instrução EXECUTE AS.
Nesse cenário, a execução falha e você recebe a seguinte mensagem de erro:
Msg 6522, Nível 16, Estado 1, Procedimento PrcedureName, Linha 0 [Linha de Início em LoteNumber]
Ocorreu um erro .NET Framework durante a execução da rotina definida pelo usuário ou do agregado "ProcedureName":
System.Data.SqlClient.SqlException: a entidade de servidor "LoginName" não pode acessar o banco de dados "DatabaseName" no contexto de segurança atual.
Resolução
Essa correção está incluída na Atualização Cumulativa 1 para SQL Server 2017.
Informações do service pack para SQL Server 2016
Esse problema é corrigido no seguinte service pack para SQL Server:
Cerca de SQL Server builds de 2017
Cada novo build para SQL Server 2017 contém todos os hotfixes e correções de segurança que estavam no build anterior. Recomendamos instalar o build mais recente para SQL Server 2017.
Os pacotes de serviço são cumulativos. Cada novo service pack contém todas as correções que estão em pacotes de serviço anteriores, juntamente com quaisquer novas correções. Nossa recomendação é aplicar o pacote de serviços mais recente e a atualização cumulativa mais recente para esse service pack. Você não precisa instalar um service pack anterior antes de instalar o pacote de serviços mais recente. Use a Tabela 1 no artigo a seguir para encontrar mais informações sobre o pacote de serviços mais recente e a atualização cumulativa mais recente.
Como determinar o nível de versão, edição e atualização de SQL Server e seus componentes
Status
A Microsoft confirmou que este é um problema nos produtos Microsoft listados na seção "Aplicável a".
Referências
Saiba mais sobre a terminologia que a Microsoft usa para descrever atualizações de software.