我的工作公司有一个 MSSQL server 2005。我有两个关于查找当前日志用户以及发送警告消息的方法的问题:
第一个问题是是否有任何T-SQL或SP可用于找出当前登录用户名和机器名。如果用户使用SQL Server sa名称远程访问SQL Server,有什么办法可以找到该用户的Windows名称(登录Windows的名称)?
我的下一个问题是,如果我可以获取用户名或id,有什么办法可以发出警告消息,例如“当前SQL服务器正在清理或备份,请此时不要登录”。我想可能会很难。我可能需要向用户发送一封电子邮件。
SQL服务器只能在公司内部访问。 SQL Server 有一个作为登录用户的用户列表:windows 用户、SQL 用户和 sa。
最佳答案
SELECT SUSER_SNAME(), HOST_NAME()
如果连接是“sa”(或任何其他 SQL 登录名),则您无法找到域/Windows 用户名。 SQL Server 只知道它是“sa”或 SQL 登录名。
HOST_NAME 也可能不可靠,它可以在连接字符串(“应用程序名称”)中设置。或者它可能很模糊,例如“Microsoft Office”默认用于 Access、Excel 等
您可以通过sys.dm_exec_connections
中的client_net_address
进行回溯并将 MAC 地址与 IP 进行匹配并找出谁登录了...
关于sql - 如何找到访问SQL Server的用户名和机器名,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/641515/