欢迎来到飞鸟慕鱼博客,开始您的技术之旅!
当前位置: 首页知识笔记正文

最后 代码块负责通过调用OriginalContext的Undo方法还原到originalcontext 如果在函数结束前不输入

墨初 知识笔记 88阅读

行恢复,那么SQL Server将引发一个异常。

对于模拟也存在一些限制。当该模拟起作用时,你就无法再使用SQL Server实例存取数据或对象。在你再次存取本地数据之前,你必须恢复模拟。这也意味着,进程内数据存取总是发生在会话的当前安全上下文中。

有趣的是,一个异步执行的UNSAFE程序集(也就是说,它能够创建线程并且异步地运行代码)永远不会允许进程内数据存取。其实,这并不是一个安全问题而显然是一个可靠性的问题。

三、 可信赖的数据库

在SAFE程序集和其它权限设置级别之间的另外一个区别是在SQL Server 2005测试期添加的。现在,你必须满足两个要求之一来创建EXTERNAL_ACCESS或UNSAFE程序集:

· 数据库所有者(dbo)必须拥有EXTERNAL ACCESS ASSEMBLY权限并且数据库必须拥有TRUSTWORTHY属性集。

或者:

· 程序集的使用方式必须是,通过一个具有EXTERNAL ACCESS ASSEMBLY权限的登录而且要使用一个证书或一个非对称密钥。

EXTERNAL ACCESS ASSEMBLY权限是另一种新的粒度许可权-允许一名负责人创建这类程序集。默认情况下,系统管理员拥有它并且能够把它赋给其它登录。但是这样做时要慎重,这当然因为可能潜在地允许危险代码安装到服务器中。

一个数据库的TRUSTWORTHY属性要求设置管理员权限并且是在数据库中安装非SAFE程序集的前提。基于EXTERNAL ACCESS ASSEMBLY权限,一个DBA能够控制是否存在潜在危险性的程序集能够被安装到任何数据库中,以及谁能够把它们放到那里。这很有希望会使DBA安心而 不必再担心他们的服务器会感染.NET代码!

标签:
声明:无特别说明,转载请标明本文来源!