Я работаю над своей первой сборкой CLR, и, несмотря на множество поисков, проб и ошибок, я установил ее на свой SQL Server. Я иду, чтобы позвонить, и я получаю:
"System.Security.SecurityException: Запрос на разрешение типа 'System.Data.SqlClient.SqlClientPermission ..."
Некоторое исследование позже, и доходит до того, что я должен превратить это в External_Access, но вот кикер, к которому он пытается подключиться и запустить SQL для поиска.
Согласно http://msdn.microsoft.com/en-us/library/ms189566.aspx БЕЗОПАСНОЕ Разрешение:
"SAFE
SAFE - это набор разрешений по умолчанию, и он является наиболее строгим. Код, выполняемый сборкой с разрешениями SAFE, не может получить доступ к внешним системным ресурсам, таким как файлы, сеть, переменные среды или реестр. БЕЗОПАСНЫЙ код может получать доступ к данным из локальных баз данных SQL Server или выполнять вычисления и бизнес-логику, которые не требуют доступа к ресурсам за пределами локальных баз данных.
Большинство сборок выполняют задачи вычислений и управления данными, не имея доступа к ресурсам вне SQL Server. Поэтому в качестве набора разрешений на сборку мы рекомендуем SAFE. "
В нем четко указано, что я должен иметь возможность подключаться к своей локальной базе данных SQL Server и получать доступ к данным. Я предпочитаю хранить это в безопасности, потому что все, что я делаю, - это быстрый поиск нужного набора данных.
Вот как выглядит строка подключения:
Dim sConnectionString As String = "Password=<Password>;Persist Security Info=True;User ID=<User>;Initial Catalog=<Database>;Data Source=<Server>;"
Должно быть что-то простое, я делаю неправильно, поэтому все это, чтобы добраться до Вопроса.
Как получить доступ к локальной базе данных из сборки CLR в контексте безопасного доступа?