为什么SQL Server没有预装.net Framework for CLR Integration?

时间:2009-04-21 08:21:57

标签: .net sql-server sql-server-2005 clr

例如,如果我想引用.net框架中的某些东西以便在我的CLR存储过程中使用,我必须首先将它加载到Sql server数据库中。

为什么不预先安装?是性能相关还是安全问题或其他什么?

感谢。

4 个答案:

答案 0 :(得分:2)

默认情况下它是关闭的,因为它增加了攻击面积,并且在可能的地方不需要。还必须具体启用许多其他SQL Server的东西。

Some fairly basic stuff can be off by default: KB 914277 for "remote access"

继发于此,许多商店都不允许这样做,这让我得到了我的厚颜无耻的回答:“因为开发者可能会使用它”。在关系引擎中使用CLR具有以下优点:自定义数据类型,自定义聚合等,但它会被滥用,因为对于许多人来说,编写c#而不是T-SQL更容易。

答案 1 :(得分:1)

SQL Server 2000附带了所有内容,在微软了解他们的教训之后,在SQL Server 2005及其他所有已启用的内容(如xp_cmdshell,openrowset等)默认关闭以减少攻击面。由于同样的原因,CLR也被关闭了。

答案 2 :(得分:0)

我认为这是出于安全原因,因为默认情况下不安装它会减少任何黑客可用的攻击面。

答案 3 :(得分:0)

可能是因为它是一个可选功能,使用不多。然而。