新聞中心
數(shù)據(jù)庫訪問時(shí),切換用戶是一個(gè)必不可少的操作。ms SQL server提供了一個(gè)名為堆疊切換的功能,可以有效的幫助我們切換用戶,節(jié)省大量的實(shí)現(xiàn)和時(shí)間。

創(chuàng)新互聯(lián)專注為客戶提供全方位的互聯(lián)網(wǎng)綜合服務(wù),包含不限于成都做網(wǎng)站、網(wǎng)站制作、播州網(wǎng)絡(luò)推廣、微信小程序、播州網(wǎng)絡(luò)營銷、播州企業(yè)策劃、播州品牌公關(guān)、搜索引擎seo、人物專訪、企業(yè)宣傳片、企業(yè)代運(yùn)營等,從售前售中售后,我們都將竭誠為您服務(wù),您的肯定,是我們最大的嘉獎(jiǎng);創(chuàng)新互聯(lián)為所有大學(xué)生創(chuàng)業(yè)者提供播州建站搭建服務(wù),24小時(shí)服務(wù)熱線:18980820575,官方網(wǎng)址:www.cdcxhl.com
在介紹mssql堆疊切換用戶時(shí),最好先解釋一下什么是堆疊跟蹤。堆疊跟蹤是指MS SQL Server中標(biāo)記一個(gè)事務(wù)及其子節(jié)點(diǎn)是否有一個(gè)請求線程完成。MS SQL Server支持多樣化的請求線程,例如上下文、線程之間的SID和登錄名,以及連接標(biāo)識符(connectionID)等。
MS SQL Server的堆疊切換用戶是在堆疊跟蹤的基礎(chǔ)上實(shí)現(xiàn)的,它主要是在事務(wù)上下文中記錄一組用戶,將這些用戶堆疊起來,然后在同一trigger或存儲過程中出現(xiàn)相同的用戶名或SID時(shí)會自動(dòng)跳到另一個(gè)用戶去L。
例如,假設(shè)當(dāng)前連接有兩個(gè)用戶A和B,當(dāng)前正在使用用戶A,然后我們在trigger中又使用了用戶B,此時(shí)MS SQL Server就會堆疊切換到用戶B去.
Syntax:
EXECUTE AS USER = ‘user_name’ or EXECUTE AS LOGIN = ‘login_name’;
具體實(shí)現(xiàn)代碼如下:
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的指令即可實(shí)現(xiàn)堆疊切換用戶的功能。它可以節(jié)省大量的實(shí)現(xiàn)時(shí)間,讓我們的工作更加方便。此外,MS SQL Server還有其他多種切換用戶的方式,例如使用Windows登錄,或者使用系統(tǒng)角色。只要選擇合適的方式,就可以更好地支持?jǐn)?shù)據(jù)庫訪問和管理工作。
創(chuàng)新互聯(lián)(cdcxhl.com)提供穩(wěn)定的云服務(wù)器,香港云服務(wù)器,BGP云服務(wù)器,雙線云服務(wù)器,高防云服務(wù)器,成都云服務(wù)器,服務(wù)器托管。精選鉅惠,歡迎咨詢:028-86922220。
分享標(biāo)題:堆疊切換用戶:MSSQL中的一把利刃(mssql堆疊切換用戶)
本文鏈接:http://m.fisionsoft.com.cn/article/cccooej.html


咨詢
建站咨詢
