在SQL SERVER 2005上启用CLR是否存在任何安全问题?

Sli*_*345 6 sql sql-server asp.net security

我正在使用在我的SQL服务器上启用CLR的想法 EXEC sp_configure 'clr enabled', 1

但是,我正在与其他几个开发人员和他们的项目共享我的数据库服务器.我隐约听到他们可能是启用此问题的安全问题.

有谁知道这些问题可能是什么?CLR在SQL Server上使用是否安全?

Bry*_*wan 3

不,SQLCLR 代码在数据库中不能比在相同安全上下文下运行的等效 T-SQL 代码模块执行更多操作。

\n\n

这是并且目前是所有 SQL Server(尤其是 2012 年之后)中最容易被误解的安全声明,它可能会破坏与SCCM 数据库、旗舰 ETL 部署模型 SSISDB(需要 CLR)的 UI 连接,因为继承 CIS 基准的第三方安全工具(主要是 DBProtect),即使服务器没有运行 2000,它也会通过 2000 错误地标记 SQL Server 排序系数,错误地指示 DBA 重建主数据库,并且如果没有人对这一发现发表意见,就会永远损害他们的环境和应用程序(区分大小写)。CLR 不是安全风险,它允许通过 RDP 和文件系统权限缓解以及 SSIS 代码管理(例如 SSISDB)在多个方面对安全性进行旗舰增强(SQL Server 2012 之后),这可能会影响每 90% 的 SQL Server 商店,包括不依赖单一 SAN 的 HA 解决方案。

\n\n

关于那些只是反对 CLR 的 DBA 的旁注,因为它“如果做得不好,则很难排除故障”——对高级 .NET 开发人员代码进行故障排除主要不属于 DBA 的职权范围,如果您雇用了糟糕的 DBA,他们也可能会很困难进行故障排除(请参阅上面的整理)。此外,大多数利用 CLR 的人都是为了旗舰功能而这样做,与编写 CLR 代码几乎没有关系(尽管SSIS 中的脚本任务利用了这一点)在一定程度上利用了这一点),而与 SSISDB 和使用可用性有更多关系跨 SAN 的组。不喜欢此功能的 DBA 应该跳入时间扭曲并进入 2008 年的停滞模式。本文是从全栈 BI/DBA 的角度编写的,而不是从有点短视的系统内部优势角度编写的。

\n\n

此外,可用性组利用 CLR,如果未启用 CLR ,则会导致错误。更多信息还经过审核Technet上经过审查

\n\n

可用性组和 SSISDB 都是现代 SQL Server 环境的旗舰功能。

\n\n

目前,通过启用 CLR 并通过 SSISDB 部署 SSIS 包,您可以减轻文件系统组织管理不善和混乱的情况,获得继承的备份维护计划甚至 TDE,并且实际上大大降低了 RDP 对 SSIS 包进行故障排除的需要。

\n\n

询问您的 DBA,他是否非常关心安全性,为什么要设置混合模式身份验证、SSMS 或 SSRS 或 Excel 客户端没有 SSL 证书、未启用 TDE、缺乏审核甚至不记录成功和失败的登录。

\n\n

http://www.codemag.com/article/0603031

\n\n

要启用 CLR,只需运行

\n\n
sp_configure \'show advanced options\', 1;\nGO\nRECONFIGURE;\nGO\nsp_configure \'clr enabled\', 1;\nGO\nRECONFIGURE;\nGO\n
Run Code Online (Sandbox Code Playgroud)\n