2015-04-17 65 views
1

如何識別正在執行存儲過程的用戶名稱。SQL Server 2012:動態識別正在執行存儲過程的用戶名稱

例如,我有一個名爲'GetEmployeeDetails'的存儲過程。 對於這個SP,我會授予執行像

GRANT EXECUTE ON GetEmployeeDetails TO User1 
GRANT EXECUTE ON GetEmployeeDetails TO User2 
GRANT EXECUTE ON GetEmployeeDetails TO User3 

N多用戶的訪問如何識別用戶1或用戶2或用戶3是否正在執行的SP?

+0

這可能是重複的,但指出的答案並不完整,因爲它沒有提及ORIGINAL_LOGIN()函數,這是查找連接用戶的登錄名的唯一方法,如果執行了上下文切換。 – dean

回答

0

我認爲您正在尋找SUSER_NAME(),它返回當前連接用戶的登錄識別名稱。

同樣,您也可以使用SUSER_ID(),它返回當前連接的用戶的登錄標識號。