科技行者

行者学院 转型私董会 科技行者专题报道 网红大战科技行者

知识库

知识库 安全导航

至顶网软件频道修改SQL Server 2005执行环境

修改SQL Server 2005执行环境

  • 扫一扫
    分享文章到微信

  • 扫一扫
    关注官方公众号
    至顶头条

SQL Server 2005包含了EXECUTE AS语句,通过使用EXECUTE AS语句,您可以为批处理和过程转换执行环境,这样,调用该批处理或过程的用户就可以使用不同的权限来操作了。

作者:builder.com.cn 2007年3月9日

关键字: Tim Chapman 执行环境 SQLServer SQL Server 2005 SQL Server

  • 评论
  • 分享微博
  • 分享邮件

在本页阅读全文(共2页)

执行环境是SQL Server中设定用户权限的认证方式,例如,当您登录到SQL Server的时候,登录账户就被赋予了一定的权限,其中可能包括登录的功能、访问数据库以及在数据库中执行某些操作的功能。

SQL Server 2005包含了EXECUTE AS语句,通过使用EXECUTE AS语句,您可以为批处理和过程转换执行环境,这样,调用该批处理或过程的用户就可以使用不同的权限来操作了。

所有权链

在我正式讲解SQL Server 2005中执行环境的问题之前,先来简单地说说所有权链的工作原理。

当用户执行一个存储过程的时候(假定该用户拥有执行该存储过程的权限),SQL Server将该存储过程的所有者与这个存储过程所涉及到的对象的所有者进行对比,如果他们的所有者相同,那么就不必对这些引用对象的权限进行评估了。

所以,如果用户Tim获得了存储过程usp_ProcedureChain的权限,而usp_ProcedureChain存储过程的所有者是dbo,那么,如果dbo还同时拥有usp_ProcedureChain所调用的其他存储过程,那么Tim在执行这个存储过程的时候就不会出现错误。

执行环境的转换

在SQL Server 2000中,您可以使用SETUSER命令来模拟SQL用户的执行环境,但问题在于,只有系统管理员或者数据库的所有者才能使用这个命令,而且Windows账户也不能使用该命令。

在SQL Server 2005中,EXECUTE AS语句可以替代SETUSER来改变存储过程、触发器、批处理或者函数的执行环境。如果执行环境变成了另外一个用户,那么SQL Server将检查该用户的权限。如果您需要在创建或修改一个存储过程或函数的时候指定EXECUTE AS语句,您需要具备IMPERSONATE的权限,以及创建该对象的权限。

    • 评论
    • 分享微博
    • 分享邮件
    邮件订阅

    如果您非常迫切的想了解IT领域最新产品与技术信息,那么订阅至顶网技术邮件将是您的最佳途径之一。

    重磅专题
    往期文章
    最新文章