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

SQL Server2005 SQLCLR代码之CLR安全

 2006-08-07 09:14:59 来源:WEB开发网   
核心提示: 图4.该图显示了.NET框架2.0配置工具的策略级别,在此,SQL Server2005 SQLCLR代码之CLR安全(4),一个用户或系统管理员能够修改显示的级别的默认策略,这样以来,因为企业、机器和用户策略级别都授予完全信任权限,他们具有相同的结果权限集-所有的许可权,一个程序集在其加

图4.该图显示了.NET框架2.0配置工具的策略级别。

在此,一个用户或系统管理员能够修改显示的级别的默认策略,这样以来,一个程序集在其加载时就拥有更多或更少的许可权。这可能是个比较复杂的主题,但是对于SQLCLR代码来说,事实上,所有的安装在本地机器上的.NET代码,这三种策略级别默认地都把"完全信任"指派给一个程序集。"完全信任"仅仅意味着,代码自动地拥有每一种可能的权限。更精确地说,它意味着,CLR并不进行任何权限检查。

如果程序集默认地拥有检查"短路"的许可权,那么为什么我建议你读取所有关于CAS的内容呢?

图5.这里是SQLCLR代码中的实际的CAS权限集。

理由是,CLR共使用四种策略级来指派许可权,但是只有其中三种能够使用如图4所示的工具来进行配置。第四种是AppDomain级别,该级别是当你把一个程序集安装到一个数据库时创建的。该策略级别由SQL Server控制作为CLR宿主。而且,SQL Server极少会授予一个程序集完全许可权信任,因为这对于安全性和可靠性都可能意味着极度的冒险。

图5显示出默认情况下在SQLCLR代码所发生的实际情况(记住,一个用户或系统管理员都能够修改企业、机器和用户级上的策略设置,此时,情况与图3所示相同)。因为企业、机器和用户策略级别都授予完全信任权限,他们具有相同的结果权限集-所有的许可权。该权限集与AppDomain权限集相交的结果就是程序集许可权集。

上一页  1 2 3 4 

Tags:SQL Server SQLCLR

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