一尘不染

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

sql

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

第一个问题是是否有可用的T-SQL或SP来查找当前的登录用户名和计算机名。如果用户使用SQL Server的名称远程访问SQL
Server,是否有任何方法可以找出该用户的Windows名称(登录Windows的名称)?

我的下一个问题是,如果可以获取用户名或ID,是否可以通过任何方式发出警告消息,例如“当前SQL
Server正在清理或备份,请不要在此时登录”。我想这可能很困难。我可能必须向用户发送电子邮件。

SQL服务器只能在公司中访问。SQL Server具有作为登录用户的用户列表:Windows用户,SQL用户和sa。


阅读 177

收藏
2021-03-17

共1个答案

一尘不染

SELECT SUSER_SNAME(), HOST_NAME()

如果连接为“ sa”(或任何其他SQL登录名),则找不到域/ Windows用户名。SQL Server仅知道它是“ sa”或该SQL登录名。

HOST_NAME也不可靠,可以在连接字符串(“应用程序名称”)中设置。或者它可能含糊不清,例如默认情况下用于Access,Excel等的“Microsoft Office”

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

2021-03-17