切換SQL Server 2005中執行SQL的用戶

切換SQL Server 2005中執行SQL的用戶
 
    很多人都碰到過這樣的問題,使用查詢分析器執行SQL語句時,如果這時想切換用戶該怎麼

辦?SQL SERVER2005給了我們這樣的功能。

  SQL Server 2005包含了EXECUTE AS語句,通過使用EXECUTE AS語句,您可以爲批處理和過

程切換用戶,這樣,調用該批處理或過程的用戶就可以使用不同的權限來操作了。
 

  用戶的切換

  在SQL Server 2000中,您可以使用SETUSER命令來模擬SQL用戶的切換,但問題在於,只有

系統管理員或者數據庫的所有者才能使用這個命令,而且Windows賬戶也不能使用該命令。

  在SQL Server 2005中,EXECUTE AS語句可以替代SETUSER來改變存儲過程、觸發器、批處

理或者函數的執行用戶。如果用戶變成了另外一個用戶,那麼SQL Server將檢查該用戶的權限

。如果您需要在創建或修改一個存儲過程或函數的時候指定EXECUTE AS語句,您需要具備

IMPERSONATE的權限,以及創建該對象的權限。
    如果我們想切換回原來的用戶,只需要使用 REVERT命令即可。

一個具體的例子。
我用windows用戶權限鏈接到SQL Server2005,然後打開查詢分析器

查看這個時候的用戶,使用如下SQL
SELECT SESSION_USER
  GO
------------------------
dbo
  
然後,我切換用戶
execute as user='test4'
go
------------------------
test4

從這裏發現,用戶已經被切換到了test4

然後,我再用Revert切換回原來的用戶
revert
go

SELECT SESSION_USER
  GO
------------------------
dbo
發現用戶再次被切換回來了

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章