加入收藏 | 设为首页 | 会员中心 | 我要投稿 李大同 (https://www.lidatong.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 站长学院 > MsSql教程 > 正文

.net – 在Sqlserver中CLR集成可能存在哪些问题

发布时间:2020-12-12 14:18:28 所属栏目:MsSql教程 来源:网络整理
导读:我读了一篇关于在sqlserver中使用CLR集成的文章,并想知道一些潜在的问题可能是什么,如果有的话.我的想法是用它来验证遗留数据库中的潜在坏数据.一个例子是电话号码栏中的人名. 编辑: 我认为没有任何问题,但这并不是我看到很多讨论的事情,并且想要确保我没有
我读了一篇关于在sqlserver中使用CLR集成的文章,并想知道一些潜在的问题可能是什么,如果有的话.我的想法是用它来验证遗留数据库中的潜在坏数据.一个例子是电话号码栏中的人名.

编辑:
我认为没有任何问题,但这并不是我看到很多讨论的事情,并且想要确保我没有打开一个可以在以后引起问题的蠕虫.
我问的原因是我的DBA看着我,就像我问起这个时我疯了似的.

解决方法

SQL Server本身的CLR集成并不稳定.作为证据,我将向您指出,在SQL Server 2008中,一堆系统数据类型被实现为CLR数据类型,如新的 geography and geometry类型.因此,CLR被认为足够安全,允许新的核心功能基于它.

话虽这么说,CLR为SQL编程带来了一个全新的武器库,可以让自己陷入困境.你可以启动线程,阻止IPC通信(事件,互斥,信号量),外部连接,等待I / O,内存中的读/写,调用各种Win32 APIS,并且通常会鲁莽行事并造成严重破坏.旧的T-SQL编程需要更大的黑客才能才能实现同样的目标.

您是否正在考虑实现一种新的数据类型,该数据类型暴露出良好的,受约束的行为,例如,字段的正则表达式验证?前进.您是否正在考虑从SQL托管CLR内部发出Web服务请求?你有它的到来,你将得到所有你得到的!

经验法则是,如果您的程序集将加载并验证没有可信赖的要求(没有EXTERNAL_ACCESS,没有UNSAFE),那么您应该没问题.当然,您仍然可以在SAFE程序集中编写while(1){;}循环,但是T-SQL存储过程也可以…

(编辑:李大同)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读