对数据的操作记录的处理方法及装置
技术领域
本发明涉及计算机软件领域,具体而言,涉及一种对数据的操作记录的处理方法及装置。
背景技术
现有应用系统的数据库中都包含很多配置表,配置表中会有很多配置数据,比如电商系统包含商品、商品类别、用户信息等配置数据,比如库存管理系统包含库存产品、仓库等配置数据。不同的配置数据对于系统的重要程度是不一样的,有些配置数据的修改不会影响系统运行,而有些修改影响系统运行,因此一般系统都会引入权限机制,不同权限能看到和修改不同配置,其本质就是只有小部分人拥有修改关键配置数据的权限。
这里需要说明是,即使是拥有修改配置权限的账户中有人执行了误操作或恶意操作,系统无法判断这样操作的根源,即系统无法第一时间获知配置表中的哪些数据被进行了修改,是哪个账户修改或删除的配置数据,修改或删除的原因是什么,也无法甄别恶意的修改或删除操作,不利于问题的排查。
针对在发生对配置表中的数据进行操作后,系统无法获得对配置数据进行操作的即时通知,导致在上述操作为非法操作时,系统无法对非法操作进行排查的问题,目前尚未提出有效的解决方案。
发明内容
本发明的主要目的在于提供一种对数据的操作记录的处理方法及装置,以解决在发生对配置表中的数据进行操作后,系统无法获得对配置数据进行操作的即时通知,导致在上述操作为非法操作时,系统无法对非法操作进行排查的问题。
为了实现上述目的,根据本发明实施例的一个方面,提供了一种对数据的操作记录的处理方法。该方法包括:根据用户操作配置表中第一数据列中的第一数据,生成用于表征操作结果的操作记录数据,其中,配置表还包括主键列,主键列中的键值对应第一数据列中的数据;将操作记录数据添加到历史记录表的各数据列中,生成第一历史记录,并将第一历史记录所对应的历史记录ID进行累加,其中,历史记录表包括如下列:历史记录ID、第三数据列、第四数据列,第三数据列与配置表中的主键列关联,第四数据列中的数据用于同步第一数据。
为了实现上述目的,根据本发明实施例的另一方面,提供了一种对数据的操作记录的处理装置。该装置包括:表征单元,用于根据用户操作配置表中第一数据列中的第一数据,生成用于表征操作结果的操作记录数据,其中,配置表还包括主键列,主键列中的键值对应第一数据列中的数据;添加单元,用于将操作记录数据添加到历史记录表的各数据列中,生成第一历史记录,并将第一历史记录所对应的历史记录ID进行累加,其中,历史记录表包括如下列:历史记录ID、第三数据列、第四数据列,第三数据列与配置表中的主键列关联,第四数据列中的数据用于同步第一数据。
根据本发明实施例,通过根据用户操作配置表中第一数据列中的第一数据,生成用于表征操作结果的操作记录数据,其中,配置表还包括主键列,主键列中的键值对应第一数据列中的数据;将操作记录数据添加到历史记录表的各数据列中,生成第一历史记录,并将第一历史记录所对应的历史记录ID进行累加,其中,历史记录表包括如下列:历史记录ID、第三数据列、第四数据列,第三数据列与配置表中的主键列关联,第四数据列中的数据用于同步第一数据,解决了在发生对配置表中的数据进行操作后,系统无法获得对配置数据进行操作的即时通知,导致在上述操作为非法操作时,系统无法对非法操作进行排查的问题。
附图说明
构成本申请的一部分的附图用来提供对本发明的进一步理解,本发明的示意性实施例及其说明用于解释本发明,并不构成对本发明的不当限定。在附图中:
图1是根据本发明实施例一的对数据的操作记录的处理方法的流程图;
图2是根据本发明实施例二的对数据的操作记录的处理装置的结构示意图;
图3是根据本发明实施例二的可选的对数据的操作记录的处理装置的结构示意图;
图4是根据本发明实施例二的可选的对数据的操作记录的处理装置的结构示意图;
图5是根据本发明实施例二的可选的对数据的操作记录的处理装置的结构示意图;以及
图6是根据本发明实施例二的可选的对数据的操作记录的处理装置的结构示意图。
具体实施方式
需要说明的是,在不冲突的情况下,本申请中的实施例及实施例中的特征可以相互组合。下面将参考附图并结合实施例来详细说明本发明。
为了使本技术领域的人员更好地理解本发明方案,下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅仅是本发明一部分的实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都应当属于本发明保护的范围。
需要说明的是,本发明的说明书和权利要求书及上述附图中的术语“第一”、“第二”等是用于区别类似的对象,而不必用于描述特定的顺序或先后次序。应该理解这样使用的数据在适当情况下可以互换,以便这里描述的本发明的实施例。此外,术语“包括”和“具有”以及他们的任何变形,意图在于覆盖不排他的包含,例如,包含了一系列步骤或单元的过程、方法、系统、产品或设备不必限于清楚地列出的那些步骤或单元,而是可包括没有清楚地列出的或对于这些过程、方法、产品或设备固有的其它步骤或单元。
实施例一
本发明实施例提供了一种对数据的操作记录的处理方法。
图1是根据本发明实施例的对数据的操作记录的处理方法的流程图。如图1所示,该方法包括步骤如下:
步骤S10,根据用户操作配置表中第一数据列中的第一数据,生成用于表征操作结果的操作记录数据,其中,配置表还包括主键列,主键列中的键值对应第一数据列中的数据。
具体的,用户可以对上述配置表中的数据进行操作,上述第一数据可以为配置表中第一数据列中的任意数据,当用户对上述第一数据进行操作时,上述第一数据发生变化,在本方案中,可以时刻检测上述第一数据的变化,当上述第一数据发生变化时,说明某用户对上述第一数据进行了某项操作,在本方案中,可以根据用户对上述第一数据的操作生成操作记录数据,上述操作记录数据可以用来表征用户对上述第一数据的操作。
这里需要说明的是,上述配置表中可以包括至少两列数据,上述第一数据列和主键列,如表1所示,配置表中的某初始数据即上述第一数据为商品,用户对商品进行了修改,修改后的数据如表2所示。
表1:
Configdata |
ConfigId |
商品 |
02 |
表2:
Configdata |
ConfigId |
商场 |
02 |
步骤S12,将操作记录数据添加到历史记录表的各数据列中,生成第一历史记录,并将第一历史记录所对应的历史记录ID进行累加,其中,历史记录表包括如下列:历史记录ID、第三数据列、第四数据列,第三数据列与配置表中的主键列关联,第四数据列中的数据用于同步第一数据。
具体的,可以将对第一数据的操作的操作历史数据添加到历史记录表的各列数据中,如表3所示,表3为上述第一数据的历史记录表,在表3中,Historyid列、Configid列、Configdata、分别对应上述步骤S12中的历史记录ID、第三数据列、第四数据列。
表3:
Historyid |
Configid |
Configdata |
01 |
02 |
商品 |
02 |
02 |
商场 |
结合表3,表3中的第2行的数据集合为第一数据的第一历史记录,第一条历史记录的Historyid为01,当用户对配置表,即上述表1进行操作后(将商品修改为商场),在本方案中,可以将上述操作对应的操作记录数据增加到表3中即历史记录表中,同时将Historyid进行累加,通过上述表3,可以看出上述第一数据的操作记录。
可选的,在步骤S12将操作记录数据添加到历史记录表的各数据列中,生成第一历史记录之后,本实施例提供的方法还可以包括:
步骤S14,根据历史记录表中的各列信息生成提示信息,提示信息用于提示配置表中第一数据列中的第一数据所发生的操作内容。
具体的结合表3,当历史记录表中的历史记录ID大于第一阈值时,可以将历史记录表中的信息生成提示信息发送至管理员。这里需要说明的是,结合表3,当历史记录ID为01时,代表上述配置表中的第一数据没有发生变化,用户没有对上述第一数据进行任何操作,无需向管理员进行提示。可选的,上述第一阈值可以为01。
本实施例通过对配置表中的数据构建历史表,每次对配置表中的数据进行操作后都要对历史记录表中添加新的历史记录,通过历史记录表中的信息生成提示信息,实现了当配置表中的数据发生变化时,系统管理员及时得知哪些数据发生了变化以及变化的内容。解决了在发生对配置表中的某数据进行操作后,系统无法获得对配置数据进行操作的即时通知,导致在上述操作为非法操作时,系统无法对非法操作进行排查的问题。
可选的,上述提示信息还可以包括以下至少一个:
第一数据的数据类型、操作方式、变更前的第一数据、变更后的第一数据。
具体的,如表4所示,当配置表中发生了变化时,在本方案中,可以生成提示信息通知管理员,如表4中所示,表4中的Configname、Modifytype、Oldvalue、Newvalue分别代表上述数据类型、操作方式、变更前的第一数据、变更后的第一数据。
表4:
Configname |
Modifytype |
Oldvalue |
Newvalue |
文字 |
更新 |
string1(商品) |
String2(商场) |
这里需要说明的是,可选的,在上述提示信息中,变更前的第一数据、变更后的第一数据可以被转换成字符串string1和String2,上述两个字符串分别代表商品和商场。
通过表4,管理员可以第一时间掌握修改情况,通过配置,相关人员可以第一时间知道配置被修改,如果这样的修改不是期望的话,可以第一时间修正。
可选的,上述历史记录表还可以包括如下至少一列历史记录:操作类型、操作时间、操作账号、操作原因,其中,操作类型包括:添加、更新、删除、恢复。
表5:
结合表5所示,在一种可选的实施例中,管理员可以通过历史记录表来查看配置表中哪些数据被修改了,修改的类型,修改数据的主键标识是多少,操作的账号是多少,以及为什么修改,结合表5中Historyid为02的历史记录,管理员可以得知以下信息:在配置表中,主键标识为02的数据被修改了,修改时间是3:00,修改账户是Administrator01,修改原因是修改系统功能需要。
这里需要说明的是,在历史记录表中的数据修改原因即上述表中的Description为用户在对数据进行操作的时候向系统输入的,可选的,用户在修改配置表中的数据时也可以不输入修改原因。
可选的,在步骤S14中在根据历史记录表中的各列信息生成提示信息之后,方法包括:
步骤S150,接收用户的恢复指令,其中,恢复指令包括第一历史记录ID。
具体的,用户在浏览上述配置表中第一数据对应的历史记录表时,可以选择将配置表中的第一数据恢复为上述历史记录表中某一条历史记录即第一历史记录ID对应的第四数据列中的数据。
步骤S151,在历史记录表的第四数据列中获取到第一历史记录ID对应的数据。
步骤S152,根据第一历史记录ID确定其在配置表中的主键列中对应的主键列键值。
具体的,因为在历史记录表中,通过历史记录ID可以确定历史记录表中的第三数据列数据,而上述第三数据列与上述配置表中的主键列相关联,所以可以根据第一历史记录ID确定其在配置表中的主键列中对应的主键列键值。
步骤S153,使用第一历史记录ID对应的数据替换配置表中第一数据列中主键列键值对应的第一数据。
具体的,用户可以向系统输入第一历史ID来获取在历史记录表中上述第一历史ID所对应的数据,结合表5,例如,用户向系统输入的第一历史ID为01,Historyid=01时,所对应的数据为商品,在本方案中,可以采用历史记录表中的商品来替换配置表中的第一数据,即表2中的商场,通过上述操作可以轻松将配置恢复到之前正常状态,如表6所示,这样对于配置进行了误操作或恶意操作的话,可以轻松恢复。
表6:
Configdata |
ConfigId |
商品 |
02 |
这里需要说明的是,在对配置表中的第一数据进行恢复的操作后,恢复的操作仍旧为对配置表中进行的操作,所以在执行步骤S152,将历史记录表中的第四数据列中的第一历史记录ID对应的数据替换配置表中的第一数据之后,本方案再继续执行步骤S10。
这里还需要说明的是,本方案时刻监测上述配置表中第一数据的状态,当第一数据发生变化时,比如说被更新,被删除,被添加(即之前数据为空),被恢复,本方案都会为第一数据构建历史记录表。
可选的,步骤S12,将操作记录数据添加到历史记录表的各数据列中之后,本实施例提供的方法还可以包括:
步骤S131,接收用户发出的锁定指令,在配置表中添加锁定账户列并将锁定账户列的标识设定为无法操作,其中,锁定账户列中的数据关联配置表中主键列键值对应的数据。
这里需要说明的是,管理员可以指定让设定特定用户修改配置表中数据的权限。
具体的,本方案可以在配置表中对操作账户进行限定,实现的功能为配置表中某些主键列值对应的第一数据列中数据对于某操作账户不可以操作。如表7:
表7:
Configdata |
ConfigId |
LockByAccount |
商场 |
02 |
Administrator02 |
对配置表中进行上述操作后,账户为Administrator02不可以对配置表中configid为02对应的数据进行任何的操作。
在一种可选的实施例中,可以对配置表中的关键信息数据进行账户锁定,以确保配置表中的数据安全,禁止他人修改关键的配置。
可选的,在上述步骤S131,在配置表中添加锁定账户列后,本实施例提供的方法还可以包括:
步骤S131,接收用户发出的解锁指令,通过主键列中的主键数据查找到其对应的锁定账户列的数据,并将锁定账户的标识设定为空。
具体的,在对某特定账户比如上述Administrator02进行锁定后,系统管理员也可以对上述账户进行解锁,如表8所示。
表8:
Configdata |
ConfigId |
LockByAccount |
商场 |
02 |
Null |
可选的,步骤S152,将历史记录表中的第四数据列中的第一历史记录ID对应的数据替换配置表中的第一数据之后,本实施例提供的方案还可以包括如下方案:
通过如下至少一个参数查看至少一个参数在历史记录表中对应的历史记录:
配置表中的主键列数据、操作原因、操作时间、操作类型。
具体的,管理员可以通过不同的参数来查找历史记录表中的历史记录,其中,查找操作类型为修改(modify)或添加(add)的方法可以包括如下三个方案:
方案一:
通过configId来查询其对应的历史记录。
具体的,可以通过用户输入的配置表中的某主键来查询该主键所对应的所有的历史记录。
方案二:
通过configid和description来查询其对应的历史记录。
具体的,可以通过用户输入的配置表中的某主键和操作类型来查询,例如,用户输入了某主键数据,和更新,即用来查询上述主键数据对应的数据被更新的所有历史记录。
方案三:
通过configid、startime、endtime来查询其对应的历史记录。
具体的,用户也可以输入时间段来查询在该时间段内,上述configid对应的数据被操作的历史记录。
在一种可选的实施例中,查找操作类型为删除(delete)的历史记录的方法可以包括如下三个方案:
方案一:用户无需输入任何参数,直接查询操作类型为删除(delete)的所有的历史记录。
方案二:用户可以根据操作原因(description)和操作类型来查询相关历史记录。
方案三:用户可以根据输入的时间段来查找在上述时间段内,在配置表中被删除的所有数据的历史记录。
通过上述输入相关参数获取历史记录的方案,可以实现跟踪配置的详细历史记录,掌握配置修改的全过程,这样利于排查问题,比如识别误操作或恶意操作;系统出现问题时可以从历史记录中给出确切的证据,说明是由哪些人员何种操作导致的。
下面从装置准备和装置使用两个方面详细描述本申请方案:
一、装置准备:
1.为所有配置表添加配置历史表,该表在配置表基础上,添加若干列,如下表9:
表9:
HistoryId |
自增长,唯一标识一条历史记录 |
ModifyAccount |
修改配置账号 |
ModifyTime |
修改配置时间,每次插入都使用当前时间 |
ModifyType |
0(添加配置)、1(修改配置)、2(删除配置) |
Description |
说明本次修改目的 |
ConfigId |
外键,引用配置表主键 |
2.定义AddHistory方法,用于向历史表中添加一条记录。其中,HistoryId列是自增长的,每次添加新记录HistoryId在原有基础上加一,ModifyTime使用当前时间,所以数据库这两列自动填充,其他参数则使用该方法定义的参数填充。参数如下表10:
表10:
3.定义GetHistories方法,用于查找符合条件的所有ModifyType为Add或Modify历史记录,该方法是重载方法(即方法名称相同,但是参数不同),共有如下三个重载,三中重载的方法分别对应下表11、表12、表13。
表11:
表12:
ConfigId |
查询指定配置项的历史记录 |
Description |
模糊匹配历史表中的Description列 |
表13:
ConfigId |
查询指定配置项的历史记录 |
StartTime |
查询起始时间 |
EndTime |
查询结束时间 |
4.定义GetDeletedHistories方法,用于查找符合条件的所有ModifyType为Delete历史记录,该方法是重载方法(即方法名称相同,但是参数不同),共有如下三个重载,其中,重载一,为无参数。第二种和第三种重载的方法分别对应下表14、表15。
表14:
Description |
模糊匹配历史表中的Description列 |
表15:
StartTime |
查询起始时间 |
EndTime |
查询结束时间 |
5.定义RestoreHistory方法,参数为HistoryId。步骤如下:
(1)根据这个HistoryId,查找对应的历史记录。
(2)根据历史记录中的ConfigId,在配置表中查找指定配置。
(3)使用该条历史记录中的配置替换配置表中配置。
(4)将查找到历史记录重新插入到历史表中,其中HistoryId和ModifyTime自动变化。
6.定义RestoreDeletedHistory方法,参数为HistoryId。步骤如下:
(1)根据这个HistoryId,查找对应的历史记录。
(2)将该条历史记录中的配置添加到配置表中。
(3)将查找到历史记录重新插入到历史表中,其中,ModifyType修改为Modify,HistoryId和ModifyTime自动变化。
7.为所有配置表添加LockByAccount列,该列为锁定当前账号的Account,如果当前配置没有锁定的话为null。
8.添加Lock方法,锁定某个配置,锁定后的配置,除超级管理员和本人外,其他人不可以修改,参数如下表16。通过ConfigId查找指定配置,然后使用Account参数填充LockByAccount列。
表16:
ConfigId |
配置记录编号 |
Account |
锁定的账号 |
9.添加Unlock方法,解除锁定,参数如下表17。通过ConfigId查找指定配置,然后将LockByAccount列置为null。
表17:
10.定义Notify方法,在配置被修改时发送通知,参数如下表18。
表18:
二、装置使用
1.修改添加配置的逻辑,添加配置操作除了要在配置表中添加一条记录外,还要调用AddHistory方法,将新加配置添加到配置历史表中。参数见AddHistory方法介绍,其中ModifyType为Add、Description由用户输入。
2.修改更新配置的逻辑,更新操作除了要更新配置表外,还要调用AddHistory方法,将最新配置添加到配置历史表中。参数见AddHistory方法介绍,ModifyType为Modify、Description由用户输入。
3.修改删除操作的逻辑,删除操作除了要删除配置外,还要调用AddHistory方法,将删除的配置记录添加到配置历史表中。参数见AddHistory方法介绍,ModifyType为Modify、Description由用户输入。
4.添加查看指定配置历史记录功能,调用GetHistories多个重载方法,其中ConfigId为指定配置编号,具体步骤如下:
(1)如果查询所有历史记录,不需要其他参数。
(2)如果查询指定时间范围,提供StartDate和EndDate参数。
(3)如果根据如何输入的修改说明查询,提供Description参数。
5.添加查看所有删除配置历史记录功能,调用GetDeletedHistories多个重载方法,具体步骤如下:
(1)如果查询所有删除记录,不需要其他参数。
(2)如果查询指定时间范围,提供StartDate和EndDate参数。
(3)如果根据如何输入的修改说明查询,提供Description参数。
6.提供恢复功能
(1)恢复不是已删除的配置,调用RestoreHistory方法,参数为该条历史记录的HistoryId。
(2)恢复已删除的配置,调用RestoreDeletedHistory方法,参数为该条历史记录的HistoryId。
7.添加配置锁定功能,调用Lock方法。
8.添加解除锁定功能,调用Unlock方法。
9.添加配置被修改或删除时收件人配置,这些收件人在配置被修改或删除时会收到通知,此时需要修改更新操作和删除操作的逻辑,在两个操作中调用Notify方法。
综上,本申请方案包含如下优点:
(1)可以跟踪配置的详细历史记录,掌握配置修改的全过程,这样利于排查问题,比如识别误操作或恶意操作;系统出现问题时可以从历史记录中给出确切的证据,说明是由哪些人员何种操作导致的。
(2)可以轻松将配置恢复到之前正常状态,这样对于配置进行了误操作或恶意操作的话,可以轻松恢复。
(3)第一时间掌握修改情况。,通过配置,相关人员可以第一时间知道配置被修改,如果这样的修改不是期望的话,可以第一时间修正。
(4)可以对关键配置进行锁定,禁止他人修改关键配置。
实施例二
本发明还提供了一种对数据的操作记录的处理装置,如图2所示,该装置可以包括:
表征单元10,用于根据用户操作配置表中第一数据列中的第一数据,生成用于表征操作结果的操作记录数据,其中,配置表还包括主键列,主键列中的键值对应第一数据列中的数据。
具体的,用户可以对上述配置表中的数据进行操作,上述第一数据可以为配置表中第一数据列中的任意数据,当用户对上述第一数据进行操作时,上述第一数据发生变化,在本方案中,可以时刻检测上述第一数据的变化,当上述第一数据发生变化时,说明某用户对上述第一数据进行了某项操作,在本方案中,可以根据用户对上述第一数据的操作生成操作记录数据,上述操作记录数据可以用来表征用户对上述第一数据的操作。
这里需要说明的是,上述配置表中可以包括至少两列数据,上述第一数据列和主键列,如表19所示,配置表中的某初始数据即上述第一数据为商品,用户对商品进行了修改,修改后的数据如表20所示。
表19:
Configdata |
ConfigId |
商品 |
02 |
表20:
Configdata |
ConfigId |
商场 |
02 |
添加单元12,用于将操作记录数据添加到历史记录表的各数据列中,生成第一历史记录,并将第一历史记录所对应的历史记录ID进行累加,其中,历史记录表包括如下列:历史记录ID、第三数据列、第四数据列,第三数据列与配置表中的主键列关联,第四数据列中的数据用于同步第一数据。
具体的,可以将对第一数据的操作的操作历史数据添加到历史记录表的各列数据中,如表21所示,表21为上述第一数据的历史记录表,在表21中,Historyid列、Configid列、Configdata、分别对应上述实施例一中的步骤S12中的历史记录ID、第三数据列、第四数据列。
表21:
Historyid |
Configid |
Configdata |
01 |
02 |
商品 |
02 |
02 |
商场 |
结合表21,表21中的第2行的数据集合为第一数据的第一历史记录,第一条历史记录的Historyid为01,当用户对配置表,即上述表19进行操作后(将商品修改为商场),在本方案中,可以将上述操作对应的操作记录数据增加到表21中即历史记录表中,同时将Historyid进行累加,通过上述表21,可以看出上述第一数据的操作记录。
这里需要说明的是,当用户对配置表中的第一数据没有任何操作时,同样为配置表中的第一数据构建历史记录表,即上述表20中第一行的数据集合,上述第一行的数据集合为第一数据的初始记录,第二行数据为第一数据发生变化后的第一条历史记录。
可选的,如图3所示,本实施例提供的装置还可以包括:
提示单元14,用于根据历史记录表中的各列信息生成提示信息,提示信息用于提示配置表中第一数据列中的第一数据所发生的操作内容。
具体的,结合表20,当历史记录表中的历史记录ID大于第一阈值时,可以将历史记录表中的信息生成提示信息发送至管理员。这里需要说明的是,结合表20,当历史记录ID为01时,代表上述配置表中的第一数据没有发生变化,用户没有对上述第一数据进行任何操作,无需向管理员进行提示。可选的,上述第一阈值可以为01。
本实施例通过对配置表中的数据构建历史表,每次对配置表中的数据进行操作后都要对历史记录表中添加新的历史记录,通过历史记录表中的信息生成提示信息,实现了当配置表中的数据发生变化时,系统管理员及时得知哪些数据发生了变化以及变化的内容。解决了在发生对配置表中的某数据进行操作后,系统无法获得对配置数据进行操作的即时通知,导致在上述操作为非法操作时,系统无法对非法操作进行排查的问题。
可选的,上述提示信息还可以包括以下至少一个:
第一数据的数据类型、操作方式、变更前的第一数据、变更后的第一数据。
具体的,如表22所示,当配置表中发生了变化时,在本方案中,可以生成提示信息通知管理员,如表22中所示,表22中的Configname、Modifytype、Oldvalue、Newvalue分别代表上述数据类型、操作方式、变更前的第一数据、变更后的第一数据。
表22:
这里需要说明的是,可选的,在上述提示信息中,变更前的第一数据、变更后的第一数据可以被转换成字符串string1和String2,上述两个字符串分别代表商品和商场。
通过表22,管理员可以第一时间掌握修改情况,通过配置,相关人员可以第一时间知道配置被修改,如果这样的修改不是期望的话,可以第一时间修正。
可选的,历史记录表还包括如下至少一列历史记录:操作类型、操作时间、操作账号、操作原因,其中,操作类型包括:添加、更新、删除、恢复。
表23:
结合表23所示,在一种可选的实施例中,管理员可以通过历史记录表来查看配置表中哪些数据被修改了,修改的类型,修改数据的主键标识是多少,操作的账号是多少,以及为什么修改,结合表23中Historyid为02的历史记录,管理员可以得知以下信息:在配置表中,主键标识为02的数据被修改了,修改时间是3:00,修改账户是Administrator01,修改原因是修改系统功能需要。
这里需要说明的是,在历史记录表中的数据修改原因即上述表中的Description为用户在对数据进行操作的时候向系统输入的,可选的,用户在修改配置表中的数据时也可以不输入修改原因。
可选的,如图4所示,本发明实施例提供的装置还可以包括:
接收单元15,用于接收用户的恢复指令,其中,恢复指令包括第一历史记录ID。
具体的,用户在浏览上述配置表中第一数据对应的历史记录表时,可以选择将配置表中的第一数据恢复为上述历史记录表中某一条历史记录即第一历史记录ID对应中的数据。
第一获取单元16,用于在历史记录表的第四数据列中获取到第一历史记录ID对应的数据。
确定单元17,用于根据第一历史记录ID确定其在配置表中的主键列中对应的主键列键值。
具体的,因为在历史记录表中,通过历史记录ID可以确定历史记录表中的第三数据列数据,而上述第三数据列中的与上述数据表中的主键列相关联,所以可以根据第一历史记录ID确定其在配置表中的主键列中对应的主键列键值。
替换单元18,用于根据第一历史记录ID确定其在配置表中的主键列中对应的主键列键值。
具体的,用户可以向系统输入第一历史ID来获取在历史记录表中上述第一历史ID所对应的数据,结合表23,例如,用户向系统输入的第一历史ID为01,Historyid=01时,所对应的数据为商品,在本方案中,可以采用历史记录表中的商品来替换配置表中的第一数据,即表20中的商场,通过上述操作可以轻松将配置恢复到之前正常状态,如表23所示,这样对于配置进行了误操作或恶意操作的话,可以轻松恢复。
表24:
Configdata |
ConfigId |
商品 |
02 |
这里需要说明的是,在对配置表中的第一数据进行恢复的操作后,恢复的操作仍旧为对配置表中进行的操作,所以在执行步骤S152,将历史记录表中的第四数据列中的第一历史记录ID对应的数据替换配置表中的第一数据之后,本方案再继续执行步骤S10。
这里还需要说明的是,本方案时刻监测上述配置表中第一数据的状态,当第一数据发生变化时,比如说被更新,被删除,被添加(即之前数据为空),被恢复,本方案都会为第一数据构建历史记录表。
可选的,如图5所示,本发明实施例提供的装置还可以包括:
锁定单元20,用于接收用户的锁定指令,在配置表中添加锁定账户列并将锁定账户列的标识设定为无法操作,其中,锁定账户列中的数据关联配置表中主键列键值对应的数据。
这里需要说明的是,管理员可以指定让设定特定用户修改配置表中数据的权限。
具体的,本方案可以在配置表中对操作账户进行限定,实现的功能为是第一数据列对于某操作账户不可以操作,如表25所示。
表25:
Configdata |
ConfigId |
LockByAccount |
商场 |
02 |
Administrator02 |
对配置表中进行上述操作后,账户为Administrator02不可以对配置表中configid为02对应的数据进行任何的操作。
在一种可选的实施例中,可以对配置表中的关键信息数据进行账户锁定,以确保配置表中的数据安全,禁止他人修改关键的配置
可选的,如图6所示,本实施例提供的装置还可以包括:
解锁单元22,用于接收用户的解锁指令,通过主键列中的键值查找到其对应的锁定账户列的数据,并将锁定账户的标识设定为空。
具体的,在对某特定账户比如上述Administrator02进行锁定后,系统管理员也可以对上述账户进行解锁,如表26所示。
表26:
Configdata |
ConfigId |
LockByAccount |
商场 |
02 |
Null |
可选的,本实施例提供的装置还可以包括:
第二获取单元24,用于通过如下至少一个参数获取至少一个参数在历史记录表中对应的历史记录:
配置表中的主键列数据、操作原因、操作时间、操作类型。
通过如下至少一个参数查看至少一个参数在历史记录表中对应的历史记录:
配置表中的主键列数据、操作原因、操作时间、操作类型。
具体的,管理员可以通过不同的参数来查找历史记录表中的历史记录,其中,查找操作类型为修改(modify)或添加(add)的方法可以包括如下三个方案:
方案一:
通过configId来查询其对应的历史记录。
具体的,可以通过用户输入的配置表中的某主键来查询该主键所对应的所有的历史记录。
方案二:
通过configid和description来查询其对应的历史记录。
具体的,可以通过用户输入的配置表中的某主键和操作类型来查询,例如,用户输入了某主键数据,和更新,即用来查询上述主键数据对应的数据被更新的所有历史记录。
方案三:
通过configid、startime、endtime来查询其对应的历史记录。
具体的,用户也可以输入时间段来查询在该时间段内,上述configid对应的数据被操作的历史记录。
在一种可选的实施例中,查找操作类型为删除(delete)的历史记录的方法可以包括如下三个方案:
方案一:用户无需输入任何参数,直接查询操作类型为删除(delete)的所有的历史记录。
方案二:用户可以根据操作原因(description)和操作类型来查询相关历史记录。
方案三:用户可以根据输入的时间段来查找在上述时间段内,在配置表中被删除的所有数据的历史记录。
通过上述输入相关参数获取历史记录的方案,可以实现跟踪配置的详细历史记录,掌握配置修改的全过程,这样利于排查问题,比如识别误操作或恶意操作;系统出现问题时可以从历史记录中给出确切的证据,说明是由哪些人员何种操作导致的。
需要说明的是,对于前述的各方法实施例,为了简单描述,故将其都表述为一系列的动作组合,但是本领域技术人员应该知悉,本发明并不受所描述的动作顺序的限制,因为依据本发明,某些步骤可以采用其他顺序或者同时进行。其次,本领域技术人员也应该知悉,说明书中所描述的实施例均属于优选实施例,所涉及的动作和模块并不一定是本发明所必须的。
在上述实施例中,对各个实施例的描述都各有侧重,某个实施例中没有详述的部分,可以参见其他实施例的相关描述。
在本申请所提供的几个实施例中,应该理解到,所揭露的装置,可通过其它的方式实现。例如,以上所描述的装置实施例仅仅是示意性的,例如所述单元的划分,仅仅为一种逻辑功能划分,实际实现时可以有另外的划分方式,例如多个单元或组件可以结合或者可以集成到另一个系统,或一些特征可以忽略,或不执行。另一点,所显示或讨论的相互之间的耦合或直接耦合或通信连接可以是通过一些接口,装置或单元的间接耦合或通信连接,可以是电性或其它的形式。
所述作为分离部件说明的单元可以是或者也可以不是物理上分开的,作为单元显示的部件可以是或者也可以不是物理单元,即可以位于一个地方,或者也可以分布到多个网络单元上。可以根据实际的需要选择其中的部分或者全部单元来实现本实施例方案的目的。
另外,在本发明各个实施例中的各功能单元可以集成在一个处理单元中,也可以是各个单元单独物理存在,也可以两个或两个以上单元集成在一个单元中。上述集成的单元既可以采用硬件的形式实现,也可以采用软件功能单元的形式实现。
所述集成的单元如果以软件功能单元的形式实现并作为独立的产品销售或使用时,可以存储在一个计算机可读取存储介质中。基于这样的理解,本发明的技术方案本质上或者说对现有技术做出贡献的部分或者该技术方案的全部或部分可以以软件产品的形式体现出来,该计算机软件产品存储在一个存储介质中,包括若干指令用以使得一台计算机设备(可为个人计算机、移动终端、服务器或者网络设备等)执行本发明各个实施例所述方法的全部或部分步骤。而前述的存储介质包括:U盘、只读存储器(ROM,Read-Only Memory)、随机存取存储器(RAM,Random Access Memory)、移动硬盘、磁碟或者光盘等各种可以存储程序代码的介质。
以上所述仅为本发明的优选实施例而已,并不用于限制本发明,对于本领域的技术人员来说,本发明可以有各种更改和变化。凡在本发明的精神和原则之内,所作的任何修改、等同替换、改进等,均应包含在本发明的保护范围之内。