Проблема с использованием драйвера OLEDB в процедуре CLR SQL Server - PullRequest
0 голосов
/ 29 января 2009

мы пытаемся создать хранимую процедуру C # CLR на компьютере с SQL Server 2005. Код C # подключается к внешнему источнику данных через драйвер OLEDB для получения данных. Он был протестирован в отдельном консольном приложении и работает без проблем. (Драйвер OLEDEB - это проприетарный драйвер, подключающийся к проприетарной БД ...)

В SQL Server мы установили ВНЕШНИЙ уровень разрешений для сборки, это StrongNamed и для него был создан АССИМЕТРИЧЕСКИЙ КЛЮЧ в SQL Server.

Когда мы пытаемся выполнить процедуру, мы получаем две следующие проблемы:

  • Учетные данные, используемые для связи с OLEDB являются те, которые службы SQL являются работает под, а не учетные данные зарегистрированный пользователь в контексте sql

  • .NET Framework повышен:

    System.Security.SecurityException: запрос разрешения типа System.Data.OleDb.OleDbPermission

Кажется, что мы не можем предоставить необходимые права процессу для запуска драйвера oledb. Либо это, либо наша конфигурация отсутствует, либо мы просто делаем что-то не так. Установка уровня разрешения UNSAFE также не вариант ...

Есть ли у кого-нибудь опыт решения подобных проблем? Любой вклад будет приветствоваться!

1 Ответ

1 голос
/ 29 января 2009

Относительно вашего первого выпуска (олицетворение):

http://blogs.msdn.com/sqlprogrammability/archive/2006/06/16/635004.aspx

http://www.codeproject.com/KB/database/SQLCLRIntegrationSecurity.aspx

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...