云服务器网:购买云服务器和VPS必上的网站!

堆叠切换用户:MSSQL中的一把利刃

数据库访问时,切换用户是一个必不可少的操作。MS SQL Server提供了一个名为堆叠切换的功能,可以有效的帮助我们切换用户,节省大量的实现和时间。
在介绍MSSQL堆叠切换用户时,最好先解释一下甚么是堆叠跟踪。堆叠跟踪是指MS SQL Server中标记

数据库访问时,切换用户是一个必不可少的操作。MS SQL Server提供了一个名为堆叠切换的功能,可以有效的帮助我们切换用户,节省大量的实现和时间。

在介绍MSSQL堆叠切换用户时,最好先解释一下甚么是堆叠跟踪。堆叠跟踪是指MS SQL Server中标记一个事务及其子节点会不会有一个要求线程完成。MS SQL Server支持多样化的要求线程,例如上下文、线程之间的SID和登录名,和连接标识符(connectionID)等。

MS SQL Server的堆叠切换用户是在堆叠跟踪的基础上实现的,它主要是在事务上下文中记录一组用户,将这些用户堆叠起来,然后在同一trigger或存储进程中出现相同的用户名或SID时会自动跳到另外一个用户去L。

例如,假定当前连接有两个用户A和B,当前正在使用用户A,然后我们在trigger中又使用了用户B,此时MS SQL Server就会堆叠切换到用户B去.

Syntax:

EXECUTE AS USER = ‘user_name’ or EXECUTE AS LOGIN = ‘login_name’;

具体实现代码以下:

USE tempdb

GO

— Create a procedure

IF OBJECT_ID(‘usp_TestExecutionAs’) IS NOT NULL

DROP PROCEDURE usp_TestExecutionAs

CREATE PROCEDURE usp_TestExecutionAs AS

BEGIN

DECLARE @UserName as VARCHAR(20)

SELECT @UserName = SYSTEM_USER

SELECT @UserName as ‘Before ExecutionAs’

EXECUTE AS LOGIN=’sa’;

SELECT SYSTEM_USER as ‘After ExecutionAs’

REVERT;

SELECT @UserName as ‘After Revert’

END

GO

— Execute the procedure

EXECUTE tempdb.dbo.usp_TestExecutionAs;

就是这样,使用MS SQL Server的指令便可实现堆叠切换用户的功能。它可以节省大量的实现时间,让我们的工作更加方便。另外,MS SQL Server还有其他多种切换用户的方式,例如使用Windows登录,或使用系统角色。只要选择适合的方式,就能够更好地支持数据库访问和管理工作。

本文来源:https://www.yuntue.com/post/111361.html | 云服务器网,转载请注明出处!

关于作者: yuntue

云服务器(www.yuntue.com)是一家专门做阿里云服务器代金券、腾讯云服务器优惠券的网站,这里你可以找到阿里云服务器腾讯云服务器等国内主流云服务器优惠价格,以及海外云服务器、vps主机等优惠信息,我们会为你提供性价比最高的云服务器和域名、数据库、CDN、免费邮箱等企业常用互联网资源。

为您推荐

发表回复

您的电子邮箱地址不会被公开。 必填项已用*标注