Sintomas
Considere o seguinte cenário:
-
Tem uma função CLR do SQL no SQL Server 2016 e 2017.
-
A função CLR invoca instruções Transact-SQL através de chamadas de representação, como ao chamar a instrução EXECUTE AS.
Neste cenário, a execução falha e recebe a seguinte mensagem de erro:
Msg 6522, Nível 16, Estado 1, Procedimento PrcedureName, Linha 0 [Batch Start LineNumber]
Ocorreu um erro .NET Framework durante a execução da rotina definida pelo utilizador ou agregado "ProcedureName":
System.Data.SqlClient.SqlException: o principal de servidor "LoginName" não consegue aceder à base de dados "DatabaseName" no contexto de segurança atual.
Resolução
Esta correção está incluída na Atualização Cumulativa 1 para SQL Server 2017.
Informações do service pack para SQL Server 2016
Este problema foi corrigido no service pack seguinte para SQL Server:
About SQL Server 2017 builds (Acerca das SQL Server de 2017)
Cada nova compilação para SQL Server 2017 contém todas as correções e correções de segurança que estavam na compilação anterior. Recomendamos que instale a compilação mais recente do SQL Server 2017.
Os service packs são cumulativos. Cada novo service pack contém todas as correções que estão em service packs anteriores, juntamente com quaisquer correções novas. A nossa recomendação é aplicar o service pack mais recente e a atualização cumulativa mais recente para esse service pack. Não tem de instalar um service pack anterior antes de instalar o service pack mais recente. Utilize a Tabela 1 no artigo seguinte para encontrar mais informações sobre o service pack mais recente e a atualização cumulativa mais recente.
Estado
A Microsoft confirmou que este problema ocorre nos produtos da Microsoft listados na secção "Aplica-se a".
Referências
Saiba mais sobre a terminologia que a Microsoft utiliza para descrever as atualizações de software.