14 sql-server c# sql-clr
我需要在 SQL Server CLR 的触发器 c# 代码中使用第三方 DLL
但是当我尝试添加引用时,它只显示来自 SQL Server 的一些 DLL。
如何将我的第三方 dll添加到 SQL Server?
小智 15
您只能添加对已向 Sql Server 注册的程序集的引用。如果它们未注册,它们将不会出现在“添加引用”对话框中。
注册 DLL 需要执行许多步骤,首先需要重新配置数据库:
ALTER DATABASE [MyDatabase] SET TRUSTWORTHY ON;
sp_configure 'clr enabled', 1;
RECONFIGURE;
Run Code Online (Sandbox Code Playgroud)
完成此操作后,Sql Server 将启用 CLR。接下来,您需要注册您的程序集:
CREATE ASSEMBLY [MyAssembly] AUTHORIZATION [MyUser]
FROM 'C:\CLR\MyAssembly.dll'
WITH PERMISSION_SET = SAFE
Run Code Online (Sandbox Code Playgroud)
如果最后一个脚本正确运行,则程序集现在已注册,并将出现在“添加引用”对话框中。
不过,您需要考虑的是 Sql Server CLR 配置的应用程序安全性:
SAFE,只有在特殊情况下才应使用EXTERNAL_ACCESS或UNSAFE。Assembly.Load()是故意限制的。UNSAFE.context connection = true;)进行的数据库访问在连接用户的上下文中运行,因此您需要确保您知道该库对您的数据具有哪些访问权限。我假设您正在询问从 Visual Studio 安装 SQL CLR 程序集的替代方法。
不需要在 Visual Studio 中拥有代码。
在 MSDN 上部署 CLR 数据库对象详细介绍了选项,包括 SQL 语句和部署脚本。
| 归档时间: |
|
| 查看次数: |
22324 次 |
| 最近记录: |