Sécurité de l'intégration du CLR

Le modèle de sécurité de l'intégration SQL Server avec le Common Language Runtime (CLR) .NET Framework gère et sécurise l'accès entre types différents d'objets CLR et non-CLR qui s'exécutent dans SQL Server. Ces objets peuvent être appelés par une instruction Transact-SQL ou un autre objet CLR qui s'exécute dans le serveur. Les appels entre objets portent le nom de liens. Les types de vérifications de sécurité effectués sur ces objets dépendent des types de liens impliqués.

Le modèle de sécurité d'intégration du CLR a les objectifs suivants :

  • Par défaut, l'exécution de code utilisateur managé sur SQL Server ne doit pas compromettre l'intégrité et la stabilité de SQL Server. L'exécution d'opérations susceptibles de compromettre la robustesse de SQL Server doit être protégée par des autorisations de haut niveau appropriées.

  • Le code utilisateur managé ne doit pas accéder de façon non autorisée aux données utilisateur ou autre code utilisateur dans la base de données. Le code défini par l'utilisateur doit s'exécuter sous le contexte de sécurité de la session utilisateur qui l'a appelé et avec les privilèges corrects pour ce contexte de sécurité.

  • Il doit y avoir des contrôles pour restreindre le code utilisateur à accéder à toute ressource située à l'extérieur du serveur, de sorte qu'il soit utilisé strictement pour l'accès aux données et le calcul locaux.

  • Le code défini par l'utilisateur ne doit pas être en mesure d'accéder de façon non autorisée aux ressources système du fait de son exécution dans le processus SQL Server.

SQL Server intègre maintenant le modèle de sécurité basé sur utilisateur de SQL Server avec le modèle de sécurité basé sur l'accès du code du CLR. Quelques-uns des avantages offerts par cette approche combinée de la sécurité sont discutés dans cette section.

Le tableau suivant décrit les rubriques de cette section.