以下的文章主要描述的是正确修改SQL Server 2005执行环境的实际操作步骤,假如你在实际操作中遇到修改SQL Server 2005执行环境的情况,但你却不知道对其如何正确的解决,那么以下的文章对你而言一定是良师益友。
执行环境是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的权限,以及创建该对象的权限。
上述的相关内容就是对修改SQL Server 2005执行环境的描述,希望会给你带来一些帮助在此方面。
【编辑推荐】
- 三种SQL Server查找数据方法的比较
- 用SQL Server索引密度对行数进行评估
- SQL Server评价索引之有效性
- SQL Server视图索引与索引视图指南
- SQL Server选择索引之查询VS 的性能修改