l’option TRUSTWORTHY permet de spécifier un niveau de “confiance” d’une instance vis à vis d’une base de données.

Ce nouveau concept a été introduit avec SQL SERVER 2005.

Il est implicitement induit par de nouvelles fonctionnalités apportées par SQL SERVER 2005, notamment l’intégration de la SQL CLR.

Supposons que vous attachiez une base de données contenant une proc. stock. CLR :

Lors d’un attachement de la base de données contenant l’assembly SQL CLR en mode EXTERNAL_ACCESS ou UNSAFE, SQL SERVER permet l’attachement, mais n’autorisera pas l’exécution de la procédure stockée SQL CLR.

Pour activer cette procédure stockée CLR, en admettant que vous lui fassiez “confiance”, il vous faudra exécuter le script suivant :

   1: ALTER DATABASE <database> SET TRUSTWORTHY ON

   2: go

   3: sp_configure 'clr enabled', 1

   4: go

   5: reconfigure

Vous faites “Confiance” et vous “activez” la CLR.

Cette option est aussi utilisé lors de l’emprunt d’identité (délégation) et l’utilisation via ce token de ressources externes (Execute AS)

Ainsi, si vous utilisez des ressources externes via un contexte de sécurité de votre utilisateur connecté, vous devez donc faire confiance à votre bdd et activez l’option TRUSTWORTHY.

Un exemple via un schéma MSDN (Prolongement de l’emprunt d’identité) :