Symptômes
Prenons le scénario suivant :
- Vous disposez d’une fonction CLR SQL dans SQL Server 2016 et 2017.
- La fonction CLR appelle des instructions Transact-SQL par le biais d’appels d’emprunt d’identité, par exemple en appelant l’instruction EXECUTE AS.
Dans ce scénario, l’exécution échoue et vous recevez le message d’erreur suivant :
Remarque
- Msg 6522, Level 16, State 1, Procedure PrcedureName, Line 0 [Batch Start Line LineNumber]
- Une erreur .NET Framework s’est produite lors de l’exécution d’une routine définie par l’utilisateur ou d’un agrégat « ProcedureName » :
- System.Data.SqlClient.SqlException : le serveur principal « LoginName » n’est pas en mesure d’accéder à la base de données « DatabaseName » dans le contexte de sécurité actuel.
Résolution
Ce correctif est inclus dans la mise à jour cumulative 1 pour SQL Server 2017.
Informations sur les Service Packs pour SQL Server 2016
Ce problème est résolu dans le Service Pack suivant pour SQL Server :
Service Pack 2 pour SQL Server 2016
À propos des builds de SQL Server 2017
Chaque nouvelle version de SQL Server 2017 contient tous les correctifs logiciels et correctifs de sécurité qui se trouvaient dans la version précédente. Nous vous recommandons d’installer la dernière version pour SQL Server 2017.
À propos des Service Packs pour SQL Server :
Les Service Packs sont cumulatifs. Chaque nouvelle version contient tous les correctifs fournis dans les Service Packs précédents et tous les nouveaux correctifs. Il est recommandé d’appliquer le dernier Service Pack et la dernière mise à jour cumulative pour ce Service Pack. Il n'est donc pas nécessaire d'installer la version antérieure d'un Service Pack avant d'installer la dernière version disponible. Consultez le tableau 1 de l’article suivant pour trouver plus d’informations sur le dernier Service Pack et la dernière mise à jour cumulative.
État
Microsoft a confirmé qu’il s’agissait d’un problème dans les produits Microsoft répertoriés dans la section « S’applique à ».
Références
En savoir plus à propos de la terminologie utilisée par Microsoft pour décrire les mises à jour logicielles.