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 security
的 sp_configure
选项,以增强 CLR 程序集的安全性。 默认启用 clr strict security
,并将 SAFE
和 EXTERNAL_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;
后续步骤
反馈
https://aka.ms/ContentUserFeedback。
即将发布:在整个 2024 年,我们将逐步淘汰作为内容反馈机制的“GitHub 问题”,并将其取代为新的反馈系统。 有关详细信息,请参阅:提交和查看相关反馈