专利名称:一种面向全文检索的结构化数据安全检索方法
技术领域:
本发明涉及计算机搜索引擎信息检索技术领域,具体是一种面向全文检索的结构化数据安全检索方法。
背景技术:
当前随着政府信息化的不断发展,其业务数据也成海量形式增长,全文检索在政府信息化中的应用日趋广泛。然而这些业务信息都以数据库为媒介存储,同时业务数据本身在类型和访问权限也上才存在差异,如公文、通知公告、会议纪要以及通讯录等信息,不同的用户群体对业务数据拥有不同的访问权限。以会议纪要为例,只有上级领导和指定人员才能接触到这些数据,其他人员无权访问,因此全文检索系统需要具有按约束条件检索某些信息来实现安全检索。目前各类全文检索系统也提供了安全检索的功能,其解决方案为全文检索系统通常由信息抓取、分词、索引和检索四个部分构成,其中索引是对数据重新编排的重要过程,因此实现安全检索可通过将数据的权限、分级等约束条件同时记录到索引中,当用户检索信息时,根据用户所属的权限从索引中提取相应的数据。大多数全文检索系统采用上述方法来实现安全检索,这种将数据约束条件写入索引的方式尽管能解决安全性的问题,然而一旦数据的约束条件发生变化,索引也要随之更改。众所周知,一旦索引建成后在一定时间段内是不会变更的,同时用户在检索的过程中也不允许索引发生改变。如果业务数据A的约束条件发生变化,例如将之前具有访问权限的用户B设置为不能访问,这样在短时间内如果不具访问权限的用户B进行检索,由于业务数据A的约束条件并不能立即在索引中体现,这样导致不具备访问权限的用户B依然会检索到业务数据A并且访问,导致数据泄漏或者其他不安全问题的发生。
发明内容
本发明提供一种面向全文检索的结构化数据安全检索方法,可在业务数据的约束条件发生变化时,在不变更索引的情况下保证检索的安全性。本发明提供一种面向全文检索的结构化数据安全检索方法,包括a)根据检索用户提供的关键词在索引中提取检索记录,所述检索记录包括业务数据的内容和全球唯一标识符(Globally UniqueIdentifier, GUID);b)从所述检索记录中取出一条业务数据的内容和GUID,并获取当前检索用户的 GUID ;C)将取出的业务数据的⑶ID与数据访问控制表中业务数据的⑶ID进行匹配,若匹配成功表明该业务数据设置有访问权限,所述数据访问控制表包括业务数据的GUID、与业务数据的GUID对应的用户GUID及约束条件;d)将当前检索用户的GUID与数据访问控制表中匹配成功的业务数据对应的用户 GUID进行匹配,若匹配成功则将该业务数据放在检索结果中;若匹配不成功则删除检索记录中的该条业务数据;e)判断检索记录中是否还有业务数据,如果判断结果为是则返回步骤b),如果判断结果为否则结束流程。本发明提供的检索方法通过在数据库中设置数据访问控制表,将根据关键词在索引中提取的初步检索记录在数据访问控制表中作进一步筛选,将与数据访问控制表匹配的检索结果呈现给当前检索用户,若匹配不成功则删除检索记录中的该条业务数据,这样业务数据权限的变更可通过数据访问控制表进行实时变更,业务数据的权限的变化不对全文检索的索引产生影响,即业务数据权限的变化不必变更索引也可实现安全检索,可大大提高检索的方便性。
图1是本发明面向全文检索的结构化数据安全检索方法的流程示意图。
具体实施例方式下面将结合本发明中的附图,对本发明中的技术方案进行清楚、完整地描述。图1所示为本发明面向全文检索的结构化数据安全检索方法的流程示意图,包括如下步骤步骤1 在数据库中建立数据访问控制表,所述数据访问控制表包括业务数据的 GUID、与业务数据的GUID对应的用户GUID及约束条件,所述约束条件是业务数据对应的用户对于业务数据的访问权限,例如读权限、写权限、下载权限等。业务数据包括公文、通知公告、会议纪要以及通讯录等一系列业务数据资源,通过结构化数据记录方式可将上述数据存储在数据库中。不同类型的业务数据存储在不同的数据表中,数据表包含业务数据的 ⑶ID、业务数据内容等信息。假设“关于XXX的通知”为业务数据DataA,如果业务数据DataA是带权限的数据, 且与业务数据DataA对应的有3个具有访问权限的用户,建立的数据访问控制表的形式如下DataAWGUID;对于A用户(A用户⑶ID),对DataA可读;对于B用户(B用户⑶ID),对DataA可读、可写;对于C用户(C用户⑶ID),对DataA可读、可下载;类似地,对于其他需要设置访问权限的业务数据也可根据上述形式设置,最终对所有需要设置访问权限的业务数据业务数据在数据库中建立数据访问控制表。步骤2 根据检索用户提供的关键词在索引中提取检索记录,所述检索记录包括业务数据的内容和⑶ID。其中索引是利用全文检索系统将整合后的业务数据通过索引器建立的,包括对数据进行预处理分词、建立索引文件等,全文检索中的索引创建过程不属于本发明所阐述的范围,在此不再详细叙述;索引应包含业务数据在数据库中对应的GUID、数据内容和时间等基础数据。用户提供关键词后,根据关键词在预先建立的索引中提取检索记录,所述检索记录为检索到的业务数据在索引中的一部分基础数据,例如业务数据的内容和GUID。
4
步骤3 从所述检索记录中取出一条业务数据的内容和GUID,并获取当前检索用户的GUID。步骤2中的检索记录是根据关键词得到的一个初步的检索结果,其还不能立即显示给检索用户,还需要进一步与步骤1中建立的数据访问控制表作进一步地匹配和筛选。 具体的,从步骤2的检索记录中取出一条业务数据,同时获取当前发出检索请求的用户的 ⑶ID。因为检索记录中的每条记录包括业务数据的内容及该业务数据的⑶ID,所以从检索记录中取出的这条业务数据也包含该条业务数据的内容和GUID。具体选取的方式可是是顺序选取,也可以是随机选取,在此不做限定。步骤4 将取出的业务数据的GUID与所述数据访问控制表中业务数据的GUID进行匹配,若匹配成功则表明该业务数据设置有访问权限。具体的,将取出的业务数据的GUID与步骤1建立的数据访问控制表中所有业务数据的GUID进行匹配,若匹配成功则表示该业务数据设置有访问权限,即该业务数据是需要有相关权限的用户才可以访问的,如果匹配不成功则表明据访问控制表没有对该业务数据进行访问限制,可以不做处理。假设取出的业务数据为“关于XXX的通知”的DataA,因为数据访问控制表中存在DataA的⑶ID,因此从检索记录中取出的业务数据DataA的⑶ID可以在数据访问控制表中找到匹配的GUID。步骤5 将当前检索用户的GUID与数据访问控制表中匹配成功的业务数据对应的用户GUID进行匹配,若匹配成功则将该业务数据放在检索结果中;若匹配不成功则删除检索记录中的该条业务数据。假设当前发出检索请求的为用户A,根据步骤1中数据访问控制表的描述,用户A 对于DataA具有可读权限,因此当前检索用户A的GUID与数据访问控制表中DataA对应的用户是可以匹配成功的,此时表明当前检索的用户可以对DataA进行访问,然后将该业务数据A放在检索结果中,检索结果现在可以呈现给用户显示,例如业务数据DataA的内容就可呈现给用户A显示,由于设置给用户A的为读权限,用户A可以浏览整个业务数据DataA 的内容。如果当前检索用户为D,因为数据访问控制表中DataA没有对用户D设置权限,说明用户D不具备对DataA的访问权限,此时用户D的GUID与数据访问控制表中DataA对应用户的⑶ID匹配就不成功,因此业务数据DataA并不在最后的检索结果中,并且将DataA 从检索记录中删除,由此可实现安全检索的目的。步骤6 判断检索记录中是否还有业务数据,如果判断结果为是,则表明检索记录中还有业务数据,返回步骤3进行下一轮的匹配和筛选;如果判断结果为否,则表明检索记录中所有的业务数据都已经过数据访问控制表的筛选,可以结束整个检索流程。在实际应用过程中,如果需要解除某业务数据的访问权限,只需在数据访问控制表中删除该业务数据记录即可,无需再执行其他操作。例如,某领导之前将“关于XXX的通知”的DataA设置为对用户A可读,但是后来发现用户A是另一科室的成员,是不应该访问该业务数据的,现在通过将数据访问控制表业务数据DataA对应的用户A的记录删除,其更改是实时的,在数据访问控制表更改后,用户A下次检索业务数据DataA时,根据前面步骤的描述,在检索结果中就不会出现业务数据DataA的内容了,从而可以对业务数据访问权限进行实时更改,相对于现有技术不需要更改索引即可实现安全检索。如果需要对某条业务数据添加访问权限,可在数据访问控制表中直接添加该业务数据的访问控制信息,例如授权访问的用户及约束条件等。例如,若现在需要增加用户D对业务数据DataA可读的访问权限,只需要在数据访问控制表中添加如下记录DataA 的 GUID ;对于D用户(D用户⑶ID),对DataA可读;即可,下次用户D检索时即可在检索结果中呈现DataA的内容。相应的,对于某条业务数据约束条件的更改也可实时进行,例如将DataA对于用户A的可读权限修改为可读可下载权限,只需要在数据访问控制表中做如下更改即可DataA 的 GUID ;对于A用户(A用户⑶ID),对DataA可读、可下载;相对于之前的检索,检索结果不仅呈现DataA的内容,还提供可下载的文档供用户A下载。本发明提供的检索方法通过在数据库中设置数据访问控制表,将根据关键词在索引中提取的初步检索记录在数据访问控制表中作进一步筛选,将与数据访问控制表匹配的检索结果呈现给当前检索用户,若匹配不成功则删除检索记录中的该条业务数据,这样业务数据权限的变更可通过数据访问控制表进行实时变更,业务数据的权限的变化不对全文检索的索引产生影响,即业务数据权限的变化不必变更索引也可实现安全检索,可大大提高检索的方便性,业务数据的约束条件的变化对用户来说是透明的,也是实时的,可达到所见即所得的效果。可以理解的是,本发明的安全检索方法在普通检索领域也可以适用,并不限定在全文检索领域。以上所述,仅为本发明的具体实施方式
,但本发明的保护范围并不局限于此,任何属于本技术领域的技术人员在本发明揭露的技术范围内,可轻易想到的变化或替换,都应涵盖在本发明的保护范围之内。因此,本发明的保护范围应该以权利要求的保护范围为准。
权利要求
1.一种面向全文检索的结构化数据安全检索方法,其特征在于包括a)根据检索用户提供的关键词在索引中提取检索记录,所述检索记录包括业务数据的内容和全球唯一标识符(Globally UniqueIdentifier, GUID);b)从所述检索记录中取出一条业务数据的内容和GUID,并获取当前检索用户的GUID;c)将取出的业务数据的⑶ID与数据访问控制表中业务数据的⑶ID进行匹配,若匹配成功表明该业务数据设置有访问权限,所述数据访问控制表包括业务数据的GUID、与业务数据的GUID对应的用户GUID及约束条件;d)将当前检索用户的GUID与数据访问控制表中匹配成功的业务数据对应的用户GUID 进行匹配,若匹配成功则将该业务数据放在检索结果中;若匹配不成功则删除检索记录中的该条业务数据;e)判断检索记录中是否还有业务数据,如果判断结果为是则返回步骤b),如果判断结果为否则结束流程。
2.如权利要求1所述的检索方法,其特征在于在步骤b)之前还包括步骤a)在数据库中建立所述数据访问控制表。
3.如权利要求1所述的检索方法,其特征在于所述约束条件是业务数据对应的用户对于业务数据的访问权限。
全文摘要
一种面向全文检索的结构化数据安全检索方法,包括a)根据检索用户提供的关键词在索引中提取检索记录;b)从所述检索记录中取出一条业务数据的内容和GUID,并获取当前检索用户的GUID;c)将取出的业务数据的GUID与数据访问控制表中业务数据的GUID进行匹配;d)将当前检索用户的GUID与数据访问控制表中匹配成功的业务数据对应的用户GUID进行匹配,若匹配成功则将该业务数据放在检索结果中,若匹配不成功则删除检索记录中的该条业务数据;e)判断检索记录中是否还有业务数据,如果判断结果为是则返回步骤b)。本发明提供的检索方法使得业务数据权限发生变化不必变更索引也可实现安全检索,可大大提高检索的方便性。
文档编号G06F17/30GK102262633SQ20101018900
公开日2011年11月30日 申请日期2010年5月27日 优先权日2010年5月27日
发明者吴余龙, 沈启星, 秦林勇 申请人:武汉力龙数码信息科技有限公司