clr enabled 服务器配置选项

适用于: SQL Server(所有受支持的版本)

使用 clr enabled 选项指定 SQL Server 是否可以运行用户程序集。 clr enabled 选项提供下列值:

说明
0 不允许在 SQL Server上执行程序集。
1 允许在 SQL Server上执行程序集。

仅适用于 WOW64:重启 WOW64 服务器以应用这些更改。 其他服务器类型不需要重启。

运行 RECONFIGURE 时,clr enabled 选项的运行值将从 1 更改为 0,所有包含用户程序集的应用程序域将立即被卸载。

重要

轻型池不支持执行公共语言运行时(CLR) 。禁用以下两个选项中的一个:“clr enabled”或“lightweight pooling”。 依赖于 CLR 并且在纤程模式下无法正常工作的功能包括:hierarchy 数据类型、FORMAT 函数、复制和基于策略的管理。 有关详细信息,请参阅轻型池服务器配置选项

警告

CLR 在 .NET Framework 中使用代码访问安全性 (CAS)(不可再作为安全边界)。 使用 PERMISSION_SET = SAFE 创建的 CLR 程序集可以访问外部系统资源、调用非托管代码以及获取 sysadmin 特权。 从 SQL Server 2017 (14.x) 开始,引入了名为 clr strict securitysp_configure 选项,以增强 CLR 程序集的安全性。 默认启用 clr strict security,并将 SAFEEXTERNAL_ACCESS 程序集与标记为 UNSAFE 的程序集同等对待。 可禁用 clr strict security 选项以实现后向兼容性,但不建议这样做。 Microsoft 建议所有程序集都通过证书或非对称密钥进行签名,且该证书或非对称密钥具有已在主数据库中获得 UNSAFE ASSEMBLY 权限的相应登录名。 SQL Server 管理员还可以将程序集添加到数据库引擎应信任的程序集列表。 有关详细信息,请参阅 sys.sp_add_trusted_assembly

注意

尽管 Azure SQL 数据库 中启用了 clr enabled 配置选项,但 Azure SQL 数据库 中不支持开发 CLR 用户函数。

示例

下面的示例首先显示 clr enabled 选项的当前设置,然后通过将选项值设置为 1 来启用该选项。 若要禁用该选项,请将此值设置为 0。

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

后续步骤