Remarque
L’accès à cette page nécessite une autorisation. Vous pouvez essayer de vous connecter ou de modifier des répertoires.
L’accès à cette page nécessite une autorisation. Vous pouvez essayer de modifier des répertoires.
Applies to:SQL Server
Le code managé est compilé, puis déployé dans des unités appelées assembly CLR (Common Language Runtime). Un assembly est empaqueté en tant que fichier DLL ou exécutable (.exe). Alors qu'un fichier exécutable peut s'exécuter seul, une DLL doit être hébergée dans une application existante. Les assemblys DLL managés peuvent être chargés et hébergés par SQL Server. SQL Server vous oblige à inscrire l’assembly dans une base de données à l’aide de l’instruction CREATE ASSEMBLY, avant de pouvoir être chargé dans le processus et utilisé. Les assemblys peuvent également être mis à jour à partir d’une version plus récente à l’aide de l’instruction ALTER ASSEMBLY, ou supprimées de SQL Server à l’aide de l’instruction DROP ASSEMBLY.
Les informations d’assembly sont stockées dans la table sys.assembly_files dans la base de données où l’assembly est installé. Le tableau sys.assembly_files contient les colonnes suivantes.
| Column | Description |
|---|---|
assembly_id |
Identificateur défini pour l'assembly. Ce numéro est affecté à tous les objets se rapportant au même assembly. |
name |
Nom de l'objet. |
file_id |
Nombre identifiant chaque objet, avec le premier objet associé à un assembly_id donné étant donné la valeur 1. Si plusieurs objets sont associés à la même assembly_id, chaque valeur de file_id suivante est incrémentée de 1. |
content |
Représentation hexadécimale de l'assembly ou du fichier. |
Dans cette section
| Article | Description |
|---|---|
| Créer un d’assembly | Décrit la création de SAFE, de EXTERNAL_ACCESSet d’assemblys CLR UNSAFE dans SQL Server |
| Modifier un d’assembly | Décrit la mise à jour des assemblys CLR dans SQL Server |
| Supprimer un d’assembly | Décrit la suppression d’assemblys CLR à partir de SQL Server |
La sécurité d’accès du code n’est plus prise en charge
CLR utilise la sécurité d’accès du code (CAS) dans le .NET Framework, qui n’est plus pris en charge comme limite de sécurité. Un assembly CLR créé avec PERMISSION_SET = SAFE pourrait être en mesure d’accéder à des ressources système externes, d’appeler du code non managé et d’acquérir des privilèges sysadmin. Dans SQL Server 2017 (14.x) et versions ultérieures, l’option sp_configure, clr strict security, améliore la sécurité des assemblys CLR.
clr strict security est activée par défaut et traite les assemblys SAFE et EXTERNAL_ACCESS comme s’ils étaient marqués UNSAFE. L’option clr strict security peut être désactivée pour assurer une compatibilité descendante, mais cela n’est pas recommandé.
Nous vous recommandons de signer tous les assemblys par un certificat ou une clé asymétrique, avec une connexion correspondante à laquelle a été accordée l’autorisation UNSAFE ASSEMBLY dans la base de données master. Les administrateurs SQL Server peuvent également ajouter des assemblys à une liste d’assemblys, que le moteur de base de données doit approuver. For more information, see sys.sp_add_trusted_assembly.
Related content
- de sécurité d’intégration CLR
- Sécurité de l’accès au code d’intégration CLR