从SAFE安全性中的程序集访问本地数据库

时间:2011-06-28 15:34:06

标签: sql sql-server-2005 assemblies clr

我正在开发我的第一个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是默认权限集,它是最严格的权限。具有SAFE权限的程序集运行的代码无法访问外部系统资源,如文件,网络,环境变量或注册表。 SAFE代码可以访问本地SQL Server数据库中的数据,也可以执行不涉及访问本地数据库之外的资源的计算和业务逻辑。

大多数程序集执行计算和数据管理任务,而无需访问SQL Server外部的资源。因此,我们建议使用SAFE作为程序集权限集。“

它清楚地表明我应该能够连接到我的本地SQL服务器数据库并访问数据。我宁愿保持这个安全,因为我所做的只是快速查找它需要的数据集。

这是连接字符串的样子:

Dim sConnectionString As String = "Password=<Password>;Persist Security Info=True;User ID=<User>;Initial Catalog=<Database>;Data Source=<Server>;"

它必须是简单的我做错了所以这一切都是为了得到问题。

如何在安全权限上下文中从CLR程序集访问本地数据库?

1 个答案:

答案 0 :(得分:1)

我说得对,这很简单。上面的代码是正确的位置。

'Dim sConnectionString As String =“Context Connection = true”'

这使您可以在安全模式下访问本地数据库。挖掘出一种捣蛋鬼。