SQL2008如何记录访问ip的第一次时间和最后一次时间?
发布网友
发布时间:2022-05-29 18:59
我来回答
共2个回答
热心网友
时间:2023-08-23 19:19
可以写一个触发器实现. 下面是例子, 不过存储的不是 ip, 是机器名。
USE test;
GO
-- 用于记录 用户 Login / Logou 的日志的表:
-- 注:此表创建在 test 数据库下
CREATE TABLE log_audit (
login_date DATETIME,
logoff_date DATETIME,
username VARCHAR(20),
host_name VARCHAR(20)
);
GO
USE master;
GO
CREATE TRIGGER connection_login_trigger
ON ALL SERVER
FOR LOGON
AS
BEGIN
-- 将登录信息,插入到 test用户下的log_audit表里面
INSERT INTO test.dbo.log_audit(
login_date, username, host_name
) values (
GETDATE(), ORIGINAL_LOGIN(), HOST_NAME()
);
END;
GO
注:SQL Server 好像没有 登出的触发器。
测试的结果:
E:\>sqlcmd -S "localhost\SQLEXPRESS"
1> use test
2> go
已将数据库上下文更改为 'test'。
1> select * from log_audit
2> go
login_date logoff_date username host_name
----------------------- ----------------------- -------------------- -----------
---------
2011-05-15 14:53:37.483 NULL HOME-BED592453C\wzq HOME-BED592
453C
(1 行受影响)追问悲剧了
执行了你的命令
关闭后重新登录提示sa登录失败,已经数据库上下文改为master
怎么办呀
热心网友
时间:2023-08-23 19:20
在sql server日志中可以查到,剩下的只能自己看了,或者编写程序将其定时导出