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_address中sys.dm_exec_connections和地址匹配MAC与IP,并找出谁是登录...
找出主机和用户的简单方法是
EXEC sp_who2;
Run Code Online (Sandbox Code Playgroud)
您可以在其中获得一些值得了解的其他信息,例如用户是否处于活动状态等等......它不能解决 gbn 宣布的问题。
| 归档时间: |
|
| 查看次数: |
57548 次 |
| 最近记录: |