信息搜索和存取授权方法

文档序号:6611386阅读:184来源:国知局
专利名称:信息搜索和存取授权方法
技术领域
本发明涉及计算机软件、信息处理、数据库管理应用和信息安全技术领域。
技术背景信息搜索是计算机信息处理,尤其是数据库管理应用的相关软件系统中普遍具备的基本功能。搜索的 实质含义,是给定适当条件并找出符合条件的信息,其同义词包括诸如检索、查询、査找等类似的词语。 一个实用的软件系统通常涉及多种信息类别,而不同信息类别之间的基本差异就在于它们具有不同的数据 记录结构。信息搜索的处理过程一般都要呈现相应的软件操作界面,即搜索界面,让用户指定搜索条件; 而为了搜索不同类别的信息,通常的做法是相应呈现与信息的数据记录结构相关的不同搜索界面。有的软 件为了增强搜索功能,达到能够按照信息记录结构的任意字段进行搜索之功效,甚至将信息记录的录入界 面直接用作搜索界面。搜索界面因信息类别不同而呈现多样化的方法存在明显的缺陷, 一是加重用户适从 负担,二是增加软件开发时间成本,三是导致软件的设计界面和编程代码不易移植和复用。本发明人在"信 息处理方法"发明(中国专利申请号95118084. 3,公开号CN1131767)中,曾提出针对抽象信息结构独立 编程而实行量化查询的思路,但还未给出完整通用的搜索方法。存取授权也是计算机信息处理,尤其是数据库管理应用的相关软件系统中事关信息安全的重要功能。 用户对信息的存取(包括搜索)必须经过授权,才能保障信息被合法、安全、有序地使用。微软公司在其 IIS和ASP.NET服务软件中,在安全性方面采取对文件、IP地址/URL及角色的授权措施;在其SQL Server 数据库管理系统软件中,可以为登录用户指定许可访问的数据库和所在数据库中的角色,也可对数据库中 的表和列指定存取权限。许多数据库管理应用软件实施存取授权的主要办法,也仅限于为用户就许可存取 的信息类别,在增加、删除、查询、修改诸操作权限意义上加以区别授权。现有的存取授权方法,仍局限 于在文件、数据库、数据表级别对象上的授权,尚未深入到信息内部的细分内容范围,而这在实际应用中 往往又是十分必要的。发明内容本发明提出一种信息搜索方法,旨在为简化与规范软件的信息搜索功能实现,提供一种新的思路。信息搜索的实质抽象,是先构造筛选器(或称过滤器),然后用之于搜索,从而获得所需信息。 一个 筛选器基本上包含两个部分 一个条件集和一种条件组合逻辑。条件集由一组条件构成,每项条件可表达 为数据记录字段名、运算符、条件值的三段式连贯表示形态,例如"年龄《28"。 一种信息类别通常对 应一种数据记录结构,在数据库中则对应一个表结构,字段名即表中的列名或列的别名。记录字段(即数 据表的列)除了具有名称之外,还具有诸如数据类型、数据长度和精度等属性,其中,数据类型至为关键。 在数据库管理系统中,所有字段都有确定的数据类型。运算符亦称操作符,是在条件中表达比较关系的符 号,可以是数学意义上的数值比较符号,比如从这样一组符号(逗号分隔){<,《,=,#,》,>,Max, Min, G, }中取其一,其中,"Max"和"Min"分别定义表示"最大值"和"最小值"的运算符,统称 为"极值"运算符,和"◎"分别定义表示"介于…范围之内"和"介于…范围之外"的运算符, 统称为"区间"运算符;还可以是语言谓词意义上的符号,比如从这样一组词汇(逗号分隔){是,非,包 含,不含,左含,右含,空白}中取其一。所述运算符,包括极值运算符和区间运算符,并不局限于如上 所示符号,而是可以自由定义的。运算符的选用与字段的数据类型有密切关系,例如,数值数据类型的字 段适用数值比较符号,文字数据类型的字段适用语言谓词符号。条件值的取值与字段的数据类型有关,对 数值数据类型取值为数值,对文字数据类型取值为文本字符串。有的文字数据类型字段的数据有预知的有 限选项,比如,性别只有"男"、"女"、"不详"三个选项,则在将其编码字典化处理之后,字段的数据 类型可改成整数型,条件值即为选项编码或其外在字典项名。条件值的数目不但与字段名(即其数据类型) 有关,而且与运算符有关。例如,在关于人的身份信息的记录结构中,字段名"年龄"的数据类型属于数 值类型,"年龄《28"表示"年龄小于或等于28",条件值只有一个即"28";特别地,"年龄Max"和"年龄Min"分别表示"年龄最大"和"年龄最小",条件值即为空,而"年龄E 28 38"和"年龄◎ 28~ 38"则分别表示"年龄介于28至38范围之内"和"年龄介于28 38范围之外",条件值即为一数值界偶 (即由一个基值和一个上限构成用于表示范围的一对数值)。条件集一般包含一项以上条件,但其特例可 以为空集,即意味着无条件。当条件集包含两项以上的多项条件时,则需明确其中所有条件共同作用的逻 辑组合关系。条件组合逻辑一般是"与"、"或"、"非"等,在构造筛选器时明确指定,或者,若不指定则 隐含确定之。为了控制搜索结果的输出显示顺序,可以选择性地,将筛选器的构成扩展到包含用来排序和 /或分组的字段标识,以及排序方式(即升/降,亦即递增/递减)的指示。
设计一种软件操作界面,即搜索界面,来构造筛选器。搜索界面布置的核心,是一个用于构造条件的 组件,该组件的构成对应于条件的三段式表达形态,包括三部分构件 一个包容和显示字段名的列表,一 个包容和显示运算符的列表,和一个或多个用于输入条件值的列表或编辑框或其他类型控件。本发明所说 的列表,是指可包容、显示多项数据和提供选取操作的窗体控件,有多种形态的可以选用,如下拉列表框、 平展的列表框、多列的列表框、数据表格(即数据网格),等。在搜索界面打开期间,软件程序的基本处 理流程是,先将对应信息类别记录结构的部分字段乃至全部字段的名称或别名填充第一列表,并装载对应 字段的属性,进而根据用户选择的字段,査知所选字段属性中的数据类型,据此填充相应一组运算符到第 二列表,然后,根据用户选择的运算符,呈现条件值构件(即控件)供用户输入条件值。对于数值数据类 型的字段,若所选运算符(比如"=")使得条件值应为单值时则呈现一个编辑框,若所选运算符(比如 区间运算符)使得条件值应为界偶时则呈现一至两个编辑框,若所选运算符(比如极值运算符)使得条件 值应为空时则可禁用(即禁止输入)或不呈现(即隐藏)条件值控件;对于文字数据类型的字段,只需呈 现一个编辑框作为条件值控件;对于编码字典化的字段,则呈现第三列表作为条件值控件,其中填充对应 字典选项供用户选择;对于日期、时间数据类型的字段,既可视为数值类型的字段同样对待,也可呈现相 应的专用控件。核心组件的界面构成和运作处理,其三构件之间是密切相关和敏感联动的因第一列表字 段名的选定而关联地决定第二列表运算符的装入,又因第二列表运算符的选定而关联地决定条件值构件的 呈现类型和数目。特别地,在关联填充到第二列表的运算符中,至少有一组运算符包含极值运算符和/或 区间运算符,以增进条件作用于筛选的功能、效率和灵活性。当极值运算符被选中时无须输入条件值,而 当区间运算符被选中时则可输入一界偶为条件值。界面布置的构造条件组件的三部分构件,即第一列表、 第二列表和供输入条件值的第三列表或编辑框或其他类型控件,按照阅读的习惯顺序自左向右连接,基本 上横向排列,方便用户观察理解和选择输入,而每当用户在此三构件上选择确定了选项和数据, 一项条件 的构造即告完成,反映在界面上的直观视觉效果即表现为等同或近似于(即等效于)条件的三段式表达形 态。对于习惯上自右向左阅读的语言文字,则可考虑将上述三部分构件的顺序逆转排列。上述三部分构件 虽然也可以顺序纵向排列,但是,采取基本上横向顺序排列的布置方式是本设计的特征,更能体现构件之 间的关联性和构造条件过程的直观性。搜索界面布置另外一个列表,称为第四列表,用来收集如上所述所 构造的条件,结果形成条件集。搜索界面布置有一个或一组选择控件,罗列了条件的可选组合逻辑关系, 有默认选项并可任意改变选择。 一个明确的条件集及其条件组合逻辑,即构成了一个基本上完整的筛选器。 进而,还可以对这样构成的筛选器加以扩展,以便控制搜索结果的输出显示顺序,采取的办法是对前面所 设计的搜索界面做两点改进 一是在构造条件的组件之内添加选择性输入控件(如复选框、下拉列表框等), 供选择指明具体字段是否用于排序和/或分组,而用户输入的选择则作为条件的附加标识记入条件集;二 是在构造条件的组件之外添加选择性输入控件(如单选框、下拉列表框等),供选择指明排序方式,而用 户输入的选择则与条件集、组合逻辑并列记入筛选器。将筛选器保存到数据库中作为备案,便可供随时检 索和重复使用。为此,搜索界面还可以专门设置一个列表和一个文本编辑框,前者用来包容和显示既有筛 选器备案,从中可方便检索、浏览和选取,后者用来输入新的筛选器备案名称以便保存筛选器。搜索界面 还包括一些辅助的按钮控件,定义功能包括将在构造条件的组件中完成构造的条件送入第四列表的条件 集,或反之从第四列表的条件集中提取和移出现有条件送入构造条件的组件,清空条件集列表,确认筛选 器,命名、保存和删除筛选器备案,等等。
上述的搜索界面有两种典型设计模式 一种是分离布置模式,将构造条件的组件与收集条件的第四列 表分离布置,概念和层次分明;另一种是集成布置模式,将构造条件的组件与收集条件的第四列表集成布置,使构造条件组件的构件分别布置在第四列表的对应列位置,并随外部操作的指向而适时、动态地呈现 或隐蔽在所处列表的行位置,操作直观简洁。集成布置模式是对分离布置模式的精简,还可采用一个巧妙 的办法,是在第一列表除字段名选项之外,或在第二列表除运算符选项之外,附加一个表示消除或删除含 义的选项,比如"<消除>",而当选中该附加选项时,则删除第四列表中的当前行位置上的条件,如此可 省去一个于第四列表外部删除条件的按钮。集成布置模式的一种变通设计方法,是以收集条件的第四列表 的字段名列,取代构造条件组件的字段名列表(即第一列表),而将原本要填充到后者的字段名改而直接 填充到前者,构造条件组件的字段名列表即可省略不用。本发明的搜索界面还可应用于移动终端(如手机、 PDA等)上实施的搜索,而鉴于移动终端的显示屏幕往往尺寸受限,集成布置设计模式显得更为适用。
如此设计的搜索界面,可以适用于不同的信息类别,亦即具有通用性。实际上,这样的搜索界面应用 于不同的信息类别,唯一的差别仅在于第一列表(即字段名列表)所填充内容,即信息类别对应字段集的 不同;至于搜索界面的结构特征、软件程序基本处理流程,以及用户操作基本步骤,则都可以是相同或近 似的,本发明称之为是同构的。为了能够将同构的搜索界面应用于不同信息类别,只需着重解决对应信息 类别字段集装入字段列表的问题。解决的一种办法是,将同一个软件所涉及的信息类别分类编码,创建专 门的字段数据表,用于登记各类信息需在搜索时引用作条件的部分字段乃至全部字段的信息,其中包括信 息类别编码、字段名、字段别名,以及字段属性(数据类型、数据长度、数据精度等)。于是,在为具体 信息类别打开搜索界面时,只需针对该信息类别,关联地从该字段数据表中检索装入属于同一信息类别的 字段集到第一列表即可。
在字段属性中,数据长度和数据精度是基本属性,可以用来验证条件值输入的有效性。为了更严格、 更有效地验证条件值,还可以将验证规则的正则表达式登记为字段的附加属性而用于验证。为了使搜索界 面更加友好方便,还可以将字段数据的关联帮助信息登记为字段的附加属性,用于即时提示条件值的输入 方法和样例。
搜索界面的实现形式,在一般应用软件中可以是窗体,在WEB应用软件中可以是页面,而在各种应用 软件模式下都可以作为定制控件。为了便于移植和复用,可以作为中间件实现为动态链接库(DLL)文件。 对于筛选器,可以附加一些说明信息,如筛选器的编码、名称、信息类别、属主的用户名称或用户代码、 构造修改时间等,以便备案保存。将筛选器作为备案保存到数据库中,可以作为数据记录保存到数据库内 部表,也可以作为数据文件存储于数据库之外,或者,还可以结合这两种方式,将筛选器的说明信息、组 合逻辑和排序方式存储于数据库表,而将筛选器的条件集存为外部数据文件。由于筛选器备案记录中包含 了信息类别,即能够按信息类别进行分类检索,从而实现筛选器备案按照信息类别分类存储和使用。又由 于筛选器备案记录中包含了用户名称或用户代码,即能够按用户名称或用户代码进行分类检索,从而实现 筛选器备案按照用户名称或用户代码分类存储和使用。
筛选器用之于搜索过程,系由软件提取筛选器并解释执行。为了提高执行效率,可以针对筛选器中各 种可能的条件组合,预先设计一组参数化的数据库存储过程,以供调用执行。 一种更为灵活、简洁的方式, 是将筛选器中的条件集及其组合逻辑和排序方式,转换生成相应的SQL査询条件字符串,然后用之于SQL 査询语句中的WHERE子句。筛选器之条件集中的每项条件,其中的运算符在SQL语言中都有对应的关键字 表示,对数值类型有比较操作符或函数(如"<"、"< ="、"<〉"、"〉="、">"、"MAX O"、 "MIN O",等),对文字类型有字符操作符(如"LIKE"、通配符"%",等),对其他类型亦可借用前两种 操作符,因而条件的表达式都容易生成;对标识排序的字段,收集之以逗号分隔排列,导之以"SORTBY", 再附加筛选器之排序方式在SQL语言中对应的关键字("ASC"或"DESC"),构成排序子句;对标识分组的 字段,收集之以逗号分隔排列,导之以"GROUP BY "构成分组子句;筛选器之条件组合逻辑,在SQL语 言中也有简单对应的逻辑操作符关键字(如"AND"、 "0R"、 "N0T",等)。于是,将条件集中的各项条件先 分别转化成SQL条件表达式子字符串,将这些子字符串用条件组合逻辑所对应的SQL语言中的逻辑操作符 关键字相连接,再连接排序子句和分组子句,即可生成筛选器相应的SQL查询条件字符串。这样的转换功 能,在软件程序代码中,可实现为过程、子程序或功能函数。
本发明通过对筛选器的归纳抽象和搜索界面的设计,以及软件程序相关处理,实现了一种可以通用的同构信息搜索方法。由于基于信息记录结构字段,尤其对数值类型字段注重数量化意义上的比较,使得这 样的搜索相对于纯文本意义上的搜索,体现了量化搜索的效率优势。又由于引入了排序和分组选项,以及 排序方式选项,使得这样的同构搜索的结果,其输出显示还可以是有序的。
本发明还提出一种存取授权方法,是上述信息搜索方法的延伸应用,其基本思路是将筛选器用于存取 授权目的。
在计算机软件系统,尤其是数据库管理应用系统中,用户(包括组) 一般分为两类角色 一类是经常 实际搜索、存取信息的普通用户,在此称之为搜索用户; 一类是承担系统管理,包括信息管理和用户管理 职责的特权用户,称之为管理员。虽然管理员也可以如同搜索用户那样使用系统,但其主要职责之一是为 管制用户存取信息的权力而进行存取授权。存取授权的方法,是为用户制订授权方案,类似于为用户定义 角色或级别。授权方案中,包括对各种信息类别(即信息对象)规定存取操作权限,如禁止、只读、只写、 读写、删除,等。特别地,在授权方案中,还为涉及的信息类别引入相应的筛选器,以便将对具体类别信 息的存取操作进一步深入细化到该类信息的特定内容范围。如此用于授权的筛选器,称之为授权筛选器。 授权筛选器由管理员预先独立构造和指定,搜索用户既不能改变,也不能屏蔽其作用。相对于授权筛选器, 由搜索用户构造和使用的筛选器则称之为搜索筛选器。每当用户搜索具体类别的信息时,逻辑上,信息数 据记录首先经过该类别信息的授权筛选器的筛选,然后再经过该类别信息的搜索筛选器的筛选,最终才获 得搜索结果。管理员所确定的授权筛选器在搜索过程中所起的作用是强制性的,而搜索用户所确定的搜索 筛选器并不能排除其作用。
考虑实际应用情形,尤其是在大型管理应用软件中,管理员可以有多个,他们相互之间可以是平行对 等关系或分级从属关系。于是,允许多个管理员各自构造和指定自己的授权筛选器,总的授权筛选器即是 这样的多重(即多个)授权筛选器叠加合成而得。逻辑上,信息数据记录经过总的授权筛选器的筛选过程, 实质上是逐个地经过多重授权筛选器的层层筛选的过程。多重授权筛选器的排列或作用顺序无关紧要,最 终的筛选效果实际上是相同的。多重授权筛选器,展现了多个管理员协同授权的体制安排。
授权筛选器可以向搜索用户公开,以便搜索用户能够确切知道其所获得的实际存取授权之详情,当然, 搜索用户除非是管理员,否则不能够修改授权筛选器;也可以选择不向搜索用户公开,而使得授权筛选器 对搜索用户是透明的,即让用户直观感觉不到也无须意识到授权筛选器的存在,但授权筛选器确实在搜索 过程中隐含地起作用。
管理员构造授权筛选器, 一种办法是采用某种适当的语言如SQL,将存取授权规则直接编辑成文本字 符串;另一种简明便捷的办法,是如同搜索用户构造搜索筛选器那样,使用与搜索界面相同或近似的操作 界面,来构造授权筛选器。由于授权筛选器只关注信息的内容范围,而不理会信息的记录顺序,故授权筛 选器中无须标识排序/分组字段,也无须考虑排序方式。若借用搜索界面构造授权筛选器,则可禁用或隐 藏界面上的排序、分组和排序方式的选项控件及其在条件集列表中对应的排序、分组标志列。如果使用相 同或近似的操作界面构造,并且采用相同或相似的方式存储,则称授权筛选器与搜索筛选器是同构的。
为实施授权筛选器强制性地作用于搜索过程的机制,可以在搜索用户确定搜索筛选器之后,由软件程 序代码将授权筛选器和搜索筛选器,先各自分别转换生成相应的SQL查询条件字符串,然后将两者的SQL 査询条件字符串,再进行逻辑"与"而合成为最终的SQL査询条件字符串。将如此合成所得的SQL査询条 件字符串,用之于搜索过程,即能保障授权筛选器和搜索筛选器的共同作用。至于将授权筛选器转换生成 相应的SQL査询条件字符串,当授权筛选器有多重时,简单的办法是先将各个授权筛选器分别转换生成相 应的SQL査询条件子字符串,然后再将各个子字符串进行逻辑"与"而合成为新的SQL査询条件字符串。 当然,还可以在此转换过程中,剔除重复条件的冗余,优化合成的SQL査询条件字符串。
本发明通过引入筛选器应用于存取授权,实现了可以通用的精确存取授权方法。在软件应用层面,这 种精确授权方法还可以用来安排工作、分配任务,以及在信息处理流程中发挥制约和协调作用。由于授权 筛选器可多重叠加,使得协同精确授权成为可能。


图1是本发明的图示。条件构造(10)组件,包括四个构件字段名(11)列表(即第一列表)、运算符(12)列表(即第二列表)、条件值(13)构件、序组标识(15),其中,前三个构件是基本的。另有 取值提示(14)是辅助性的,用于显示输入条件值的关联帮助信息。字段名(11)列表装入的是具体信息 类别的字段集,数据来源于数据库(30)。运算符(12)列表,随字段名(11)选项的确定,关联地装入 相应一组运算符,特别地,对数值类型字段,装入的一组运算符可包括极值运算符和区间运算符。条件值(13)构件,随运算符(12)选项的确定,关联地呈现0至2个编辑框,或呈现一个列表(即第三列表) 或其他类型控件,以供输入条件值。图中的虚线箭头表明了这些联动的关系和方向。序组标识(15)可以 或缺,用于指明所选定的字段名(11)是否用于对搜索结果记录集进行排序和/或分组。筛选器(20)包 括三个构件条件集(21)列表(即第四列表)、组合逻辑(22)选项控件、排序方式(23)选项控件, 其中,前两个是基本的,后一个是扩展的、可或缺的。条件构成(10)组件构造的条件可以加入条件集(21) 列表,反之也可以从后者提取条件送入前者。组合逻辑(22)选项控件记录选定的条件组合逻辑。排序方 式(23)选项控件记录选定的排序方式。筛选器(20)可以被保存为备案到数据库(30),也可以从数据 库(30)检索和提取备案到筛选器(20)。搜索过程(40)包括两个逻辑过程授权筛选(41)、搜索筛选(42)。授权筛选(41)又由授权筛选(410)至(41n)共n (》1)个多重叠加而成。筛选器(20)既可 以作为授权筛选器用于授权筛选(41)过程,也可以作为搜索筛选器用于搜索筛选(42)过程。搜索过程(40)表明,从逻辑上看,数据库(30)中的信息(即数据记录),先经过授权筛选(41),再经过搜索筛 选(42),最终才获得搜索结果(43)。其中,经过授权筛选(41)的过程,实质上是逐个地经过授权筛选(410)至(41n)的过程。图中的实线箭头表明了这些信息流动与处理流程的环节和方向。图2是本发明之搜索界面的一个设计实例的窗体截屏图示,按照前述的分离布置模式设计实现。界面 的标题是"搜索条件"。[条件备案]即筛选器备案,"原案"右侧下拉列表框列出既有筛选器备案,"新案" 右侧文本框供输入新备案名称之用;"删除"按钮针对"原案","保存"按钮针对"新案"。[条件构造]组 件包括"字段名"下拉列表框、"运算符"下拉列表框、"条件值"属下的一对文本编辑框分别表示取值范 围的基值和上限,以及一个隐藏的下拉列表框仅当字段数据类型为字典时显现(同时将隐藏文本编辑框 对)。[条件构造]组件的"字段名"下拉列表框下边,还有"口排序口分组"复选项,用于标识选定字段 是否用于排序和/或分组,默认为未选标识。[条件列表]即条件集,"r'按钮将上面[条件构造]中形成的 条件加进下面[条件列表]中,"t "则提取下面[条件列表]中的当前条件送入上面[条件构造]中以便修改。 排序方式单选项"〇升(Asc)〇降(Desc)"默认选择"〇升(Asc)",组合逻辑单选项"〇与(And) O 或(Or)"默认选择"与(And)",均可随意改变选择。[条件列表]之条件集,连同排序方式和组合逻辑之 选项则组成筛选器,保存之则为备案,选定备案则将填充显示筛选器。"清空"按钮清除[条件列表],"确 认"按钮确定采用当前筛选器,"返回"则放弃并直接返回。图3是本发明之搜索界面的另一个设计实例的窗体截屏图示,按照前述的集成布置模式设计实现。该 设计是在图2设计的基础上的一种精简实现,主要差别在于,取消了[条件构造]组件的固定分离布置,而 将其隐含布置于[条件列表]中,仅当输入指向需要时才临时地、动态地显现组件的相应构件。当点击[条 件列表]中的某行既有条件时,根据获得焦点的具体列位置而在同一行上引发下列响应中的其中一种在 "字段名"列显现"字段名"下拉列表框,在"运算符"列显现"运算符"下拉列表框,在"条件值"列 显现"条件值"适用控件,在"排序"列显现"排序"复选框,在"分组"列显现"分组"复选框。若按 照前述的变通方法,则可省略"字段名"下拉列表框不用,可在[条件列表]中的"字段名"列预先填充所 需字段名。新增的"添加"按钮在[条件列表]中增加一个新行,显现[条件构造]组件的构件,整齐排布在 新行上的对应列,以供输入新条件;新增的"删减"按钮删除[条件列表]中当前焦点所在行的条件。其余 部分与图2相同。
具体实施方式
以下是实施本发明的实例,按WEB应用程序方式实施,且基于SQL Server数据库管理系统。 实施信息搜索方法。第一步,分类登记信息字段。为软件管理涉及的所有信息类别统一编码,定义一个整型基的枚举常量 表示之。在数据库中创建一个数据表,命名为CndFields,表结构的列包括《DataSort (tinyint, 1), Serial(tinyint, 1), DataType (tinyint,l), FieldName (varchar, 40), FieldAlias (varchar, 40), LimitLen (tinyint,l), ToolTip (varchar, 100) },列名后的小括号内注明了列的数据类型和数据长度。在该表 中,登记每一种信息类别的相关字段集(即那些需要在搜索时用于筛选的部分或全部字段),对于每一个 信息字段的行记录,其中,DataSort为所属信息类别的编码,Serial为该字段在同类别信息内部的序号, DataType为该字段的数据类型之编码,FieldName为该字段的名称,FieldAlias为该字段的别名,Limi比en 为该字段的输入值限制长度(对字典类型则为对应字典表的代码),ToolTip为关于该字段取值的提示信息。 将数据类型归纳编码为{0-未用,l-文本,2-数值,3-日期,4-时间,5-日期时间,6-字典,7-复合}。第二步,设计搜索界面。如同图2所示,设计成自定义控件页面。第三步,编制程序代码。每次打开搜索界面,都只涉及具体一种信息类别,而且己知是为某个用户所 操作使用。在搜索界面的页面装入之初,先检索属于该用户且限于该信息类别的所有筛选器备案,装入"原 案"右侧下拉列表框;然后,从CndFields表中检索该信息类别的所有字段记录行并按Serial列升序排 序,装入"字段名"下拉列表框(FieldAlias列数据作为表项的Text属性,FieldName、 DataType、 LimitLen 和ToolTip列变换成以逗号分隔的字符串作为表项的Value属性)。用户选择"原案"右侧下拉列表框, 选项改变引发的事件驱动,将装入和显示选中的筛选器(条件集列于[条件列表],按排序方式编码设置排 序方式单选项,按条件组合逻辑编码设置组合逻辑单选项)。用户选择"字段名"下拉列表框,选项改变 引发的事件驱动,将装入和显示选中字段的数据类型所对应的一组运算符到"运算符"下拉列表框,并决 定"条件值"属下构件,对字典类型隐藏文本编辑框而显现下拉列表框且装入对应字典项,对非字典类型 则显现文本编辑框而隐藏下拉列表框;此外,还用ToolTip列设置"条件值"属下的一对文本编辑框的 ToolTip属性。数据类型适用的运算符,对文本类型是{" = ", "包含","不含","左含","右含","空白"},对数值、日期、时间、日期时间类型是{"<","《","=",,"》",">","Max" , "Min","介于","介外"},对字典、复合类型是{ " = " , }。用户选择"运算符"下拉列表框,选项改变引发的事件驱动,将根据选中运算符确定条件值控件呈现的数目对"Max"和"Min" 不呈现(即隐藏),对"介于"和"介外"呈现一对文本编辑框,其他情形都只呈现一个下拉列表框(对 字典类型)或文本编辑框(对非字典类型)。当光标停留在"条件值"属下文本编辑框输入条件值时,控 件ToolTip属性将自动作为提示信息显现出来。还需为界面中的各个按钮,按照上述图2说明中的定义, 分别编制单击事件驱动响应程序代码。筛选器保存为备案,采取在数据库中保存描述记录而在库外保存条 件集的方式。在数据库中创建一个数据表,命名为FilterDoc,表结构的列包括{ DocName (varchar, 40), UserID (varchar, 30), DataSort (tinyint, 1), DocNum (smallint, 1), SortBy (tinyint, 1), Logic(tinyint,l) },其中,DocName为筛选器名称,UserID为用户标识,DataSort为信息类别编码,DocNum 为筛选器在相同用户标识、相同信息类别范围内的编号,SortBy为排序方式选项编码,Logic为条件组合 逻辑选项编码。条件集保存为特定目录〈FilterDir〉之下的文本文件,其中,每项条件按"字段名,数据 类型,运算符,条件值(基值),条件值(上限),排序标识,分组标识"的格式存为一行文本,文件命名 规则是"UserID. DataSort (2位数)DocNum (4位数)",以此建立筛选器从FilterDoc表记录到条件集文 件的映射。为将筛选器转换生成相应的SQL査询条件字符串,特别编制专门的功能函数SQLbyFilter(), 其传入参数包括筛选器记录的UserID、 DataSort、 DocNum,返回所生成的SQL査询条件字符串。该函数从 FilterDoc表中读取由参数指定的记录,并从〈FilterDir〉目录下读入对应条件集文件所有文本行,逐行对 条件进行转换组合。再编賴「一个同名的重载功能函数SQLbyFilter(),其传入参数空缺,直接从搜索界面 中,提取条件列表框中全部条件,按照既定组合逻辑选项,逐个对条件进行转换组合,返回所生成的SQL 査询条件字符串。第四步,使用搜索。在软件中,于每个需要搜索信息的页面,布置搜索界面自定义控件。每当搜索具 体类别信息时,激活打开搜索界面,而在搜索界面因"确认"返回后,调用SQLbyFiIter ()函数获得SQL 査询条件字符串,用之于实施信息搜索,所获得的搜索结果信息(记录集)即可交付后续处理(如显示、 统计、打印,等)。实施存取授权方法。第一步,设计数据结构。在数据库中创建一个数据表,命名为Accredit,用于存储授权方案的记录, 表结构的列包括UD (int, 1), DocName (varchar, 40), RoleGrade (tinyint, 1), RegIP (varchar'15), AccreditAccess (tinyint, 1), AccreditFilter (smallint, 1), UserAccess (tinyint, 1), UserFilter(smallint, 1),},其中,ID为记录主键标识,DocName为授权方案名称,RoleGrade为角色级别编码, RegIP为限制登录IP地址,AccreditAccess为本表信息的操作权限代码,AccreditFilter为本表信息的 授权筛选器编号,UserAccess为用户信息的操作权限代码,UserFilter为用户信息的授权筛选器编号, 省略的是为其他需要管制存取的信息类别的操作权限代码和授权筛选器编号。角色级别编码定义为{0-未 定,l-普通,2-监管,3-维护}。操作权限代码定义为{0-禁止,1-浏览(列表),3-浏览/阅读,7-浏览/ 阅读/改写,15-浏览/阅读/改写/删除},是由2进制测试位集{1-浏览,2-阅读,4-改写,8-删除}的有效 组合。授权筛选器编号对应的筛选器记录,也与搜索筛选器一道存储在前述的FilterDoc表中和 〈FilterDir〉目录下,区别仅在于,授权筛选器记录的UserID列值为空串,而且其条件集文件命名规则是"_ DataSort(2位数)DocNum (4位数)"。又在用户信息表中,明确包括一列AccreditID (int, 1),对 应存放指定授权方案的ID值。第二步,设计操作界面。在用户信息记录管理页面上,设置一个只读的授权方案文本编辑框,用于显 示授权方案记录的标识和名称,旁边设置一个"授权"按钮。另外设计一个授权方案页面,用于管理授权 方案记录。在授权方案页面上,为Accredit表结构的所有列都配置对应的窗体控件,其中,分别对所有 涉及的各种信息类别,为其操作权限配置一个下拉列表框,为其授权筛选器配置一个只读的条件集列表、 一个只读的组合逻辑文本编辑框和一个"筛选器"按钮。还设置"保存"、"确认"和"返回"按钮。授权 筛选器的管理页面就采用前述的搜索界面设计,即直接放置该自定义控件,但禁用(隐藏)"口排序口分 组"复选项和排序方式"〇升(Asc) O降(Desc)"单选项。第三步,编制程序代码。在用户信息记录管理页面,为"授权"按钮编制单击事件驱动响应程序代码, 激活打开授权方案页面,确认的返回将在授权方案文本编辑框显示授权方案的标识和名称。在授权方案页 面,于该页面装入之初,读取给定ID的授权方案记录(如果存在的话)设置显示于页面各控件。为各个 信息类别的"筛选器"按钮分别编制单击事件驱动响应程序代码,以各自的信息类别编码为整型参数调用 一个共用的功能函数,该函数以传入的信息类别编码激活打开授权筛选器的管理页面(即搜索界面),确 认的返回将在对应的控件位置显示该信息类别的授权筛选器信息。为"保存"按钮编制单击事件驱动响应 程序代码,将授权方案记录保存到Accredit表中。第四步,使用授权。在软件中,于每个要检验控制信息存取之处,先读取当前用户的授权方案记录, 从中判断是否具有对所涉及信息类别的必需操作权限,有则允许存取,无则阻止存取。对于获得存取授权 的信息搜索,则在用户确定搜索筛选器之后,进而循此授权方案记录提取相同信息类别的授权筛选器,将 授权筛选器和搜索筛选器分别转换成相应的SQL查询条件字符串,分别放在各自一对小括号内,再按组合 逻辑以关键字"AND"居间连接,然后与由排序/分组字段标识和排序方式决定的排序子句和/或分组子句 相连接,形成新的SQL查询条件字符串,最终用作条件进行搜索操作。
权利要求
1. 一种信息搜索方法,是通过搜索界面构造筛选器,使之用于信息搜索过程,所述筛选器包含由一组条件构成的条件集并有确定的条件组合逻辑,还可包含排序方式,条件集中的每个条件均表达为包含字段名、运算符和条件值的三段式形态,条件值之特例可以为空或为界偶,所述搜索界面对不同记录结构的信息是同构的,关联地以具体信息记录结构的部分乃至全部字段的名称或别名填充第一列表,按用户对第一列表的选择,依选中字段的数据类型关联地填充相应的一组运算符到第二列表,又按用户从第一列表所选的字段名和从第二列表所选的运算符,关联地呈现第三列表或编辑框或其他类型控件供输入条件值,还可标识所选的字段名是否用于排序和/或分组,由此构造的条件收集到第四列表而形成条件集,其特征在于,所述第一列表、第二列表和供输入条件值的第三列表或编辑框的关联布置是基本上横向顺序排列的,使得它们的选项输入数据所连贯表达的条件含义在直观视觉上等效于条件的三段式形态。
2、 根据权利要求1所述的方法,其特征在于,所述第一列表、第二列表和供输入条件值的第三列表 或编辑框,在第四列表的行上集成布置并随构造条件的选项输入操作的需要而动态地移动、呈现和隐藏。
3、 根据权利要求1和2所述的方法,其特征在于,所述搜索界面以软件的窗体或页面或控件的形式 实现。
4、 根据权利要求1所述的方法,其特征在于,所述筛选器以数据记录或数据文件的方式存储作为备 案,可供检索和重复使用。
5、 根据权利要求4所述的方法,其特征在于,所述备案按信息类别分类存储和使用。
6、 根据权利要求4所述的方法,其特征在于,所述备案按用户名称或用户代码区分存储和使用。
7、 一种存取授权方法,是为用户制订授权方案,其中包括对信息类别和存取权的限制,其特征在于, 通过定义与信息类别对应的授权筛选器,来精确限定同类信息相关内容的可存取范围,所述授权筛选器由 管理员在先独立构造和指定,并强制性地作用于搜索过程,而搜索用户所确定的搜索筛选器不排除其作用。
8、 根据权利要求7所述的方法,其特征在于,所述授权筛选器可有多重,分别由不同管理员独立构 造和指定,然后叠加而起作用。
9、 根据权利要求7和8所述的方法,其特征在于,所述授权筛选器与搜索筛选器是同构的。
10、 根据权利要求7和8所述的方法,其特征在于,所述强制性地作用于搜索过程的机制,是将授权 筛选器和搜索筛选器各自对应转换生成的SQL查询条件字符串,再进行逻辑"与"而合成为新的SQL査 询条件字符串。
全文摘要
信息搜索和存取授权方法,涉及计算机软件、信息处理、数据库管理应用和信息安全技术领域。由搜索界面构造筛选器用于搜索过程,记录结构不同而搜索界面同构,横向可集成布置,以记录字段名关联填充第一列表,依选中字段数据类型关联填充运算符到第二列表,再依选中运算符关联呈现第三列表或编辑框等供输入条件值,还可标识排序分组字段,所构造条件收集到第四列表形成条件集;于授权方案定义对应信息类别的授权筛选器,来精确限定同类信息相关内容的可存取范围,授权筛选器由管理员在先独立构造指定,并强制作用于搜索过程,搜索用户确定的搜索筛选器不排除其作用,授权筛选器可重叠并与搜索筛选器同构。本发明实现了同构量化搜索和协同精确授权。
文档编号G06F17/30GK101221566SQ20071013897
公开日2008年7月16日 申请日期2007年7月15日 优先权日2007年7月15日
发明者周跃平, 霄 杨, 杨筑平 申请人:杨筑平
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1