华为云云数据库rds开启CLR集成功能_云淘科技

操作背景

公共语言运行库(CLR)是Microsoft .NET Framework 的核心,为所有.NET Framework代码提供执行环境。在CLR中运行的代码称为托管代码。CLR提供执行程序所需的各种函数和服务,包括实时(JIT)编译、分配和管理内存、强制类型安全性、异常处理、线程管理和安全性。

SQL CLR(SQL Common Language Runtime)是自SQL Server 2005才出现的新功能,它将.NET Framework中的CLR服务注入到SQL Server中,让SQL Server的部分数据库对象可以使用.NET Framework的编程语言开发(当前只支持VB.NET和C#),包括预存程序、用户自定义函数、触发程序、用户自定义类型以及用户自定义汇总函数等功能。但是要想执行CLR代码,首先要开启CLR特性。

更多介绍请参见Microsoft SQL Server官网公共语言运行时 (CLR) 集成编程概念。

CLR集成安全性相关内容请参见Microsoft SQL Server官网CLR 集成安全性。

前提条件

RDS for SQL Server仅支持创建安全模式的程序集。

启用CLR操作步骤

登录管理控制台。
单击管理控制台左上角的,选择区域和项目。
单击页面左上角的,选择“数据库 > 云数据库 RDS”,进入RDS信息页面。
在“实例管理”页面,选择指定的实例,单击实例名称,进入实例的基本信息页面。
在左侧导航栏中选择“参数修改”,在“参数”页签搜索框中输入“clr enabled”和“clr strict security”进行搜索。

“clr enabled”选项。可以使用“clr enabled”选项指定RDS for SQL Server是否可以运行用户程序集。
“clr strict security”为RDS for SQL Server 2017特有参数。该选项控制 SQL Server中SAFE、EXTERNAL ACCESS、UNSAFE 权限的解释。当值为1时,导致数据库引擎忽略程序集上的 PERMISSION_SET 信息,并始终将其解释为 UNSAFE。有关详细信息,请参阅Microsoft SQL Server官网CLR严格安全性。

设置“clr enabled”参数值。

将参数值设置为“1”,单击“保存”,在弹出框中单击“是”保存本次修改,开启CLR功能。

“clr enabled”参数值为“1”,表示开启CLR功能;参数值为“0”,表示关闭CLR功能。只需要设置“clr enabled”参数值,开启CLR功能。
“clr strict security”参数值默认为“1”,无需设置。

修改完成后可以在“参数修改历史”页签下查看“clr enabled” 参数已经修改成功。

创建安全模式CLR程序集

设计程序集时应考虑的下列因素:

打包程序集
管理程序集安全性
对程序集的限制

使用数据库实例创建安全模式CLR程序集可参见官方文档设计程序集。

示例:RDS for SQL Server添加c#CLR程序集的使用方法

RDS for SQL Server提供程序集,可以更加便捷的操作数据库数据。

当您将数据库实例恢复到新实例或已有实例,“clr enabled”参数默认不开启,需要重新开启,才可以正常使用CLR集成功能。

操作步骤

创建c#函数,编译出一个RDS for SQL Server的dll。

图1 c#函数代码

创建函数详细说明请参见官方文档。

使用SSMS等工具连接数据库。

图2 连接数据库

选择需要创建程序集的数据库,添加对应的程序集。

只能创建safe模式(权限集显示为安全),不能创建其他模式。
dll文件会以十六进制的形式存入。如图4所示。

图3 新建程序集

图4 dll文件

执行程序,如图5所示表示执行成功。程序集中新增一个TESTS程序集,如图6所示。

图5 执行结果

图6 TESTS程序集

父主题: RDS for SQL Server用户指南

同意关联代理商云淘科技,购买华为云产品更优惠(QQ 78315851)

内容没看懂? 不太想学习?想快速解决? 有偿解决: 联系专家