2015-04-17 34 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(),它返回当前连接的用户的登录标识号。