Доступ к локальной базе данных из сборки в SAFE Security - PullRequest
0 голосов
/ 28 июня 2011

Я работаю над своей первой сборкой 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 в контексте безопасного доступа?

1 Ответ

1 голос
/ 29 июня 2011

Я был прав, это было что-то простое.Часть кода выше была правильной.

'Dim sConnectionString As String = "Context Connection = true"'

Это позволяет вам получить доступ к вашей локальной базе данных в безопасном режиме.Что-то вроде подслушивающего устройства.

...