USE msdb;
GO
CREATE TABLE dbo.ThatLoginLog
(
EventDate datetime2 NOT NULL DEFAULT sysdatetime(),
HostName sysname,
IPAddress varchar(15)
);
现在,登录触发器:
USE master;
GO
CREATE TRIGGER LogTheLogin
ON ALL SERVER
WITH EXECUTE AS 'sa'
FOR LOGON
AS
IF ORIGINAL_LOGIN() = N'that login name'
BEGIN
INSERT msdb.dbo.ThatLoginLog(HostName, IPAddress)
SELECT HOST_NAME(), client_net_address
FROM sys.dm_exec_connections
WHERE session_id = @@SPID;
END
GO
然后,定期或一旦您认为在您的业务周期中给了足够的时间让每个人都至少登录一次:
SELECT HostName, IPAddress, COUNT(*), MAX(EventDate)
FROM msdb.dbo.ThatLoginLog
GROUP BY HostName, IPAddress;
如果您知道哪个工作站属于哪个人,您可以创建一个登录触发器来记录一段时间内特定共享用户的所有实例,并且您可以查看该表以查看哪些工作站正在登录。我会将日志记录表放在一个稳定的地方,例如
msdb
实用程序数据库(如果有的话)。现在,登录触发器:
然后,定期或一旦您认为在您的业务周期中给了足够的时间让每个人都至少登录一次: