如何找出用于访问SQL Server的用户名和计算机名

Dav*_*.ca 10 sql t-sql sql-server sql-server-2005

我的工作公司有一个MSSQL服务器2005.我有两个问题,关于找出当前的日志用户以及发送警告消息的任何方式:

第一个问题是,是否有任何T-SQL或SP可用于查找当前登录用户名和机器名.如果用户使用SQL Server sa名称远程访问SQL Server,有没有办法找出该用户的Windows名称(登录到Windows的名称)?

我的下一个问题是,如果我可以获取用户名或ID,是否有任何方法可以发出警告消息,例如"当前SQL服务器正在清理或备份,请不要在此时登录".我想这可能很难.我可能不得不向用户发送电子邮件.

SQL服务器只能在公司中访问.SQL服务器有一个用户列表作为登录用户:Windows用户,SQL用户和sa.

gbn*_*gbn 33

SELECT SUSER_SNAME(), HOST_NAME()
Run Code Online (Sandbox Code Playgroud)

如果连接是"sa"(或任何其他SQL登录),则无法找到域/ windows用户名.SQL Server只知道它是"sa"或SQL登录.

HOST_NAME可能也不可靠,可以在连接字符串("应用程序名称")中设置.或者它可能是模糊的,例如"Microsoft Office"默认为Access,Excel等

你可以通过回溯client_net_addresssys.dm_exec_connections和地址匹配MAC与IP,并找出谁是登录...


Joa*_*man 5

找出主机和用户的简单方法是

EXEC sp_who2;
Run Code Online (Sandbox Code Playgroud)

您可以在其中获得一些值得了解的其他信息,例如用户是否处于活动状态等等......它不能解决 gbn 宣布的问题。