我的工作公司有一个MSSQL服务器2005.我有两个问题,关于找出当前的日志用户以及发送警告消息的任何方式:
第一个问题是,是否有任何T-SQL或SP可用于查找当前登录用户名和机器名.如果用户使用SQL Server sa名称远程访问SQL Server,有没有办法找出该用户的Windows名称(登录到Windows的名称)?
我的下一个问题是,如果我可以获取用户名或ID,是否有任何方法可以发出警告消息,例如"当前SQL服务器正在清理或备份,请不要在此时登录".我想这可能很难.我可能不得不向用户发送电子邮件.
SQL服务器只能在公司中访问.SQL服务器有一个用户列表作为登录用户:Windows用户,SQL用户和sa.
SELECT SUSER_SNAME(), HOST_NAME()
如果连接是"sa"(或任何其他SQL登录),则无法找到域/ windows用户名.SQL Server只知道它是"sa"或SQL登录.
HOST_NAME可能也不可靠,可以在连接字符串("应用程序名称")中设置.或者它可能是模糊的,例如"Microsoft Office"默认为Access,Excel等
你可以通过回溯client_net_address
中sys.dm_exec_connections
和地址匹配MAC与IP,并找出谁是登录...