【发布时间】:2010-10-04 02:48:11
【问题描述】:
我们正在尝试在 SQL Server 2005 机器上创建 C# CLR 存储过程。 C# 代码通过 OLEDB 驱动程序连接到外部数据源以获取数据表。它已经在单独的控制台应用程序上进行了测试,并且可以正常运行。 (OLEDEB 驱动程序是连接到专有数据库的专有驱动程序......)
在 SQL Server 上,我们为程序集设置了 EXTERNAL 权限级别,它是 StrongNamed 并且已在 SQL Server 中为其创建了一个 ASSYMETRIC KEY。
当我们尝试执行该过程时,我们会遇到以下两个问题:
用于联系 OLEDB 的凭据 是 SQL 服务的那些 运行,而不是凭据 sql 连接中的登录用户
-
一个 .NET 框架被提出:
System.Security.SecurityException: 请求 System.Data.OleDb.OleDbPermission 类型的权限
似乎我们无法为进程授予运行 oledb 驱动程序所需的权限。要么是缺少配置,要么是我们做错了什么。将权限级别设置为 UNSAFE 也不是一种选择...
有没有人遇到过这类问题。 欢迎任何意见!
【问题讨论】:
标签: c# sql-server oledb impersonation sqlclr