首页 > 解决方案 > 如何在 SQL Server 2017 中创建 CLR 用户定义函数

问题描述

我有一个 SQL Server 数据库项目(sqlproj 文件),其中我引用了一个程序集,其中包含每个https://docs.microsoft.com/en-us/sql/relational-databases/clr-integration-的用户定义聚合函数数据库对象-用户定义函数/clr-用户定义函数?view=sql-server-2017

在执行此操作之前,我无法部署或使用我的功能:

EXEC sp_configure 'show advanced options', 1;
RECONFIGURE;

EXEC sp_configure 'clr strict security', 0;
RECONFIGURE;

...并且:

EXEC sp_configure 'clr enabled' , '1';  
RECONFIGURE;    

在此过程中,我尝试对程序集进行签名(在 pfx 中生成自签名证书),但无法弄清楚如何让 SQL Server 信任该证书。

据我所知,我所做的对于本地开发部署是可以接受的,但这不是部署到实时环境(或推送到 Azure 数据库服务)的正确方法。

我已经看到建议部署到旧版本的 SQL Server 以提取程序集的哈希以在建立信任的命令中使用;这对我没有用,因为我只有 SQL Server 2017,并且无意安装类似 2008 的东西来提取哈希。

我必须执行哪些步骤才能成功地使用我的数据库部署我的自定义程序集并“以正确的方式”建立信任,以及这些步骤中的每一个究竟完成了什么?我的部分问题是对每个必需步骤的需求、目的、副作用和“意义”缺乏明确性。

标签: sql-serveruser-defined-aggregate

解决方案


推荐阅读