мы пытаемся создать хранимую процедуру C# CLR на машине SQL Server 2005. Код C# подключается к внешнему источнику данных через драйвер OLEDB для получения таблицы данных. Он был протестирован в отдельном консольном приложении и работает без проблем. (Драйвер OLEDEB — это проприетарный драйвер, подключающийся к проприетарной БД...)
На SQL Server мы установили для сборки уровень разрешений EXTERNAL, это StrongNamed, и для него в SQL Server был создан ASSYMETRIC KEY.
Когда мы пытаемся выполнить процедуру, мы получаем следующие две проблемы:
Учетные данные, используемые для связи с OLEDB, - это те, под которыми работает служба SQL, а не учетные данные зарегистрированного пользователя в контексте sql.
поднимается .NET Framework:
System.Security.SecurityException: Запрос разрешения типа System.Data.OleDb.OleDbPermission
Похоже, у нас не получается дать процессу необходимые права, чтобы он запускал драйвер oledb. Либо так, либо нашей конфигурации не хватает, либо мы просто что-то делаем не так. Установка уровня разрешений на UNSAFE также невозможна...
Есть ли у кого-нибудь опыт решения подобных проблем. Любой вклад будет приветствоваться!