0

我们正在尝试在 SQL Server 2005 机器上创建 C# CLR 存储过程。C# 代码通过 OLEDB 驱动程序连接到外部数据源以获取数据表。它已经在单独的控制台应用程序上进行了测试,并且可以正常运行。(OLEDEB 驱动程序是连接到专有数据库的专有驱动程序......)

在 SQL Server 上,我们已经为程序集设置了 EXTERNAL 权限级别,它是 StrongNamed 并且已经在 SQL Server 中为其创建了一个 ASSYMETRIC KEY。

当我们尝试执行该过程时,我们会遇到以下两个问题:

  • 用于联系 OLEDB 的凭据是运行 SQL 服务的凭据,而不是 sql contect 中已登录用户的凭据

  • 提出了一个 .NET 框架:

    System.Security.SecurityException:请求 System.Data.OleDb.OleDbPermission 类型的权限

似乎我们无法为进程授予运行 oledb 驱动程序所需的权限。要么是缺少配置,要么是我们做错了什么。将权限级别设置为 UNSAFE 也不是一种选择......

有没有人对这类问题有任何经验。欢迎任何意见!

4

1 回答 1

1

关于您的第一个问题(模仿):

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

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

于 2009-01-28T21:30:46.223 回答