确定用户调用的存储过程

时间:2010-03-29 15:38:24

标签: sql-server-2008

我确信这已被问过,但搜索没有回答。

在存储过程中,如何获取调用存储过程(name?)的用户/登录的值,假设我还没有server_user_id

1 个答案:

答案 0 :(得分:1)

in sql 2005

选择suser_name()

http://msdn.microsoft.com/en-us/library/ms187934.aspx

SUSER_NAME([server_user_id]) server_user_id

是用户的登录标识号。 server_user_id是可选的,是int。 server_user_id可以是任何SQL Server登录名或具有连接到SQL Server实例权限的Microsoft Windows用户或组的登录标识号。如果未指定server_user_id,则返回当前用户的登录标识名称。

-

编辑:刚尝试使用Microsoft SQL Server 2008(SP1) - 10.0.2531.0(X64)

具有集成和SQL安全性

以及所有这些:

select suser_name()

select suser_sname()

select original_login()

select system_user

正确返回已登录的用户...我猜您的配置存在问题......

saludos

SAS