在服务器集群场景中启用SQL Server CLR集成是一种好的做法吗?我所在组织的策略不允许在生产服务器上部署CLR程序集;DBA告诉我,这是因为CLR UDF在进程中运行,数据库在集群上。
我只是想知道该策略是为了简化数据库管理(也许可以确保所有代码都开放供DBA审查),还是有技术原因禁止服务器集群场景中的CLR集成?螺纹安全?
相关问题:
- SQL Server 2008中CLR中的线程
- IN SQL Server是CLR线程安全的
- 为什么SQL Server没有预装.net Framework for CLR Integration
(顺便说一句,我的主要用例是字符串操作UDF,如本答案所述)
afaik集群sql server实例和CLR集成之间没有关联。SQL Server充当CLR主机。当使用CLR功能(例如,调用CLR UDF)时,将从数据库加载程序集。被动群集节点没有启动SQL Server服务,为什么要麻烦它呢?一个活动/活动集群将有两个相互独立的SQL Server实例在运行。一个在节点一上处于活动状态,另一个则在节点二上处于活动。
好吧,使用不安全的汇编代码肯定会导致问题,并导致sql server实例宕机(并使其在集群环境中来回故障切换)。DBA不一定知道.net编程,可能希望避免处理此类问题。否则,我看不出这项政策背后有任何经过技术论证的可靠理由。只要小心您想要在SQL Server上运行的代码即可。CLR代码的安全门背后肯定有原因(safe、external_access和unsafe)。
Cheerio
我在这里发表了一篇文章,为什么以及何时应该使用CLR集成[http://www.queryingsql.com/2013/08/net-components-integration-with-sql.html][1]http://www.queryingsql.com/2013/08/net-components-integration-with-sql.html