Существует три различных параметра allow_set, которые ограничивают возможности сборки
SAFE
- ограничивает сборку управляемым кодом
EXTERNAL_ACCESS
- разрешает доступ к файлам, сетевым ресурсам и т. Д.
UNSAFE
- неограниченный доступ, включая выполнение неуправляемого кода
MSDN документы дают следующее руководство
Указание UNSAFE дает коду в сборке полную свободу для выполнения операций в пространстве процессов SQL Server, которые потенциально могут поставить под угрозу надежность SQL Server. UNSAFE-сборки также могут потенциально подорвать систему безопасности SQL Server или общеязыковой среды выполнения. UNSAFE-разрешения должны предоставляться только для сборок с высоким уровнем доверия.
Если ваша сборка использует только функции .NET 3.5, я не понимаю, зачем ей нужен UNSAFE
доступ.
Возможно, вы используете один из типов или членов, запрещенных в библиотеке System.Core. У Microsoft есть список этих. Запрещенные типы и члены в System.Core.dll
Здесь есть дополнительная информация. Атрибуты защиты хоста и программирование интеграции CLR