我们正在尝试在 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 也不是一种选择......
有没有人对这类问题有任何经验。欢迎任何意见!