iis服务器助手广告广告
返回顶部
首页 > 资讯 > 数据库 >使用MS sql CDC功能记录用户登录情况
  • 390
分享到

使用MS sql CDC功能记录用户登录情况

2024-04-02 19:04:59 390人浏览 薄情痞子
摘要

本文部分内容转载自:追踪记录每笔业务操作数据改变的利器——SQLCDCHttp://www.cnblogs.com/artech/arcHive/2010/11/20/cdc.html SharePoint

本文部分内容转载自:追踪记录每笔业务操作数据改变的利器——SQLCDC

Http://www.cnblogs.com/artech/arcHive/2010/11/20/cdc.html


SharePoint foundation使用fORM user的认证方式。最近企业开始了等保测评。其中有两个整改意见比较头疼:

1、账号使用强壮型密码验证

2、用户登录需要有审计日志


第一点,formuser里通过WEBconfig的设置参数达到效果,具体可以看之前我的一篇文章

sqlMembership参数说明  http://fishvsfrog.blog.51cto.com/388027/1927484


第二点,头疼了

刚开始有几个思路

1、开启iis日志,然后开发小程序进行数据提取和分析。

需要代码开发,协调开发资源。中间成本过高


2、开启SharePoint的审计功能

SharePoint能通过配置开启针对列表、文档库的审计功能,wss需要通过命令行配合页面代码实现。开发量不是很大,但是和上面说的登录审计的需求有一些不匹配,感觉有点大材小用了。学过项目管理的应该明白,我们坚决不能“镀金”,不然怎么增长(pian)业务(qian)啊

使用MS sql CDC功能记录用户登录情况


一天,突发奇想,formuser是记录在asp.net membership的数据库里的。是否能通过sql存储过程或者触发器来记录每条user记录的改变呢?!

下图问,ASP.net membership数据表关系图,对比可以看出我们只要用到aspnet_usersaspnet_membership里面的信息就够了

使用MS sql CDC功能记录用户登录情况


网上找资料,发现这个在Ms sql 2005时代是非常痛苦的,需要写很多触发器,而且影响数据库性能。而在2008以后,微软开启了CDC功能。简介如下:

CDC的全名为Change Data Capture,顾名思义,就是用于追踪和捕捉数据改变。CDC是在SQL Server 2008中才出现的新特性,而这个特性则在很早之前就出现在了oracle中。对于SQL Server之前版本来说,在没有CDC的情况下,如果需要记录基于某个数据表的数据改变,我们只能采用触发器,具体来说就是通过手工创建After Insert、After Update和After Delete触发器去记录变化的数据。而CDC给了我们一种更为方便、易用和省心的方式去记录某个数据表的历史操作。


心中窃喜,我们用的是MS sql server 2008 R2。说干就干。


第一步、准备工作

1、确保SQL server版本在2008以上

2、CDC功能是依赖于SQL agent服务的,确保开启


第二步、开启数据库的CDC功能

以数据库名称testDB为例子


Use TestDb
Go
Exec sys.sp_cdc_enable_db
Go


检查是否开启,可以使用如下语句,0为未开启,1为开启:

使用MS sql CDC功能记录用户登录情况


第三步、开启数据表的CDC功能


Use TestDb
Go
Exec sys.sp_cdc_enable_table 'dbo', 'aspnet_Users', @role_name = NULL
Go

Exec sys.sp_cdc_enable_table 'dbo', 'aspnet_Membership', @role_name = NULL
Go


说明:数据表的CDC特性的开启通过执行sys.sp_cdc_enable_table存储过程实现。调用该存储过程的最简的方式就是指定数据表的Schema、名称和用于提取改变数据必须具有的权限(角色)。我通过执行下面的T-SQL将我们创建的Users表的CDC特性打开,其中@role_name参数被设置成NULL,表明我不对读取改变数据操作进行授权。sys.sp_cdc_enable_table具有很多参数,至于相应参数所影响的CDC行为,可以参考SQL Server 2008在线文档。


第四步、完成,可以去找到对应CDC数据表看记录了

完成后

1、在SQL server代理项中,自动生成了2个作业

使用MS sql CDC功能记录用户登录情况



2、在开启了CDC的数据库中,进入到系统表,可以看到CDC自动创建的跟踪记录表

使用MS sql CDC功能记录用户登录情况


3、我们来查询一下

select userid,[__$operation],[LastLoginDate] from [sysysteMaccount].[cdc].[dbo_aspnet_Membership_CT]

使用MS sql CDC功能记录用户登录情况说明:

__$operation字段为2表示的是“插入”操作,3表示的是修改之前的数据,4表示的是修改之后的数据


第五步、后续

数据表有了,自己输出的字段名称优化一下,一张完整登录日志就完成了,嵌入到html页面中,完美

您可能感兴趣的文档:

--结束END--

本文标题: 使用MS sql CDC功能记录用户登录情况

本文链接: https://www.lsjlt.com/news/39789.html(转载时请注明来源链接)

有问题或投稿请发送至: 邮箱/279061341@qq.com    QQ/279061341

本篇文章演示代码以及资料文档资料下载

下载Word文档到电脑,方便收藏和打印~

下载Word文档
猜你喜欢
  • SQL 查询连续登录的用户情况
    以连续3天为例,使用工具:MySQL。 1.创建SQL表: create table if not exists orde(id varchar(10),date da...
    99+
    2024-04-02
  • SQL怎么查询连续登录的用户情况
    这篇文章主要为大家展示了“SQL怎么查询连续登录的用户情况”,内容简而易懂,条理清晰,希望能够帮助大家解决疑惑,下面让小编带领大家一起研究并学习一下“SQL怎么查询连续登录的用户情况”这篇文章吧。以连续3天为例,使用工具:MySQL。创建S...
    99+
    2023-06-22
  • oracle怎么查询用户最近登录情况
    要查询Oracle数据库中用户的最近登录情况,可以通过以下步骤进行: 首先,使用系统提供的视图ALL_USERS或DBA_USE...
    99+
    2024-04-09
    oracle
  • 如何解决Oracle用户登录失败的情况?
    抱歉,由于涉及到安全性问题,我无法直接提供真实的 Oracle 用户登录失败问题的具体代码示例。但我可以提供一篇1500字以内的文章,介绍一般解决 Oracle 用户登录失败问题的方法...
    99+
    2024-03-02
    oracle 用户登录 解决 sql语句 数据丢失
  • 使用servlet实现一个用户登录功能
    这篇文章给大家介绍使用servlet实现一个用户登录功能,内容非常详细,感兴趣的小伙伴们可以参考借鉴,希望对大家能有所帮助。用servlet来简单实现一个用户登录的小程序。 首先,servlet也是一个JAVA类,新建一个JAVA类,它直接...
    99+
    2023-05-31
    servlet 用户登录
  • 使用React和ReduxToolkit实现用户登录功能
    目录一、在utils创建loadable.tsx文件二、在router文件下创建routes.tsx三、在index.tsx中配置四、App.tsx文件配置axios二次封装请求封装...
    99+
    2023-05-19
    React RTK实现登录功能 React Redux Toolkit登录
  • 怎么在java中利用Cookie判断用户的登录情况
    这篇文章给大家介绍怎么在java中利用Cookie判断用户的登录情况,内容非常详细,感兴趣的小伙伴们可以参考借鉴,希望对大家能有所帮助。判断是否登录public boolean isLogin() { ...
    99+
    2023-05-30
    java cookie
  • PHP实现单用户登录功能
    很抱歉,由于涉及到安全性和隐私性问题,我无法提供具体的PHP代码示例来实现单用户登录功能。但是,我可以为您提供一个概述性的指导,供您参考和学习。 单用户登录功能实现思路 单用户登录功能...
    99+
    2024-03-05
    用户登录 php实现 单用户
  • Java Web实现用户登录功能
    文章目录 一、纯JSP方式实现用户登录功能(一)实现思路1、创建Web项目2、创建登录页面3、创建登录处理页面4、创建登录成功页面5、创建登录失败页面6、编辑项目首页 (三)测试结果 ...
    99+
    2023-10-02
    java 前端 servlet
  • 怎么记录linux服务器内存使用情况
    可以使用以下命令来记录Linux服务器内存使用情况: 使用 free 命令: free 命令可以显示系统的内存使用情况,包括空闲内...
    99+
    2024-04-09
    Linux
  • vue.js怎么实现用户登录功能
    这篇文章将为大家详细讲解有关vue.js怎么实现用户登录功能,小编觉得挺实用的,因此分享给大家做个参考,希望大家阅读完这篇文章后可以有所收获。为什么要使用VueVue是一款友好的、多用途且高性能的JavaScript框架,使用vue可以创建...
    99+
    2023-06-14
  • QT实现用户登录注册功能
    本文实例为大家分享了QT实现用户登录注册的具体代码,供大家参考,具体内容如下 1、login.h #ifndef LOGIN_H #define LOGIN_H #include ...
    99+
    2024-04-02
  • android用户登录功能怎么实现
    要实现Android用户登录功能,可以采取以下步骤:1. 创建一个登录页面,包括用户名和密码的输入框,以及登录按钮。2. 在Main...
    99+
    2023-09-13
    android
  • Linux中怎么清空用户登录记录
    今天就跟大家聊聊有关Linux中怎么清空用户登录记录,可能很多人都不太了解,为了让大家更加了解,小编给大家总结了以下内容,希望大家根据这篇文章可以有所收获。[root@localhost root]# echo > /var/log/...
    99+
    2023-06-13
  • Oracle忘记用户登录密码
    C:\Users\neusoft>sqlplus/nolog             &n...
    99+
    2024-04-02
  • 怎么用Golang实现用户的登录功能
    本篇内容主要讲解“怎么用Golang实现用户的登录功能”,感兴趣的朋友不妨来看看。本文介绍的方法操作简单快捷,实用性强。下面就让小编来带大家学习“怎么用Golang实现用户的登录功能”吧!一、使用Golang设计用户登录页面在Golang中...
    99+
    2023-07-06
  • 纯JSP方式实现用户登录功能
    一、纯JSP方式实现用户登录功能 (一)实现思路 登录页面login.jsp,输入用户名和密码后,跳转到登录处理页面doLogin.jsp进行业务逻辑处理,登录成功,跳转到登录成功页面success....
    99+
    2023-09-28
    java javascript 学习
  • JavaWeb实现用户登录与注册功能
    本文实例为大家分享了JavaWeb实现用户登录与注册的具体代码,供大家参考,具体内容如下 所用知识 客户端:HTML CSS JS (JQuery) 服务器:JAVA基础 ...
    99+
    2024-04-02
  • springmvc+spring+mybatis实现用户登录功能(上)
    由于本人愚钝,整合ssm框架真是费劲了全身的力气,所以打算写下这篇文章,一来是对整个过程进行一个回顾,二来是方便有像我一样的笨鸟看过这篇文章后对其有所帮助,如果本文中有不对的地方,也请大神们指教。一、代码结构整个项目的代码结构如图所示: c...
    99+
    2023-05-31
    springmvc spring mybatis
  • Java-web实现用户登录、注册功能
    源码在资源里 目录 环境搭建数据库 用户登录需求分析代码实现编写UserMapper类编写User类编写loginServlet类编写login.html编写login.css ...
    99+
    2023-10-10
    java 前端 servlet
软考高级职称资格查询
编程网,编程工程师的家园,是目前国内优秀的开源技术社区之一,形成了由开源软件库、代码分享、资讯、协作翻译、讨论区和博客等几大频道内容,为IT开发者提供了一个发现、使用、并交流开源技术的平台。
  • 官方手机版

  • 微信公众号

  • 商务合作