SQL数据库中使用REVERT切换存储过程执行上下文_SQL SERVER数据库_黑客防线网安服务器维护基地--Powered by WWW.RONGSEN.COM.CN

SQL数据库中使用REVERT切换存储过程执行上下文[组图]

作者:黑客防线网安SQL维护基地 来源:黑客防线网安SQL维护基地 浏览次数:0

本篇关键词:过程执行组图存储
黑客防线网安网讯:  问题   以前,我们学习过在SQL Server 2005中用EXECUTE AS命令来授予权限的方法,你已经看到如何用EXECUTE AS从句来授予粒度权限。在一个可编程的对象比如存储过程或函数内切换上下文...

  问题

  以前我们学习过在SQL Server 2005中用EXECUTE AS命令来授予权限的方法你已经看到如何用EXECUTE AS从句来授予粒度权限在一个可编程的对象比如存储过程或函数内切换上下文是很重要的,尤其是如果访问存储过程的用户没有足够的权限去运行一个代码块时但为了把它更加粒度化,只有在需要的时候和返回到调用方的原来的执行上下文情况下,我们才允许切换执行上下文。我们要怎么实现这一点?

  专家解答

  SQL Server 2005中的EXECUTE AS从句让我们拥有控制代码模块执行的安全上下文的选择权。扩展这一概念,我们用REVERT从句把执行上下文切换回执行上一个EXECUTE AS语句的调用方。这让我们能够允许用户在需要的时候扮演高权限的账户并且在有限的权限下返回到原来的执行上下文中。例如,在数据库中基于一些业务逻辑做出一些改动的存储过程。在运行代码块来改变数据之前,你需要创建一个数据库备份,这个数据库备份可以在任何需要的时候回滚这些变化。因为我们不想给将要执行存储过程的用户更多的权限,所以我们将使用EXECUTE AS从句去扮演一个具有更多权限的账户,让这个账户来做数据库备份,也使用REVERT从句切换回调用方的原来的执行上下文。让我们来看看一个示例脚本演示这两个从句如何进行。

  首先,我们登录到SQL Server.其中,有一个是具有很小权限的普通用户,另一个是系统管理员角色中的一个成员。

  
  USEmaster

  GO

  --AddWindowsloginstoSQLServer

  IFNOTEXISTS(SELECT*FROMsys.sysloginsWHEREname='SQLSRV90SQLUser1')

  CREATELOGIN[SQLSRV90SQLUser1]

  FROMWINDOWS

  WITHDEFAULT_DATABASE=AdventureWorks

  IFNOTEXISTS(SELECT*FROMsys.sysloginsWHEREname='SQLSRV90SQLDBA')

  CREATELOGIN[SQLSRV90SQLDBA]

  FROMWINDOWS

  WITHDEFAULT_DATABASE=AdventureWorks

    黑客防线网安服务器维护方案本篇连接:http://www.rongsen.com.cn/show-9624-1.html
网站维护教程更新时间:2012-03-21 02:23:21  【打印此页】  【关闭
我要申请本站N点 | 黑客防线官网 |  
专业服务器维护及网站维护手工安全搭建环境,网站安全加固服务。黑客防线网安服务器维护基地招商进行中!QQ:29769479

footer  footer  footer  footer