热门标签 | HotTags
当前位置:  开发笔记 > 编程语言 > 正文

SQLSERVER记录登录用户的登录时间sql语句

SQLSERVER记录登录用户的登录时间,下面是本人写的一个脚本,我的实现原理是使用触发器,触发器是登录触发器,范围是整个服务器范围,如果有人登录过,就使用

SQLSERVER记录登录用户的登录时间,下面是本人写的一个脚本,我的实现原理是使用触发器,触发器是登录触发器,范围是整个服务器范围,如果有人登录过,就使用

bcp命令把登录信息记录日志文件

1、如果原来数据库已经存在触发器把他删掉

代码如下
1 USE MASTER
2 GO
3 DROP TRIGGER trg_logon_attempttest ON ALL SERVER
4 GO2

、在D盘新建一个文本文件 d:Logondata.txt 这个文本文件用来记录登录信息

3、创建一个登录触发器审核登录事件

代码如下

CREATE TRIGGER trg_logon_attempttest
ON ALL SERVER
WITH EXECUTE AS'sa'
FOR LOGON,ALTER_LOGIN
AS
BEGIN
DECLARE
@cmd nvarchar(4000)
;
SELECT
@cmd = 'ECHO '
+ ORIGINAL_LOGIN()+ CHAR(9) + CONVERT(varchar(100), GETDATE(), 121)
+ ' >> d:Logondata.txt'
;
DECLARE @tb_re TABLE(re varchar(4000));
INSERT @tb_re exec master.. xp_cmdshell @cmd
END
GO

这样当每次登录SQLSERVER的时候就会记录登录时间和登录用户名

在创建触发器前,需要开启xp_cmdshell扩展存储过程,并且不要禁用sa用户

不然会遇到下面这种情况,登录不了服务器,我的计算机名是joe

分享到

如果遇到这种情况可以使用SQLSERVER的专用管理员连接(DAC)连接进服务器,并把触发器先删除掉

日志的样式是这样的:

代码如下


1 NT AUTHORITYSYSTEM 2013-02-08 16:49:04.140
2 NT AUTHORITYSYSTEM 2013-02-08 16:49:14.210
3 NT AUTHORITYSYSTEM 2013-02-08 16:49:24.277
4 JOEAdministrator 2013-02-08 16:49:31.753
5 JOEAdministrator 2013-02-08 16:49:31.963
6 NT AUTHORITYSYSTEM 2013-02-08 16:49:34.327
7 JOEAdministrator 2013-02-08 16:49:35.777
8 sa 2013-02-08 16:51:39.930
9 NT AUTHORITYSYSTEM 2013-02-08 16:52:03.147
10 NT AUTHORITYSYSTEM 2013-02-08 16:52:13.337
11 NT AUTHORITYSYSTEM 2013-02-08 16:52:23.410
12 NT AUTHORITYSYSTEM 2013-02-08 16:52:33.830
13 NT AUTHORITYSYSTEM 2013-02-08 16:52:44.703
14 NT AUTHORITYSYSTEM 2013-02-08 16:52:54.407
15 NT AUTHORITYSYSTEM 2013-02-08 16:52:54.623
16 NT AUTHORITYSYSTEM 2013-02-08 16:52:54.797
17 NT AUTHORITYSYSTEM 2013-02-08 16:52:54.823
18 NT AUTHORITYSYSTEM 2013-02-08 16:52:54.893
19 NT AUTHORITYSYSTEM 2013-02-08 16:52:55.147
20 NT AUTHORITYSYSTEM 2013-02-08 16:52:55.277


--------------------------------------------------------------------------------

现在还有两个问题没有解决:

(1)我只想记录非Windows验证方式的用户登录,不想记录Windows验证方式的 ,现在还没有找到方法

(2)修改登录用户密码的动作要记录,但是找了很久也没有找到使用什么函数

推荐阅读
  • 本文详细介绍了PHP中的几种超全局变量,包括$GLOBAL、$_SERVER、$_POST、$_GET等,并探讨了AJAX的工作原理及其优缺点。通过具体示例,帮助读者更好地理解和应用这些技术。 ... [详细]
  • 本文详细介绍了如何在Windows和Linux系统上配置Openfire服务器,包括安装步骤、数据库配置及端口映射等关键环节。 ... [详细]
  • 2023年1月28日网络安全热点
    涵盖最新的网络安全动态,包括OpenSSH和WordPress的安全更新、VirtualBox提权漏洞、以及谷歌推出的新证书验证机制等内容。 ... [详细]
  • 本文由公众号【数智物语】(ID: decision_engine)发布,关注获取更多干货。文章探讨了从数据收集到清洗、建模及可视化的全过程,介绍了41款实用工具,旨在帮助数据科学家和分析师提升工作效率。 ... [详细]
  • Windows环境下Oracle数据库迁移实践
    本文详细记录了一次在Windows操作系统下将Oracle数据库的控制文件、数据文件及在线日志文件迁移至外部存储的过程,旨在为后续的集群环境部署做好准备。 ... [详细]
  • 探索OpenWrt中的LuCI框架
    本文深入探讨了OpenWrt系统中轻量级HTTP服务器uhttpd的工作原理及其配置,重点介绍了LuCI界面的实现机制。 ... [详细]
  • LoadRunner中的IP欺骗配置与实践
    为了确保服务器能够有效地区分不同的用户请求,避免多人使用同一IP地址造成的访问限制,可以通过配置IP欺骗来解决这一问题。本文将详细介绍IP欺骗的工作原理及其在LoadRunner中的具体配置步骤。 ... [详细]
  • 本文详细介绍了在 CentOS 7 系统上安装中文宋体字体的方法,包括操作系统的环境配置、字体管理工具的安装、字体文件的传输与缓存重建等步骤。 ... [详细]
  • 本文详细介绍了在PHP中如何获取和处理HTTP头部信息,包括通过cURL获取请求头信息、使用header函数发送响应头以及获取客户端HTTP头部的方法。同时,还探讨了PHP中$_SERVER变量的使用,以获取客户端和服务器的相关信息。 ... [详细]
  • 开发笔记:每篇半小时1天入门MongoDB——3.MongoDB可视化及shell详解
    开发笔记:每篇半小时1天入门MongoDB——3.MongoDB可视化及shell详解 ... [详细]
  • 本文探讨了在使用 MyBatis 进行批量数据处理时遇到的参数绑定异常问题,并提供了详细的解决方案。 ... [详细]
  • 初探Hadoop:第一章概览
    本文深入探讨了《Hadoop》第一章的内容,重点介绍了Hadoop的基本概念及其如何解决大数据处理中的关键挑战。 ... [详细]
  • Docker基础入门与环境配置指南
    本文介绍了Docker——一款用Go语言编写的开源应用程序容器引擎。通过Docker,用户能够将应用及其依赖打包进容器内,实现高效、轻量级的虚拟化。容器之间采用沙箱机制,确保彼此隔离且资源消耗低。 ... [详细]
  • 本文详细介绍了如何在PHP中使用Memcached进行数据缓存,包括服务器连接、数据操作、高级功能等。 ... [详细]
  • 如何高效学习鸿蒙操作系统:开发者指南
    本文探讨了开发者如何更有效地学习鸿蒙操作系统,提供了来自行业专家的建议,包括系统化学习方法、职业规划建议以及具体的开发技巧。 ... [详细]
author-avatar
手机用户2502922607
这个家伙很懒,什么也没留下!
PHP1.CN | 中国最专业的PHP中文社区 | DevBox开发工具箱 | json解析格式化 |PHP资讯 | PHP教程 | 数据库技术 | 服务器技术 | 前端开发技术 | PHP框架 | 开发工具 | 在线工具
Copyright © 1998 - 2020 PHP1.CN. All Rights Reserved | 京公网安备 11010802041100号 | 京ICP备19059560号-4 | PHP1.CN 第一PHP社区 版权所有