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

剖析SQL Server2005 SQLCLR代码安全性

 2006-08-07 09:14:56 来源:WEB开发网   
核心提示: 二、 安全宿主SQLCLR代码随着SQLCLR代码的引入,SQL Server 2005现在支持两种完全不同的运行时刻环境:好的旧的可靠的T-SQL和新的正在发展中的SQLCLR,剖析SQL Server2005 SQLCLR代码安全性(3),在过去的几年中,T-SQL随着SQL Serv

二、 安全宿主SQLCLR代码

随着SQLCLR代码的引入,SQL Server 2005现在支持两种完全不同的运行时刻环境:好的旧的可靠的T-SQL和新的正在发展中的SQLCLR。在过去的几年中,T-SQL随着SQL Server版本的不断升级而不断发展,并且与存储在一个数据库中的数据和对象紧密集成到一起,也与SQL Server中的安全系统良好地集成。相比之下,SQLCLR代码,在内部使用了一种由CLR所提供的完全不同的安全系统,这是一种"温暖的"、安全的环境。在此环境下,代码的运行不是基于运行它的用户的安全资格而是基于代码本身的安全资格。同时,SQLCLR代码必须在数据库和服务器的安全范围内执行;然而,这两种安全系统是根本不同的。如今,微软的SQL Sever开发小组已经研究出一种方法使得这二者共存并能够协同工作。

能够在另外一个应用程序中可靠地安全地宿主CLR是.NET框架2.0的一种新特征。这种宿主环境及其SQL Server实现,正是使得这两种安全系统和平共处的"秘密"所在,因为宿主(在此是SQL Server)能够很大程度地控制运行的代码。这意味着,从一种安全角度来看,托管SQLCLR代码不被允许存取没有授权给它的数据库对象。该代码必须运行于用户会话的SQL Server安全上下文中,而且需要使用相关的与T-SQL代码相同的许可权来激活它。

注意 底线是,在一个数据库中,SQLCLR代码不能做比在相同的安全上下文中等价的T-SQL代码模块更多的事情。

当设计怎样宿主CLR时,微软具有三个主要的设计目标:

· CLR及运行于其中的代码不能妥协于SQL Server的安全性和稳定性。

· SQLCLR代码必须遵循SQL Server认证和授权规则。这在一定程度上意味着,它要运行于用户会话的安全上下文中。

上一页  1 2 3 4 5  下一页

Tags:剖析 SQL Server

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