WEB开发网
开发学院数据库MSSQL Server SQL Server2005 SQLCLR代码之CLR安全 阅读

SQL Server2005 SQLCLR代码之CLR安全

 2006-08-07 09:14:59 来源:WEB开发网   
核心提示: 下面是一些有关于CAS工作的基本知识,当加载一个程序集以响应一个SQLCLR存储过程、函数或其它代码模块的调用时,SQL Server2005 SQLCLR代码之CLR安全(2),由CLR负责搜集证据,它使用该证据来把该程序集指派给一个或多个代码组,这样以来,一个必然的结论就是:对于保护一

下面是一些有关于CAS工作的基本知识。当加载一个程序集以响应一个SQLCLR存储过程、函数或其它代码模块的调用时,由CLR负责搜集证据。它使用该证据来把该程序集指派给一个或多个代码组。每一个被指派的代码组都有一个通过某种运行时刻安全策略(使用会员条件来决定代码被指派到哪里)指派的权限集。一种权限相应于操作被保护的内容的一种权力。总之,代码要求调用者必须拥有某种许可权才可以执行特定的行为。

如果这些对于你来说都是陌生概念,那么你需要首先对开发安全的应用程序的这些极其重要的部分有个透彻了解为好。而且,对于理解SQLCLR代码在执行时所具有的许可权来说,理解CAS是最关键的。

那么,SQL Server是如何把SQL Server和CLR安全环境融合到一起的呢?要理解的第一事情是,这些系统保护着两个资源集合。第一个集合包含SQL Server对象和数据。SQL Server的安全环境保护对它自己的对象的存取,甚至包括对它所宿主的SQLCLR代码的保护。

CLR保护对于其它一切的存取。这"其它一切"是指什么呢?是指在SQL Server实例外部的资源,包括磁盘文件、注册表设置、其它的数据库、网络资源和Web服务。这意味着,对于保护在它的宿主SQL Server实例内的任何内容来说,CAS什么也没有做。

现在,让我们稍作停顿再作进一步考虑。让我们先搞明白,哪种安全系统保护哪些关键内容。当然,我们也可以用另一种方式来描述同样的事情:在SQL Server内授予的许可权保护它的所有的数据和对象以免为任何类型的执行代码所调用,而不管这些代码是用T-SQL或是用SQLCLR编写。CLR的CAS保护对于SQL Server外部所有资源的存取。

这样以来,一个必然的结论就是:对于保护一个SQL Server实例的对象或数据来说,CAS什么也不没有做。

上一页  1 2 3 4  下一页

Tags:SQL Server SQLCLR

编辑录入:爽爽 [复制链接] [打 印]
赞助商链接