掌桥专利:专业的专利平台
掌桥专利
首页

一种数据库中行级标记方法与装置

文献发布时间:2024-04-18 19:52:40


一种数据库中行级标记方法与装置

技术领域

本发明涉及计算机技术领域,尤其涉及一种数据库中行级标记方法与装置。

背景技术

随着互联网发展推广,互联网安全事件频发,安全形势严峻,在这种背景下,信息安全等级保护被提出。《计算机信息系统安全保护等级划分准则》(GB17859-1999)将计算信息系统安全保护等级划分为五个级别:第一级用户自主保护级;第二级系统审计保护级;第三级安全标记保护级;第四级结构化保护级;第五级访问验证保护级。与第三级安全标记保护级相对应,《信息安全技术-数据库管理系统安全技术要求》(GB20273-2019)提出了安全标记和强制访问控制的要求。

强制访问控制,即基于对象中包含信息的敏感性(由标记表示)来显示对对象的访问途径以及对对象访问这种敏感信息的授权;安全标记作为强制访问控制的基础,是实现多级安全的关键;多级安全要求主体、客体具有安全级别属性,通过安全标记分配,进而依据安全标记的比较确定主体对客体的访问;在强制访问控制下,用户与数据都被标记了固定的安全属性,在每次访问发生时,数据库系统检测安全属性,确定一个用户对数据是否有访问权限。强制访问控制可以控制系统中信息流动的轨迹,能够有效抵抗某些攻击,这在对安全要求很高的数据库应用中是非常必要的。本说明书提供了一种数据库行级标记的方法和装置,可以创建安全标记,为行数据和用户应用安全标记,在用户发起请求时对用户和行数据的安全标记进行判定,确定请求是否通过,以实现数据库的强制访问功能。

因此,有必要提供一种数据库中行级标记方法与装置。

发明内容

本发明提供了一种数据库中行级标记方法与装置,通过创建安全标记,并为数据库中行数据和用户分别应用安全标记,可在用户发起访问请求时,对用户和行数据的安全标记分别进行判定,根据判定结果判断访问请求是否通过,以实现数据库的强制访问功能。

本发明提供了一种数据库中行级标记方法,包括:

S1:定义安全标记、安全标记构成组件和安全标记的安全策略;安全标记构成组件包括安全等级、安全范围和安全组;

S2:创建并管理安全策略和安全标记,并存储安全策略和安全标记相对应的元数据,同时将安全策略应用于用户和数据库行对象;

S3:根据用户和数据库行对象的安全标记规则,判断用户对数据库行对象发出的读写访问请求是否通过。

进一步地,S1包括:

S101:定义安全等级,安全等级为由小到大线性排列有序的名称序列;

S102:定义安全范围,安全范围为独立的集合类型;

S103:定义安全组,安全组为包含父节点和子节点的树形结构;

S104:定义安全标记,安全标记包括安全等级、安全范围和安全组;安全等级为必须包含值,安全范围和安全组可为缺省值;

S105:定义安全标记的安全策略,安全策略包括安全等级分策略、安全范围分策略和安全组分策略。

进一步地,S2包括:

S201:采取第一方式创建和管理安全策略,第一方式包括编辑策略名、开启策略和关闭策略;

S202:采取第二方式管理安全等级分策略、安全范围分策略和安全组分策略,第二方式包括添加、修改和删除;

S203:采取第三方式创建和管理安全标记,第三方式包括创建标记值、修改标记值和删除标记值;删除标记值仅限于删除未被应用的标记值;

S204:存储安全策略和安全标记相对应的元数据;

S205:将安全策略和安全标记应用于用户和数据库行对象。

进一步地,S205包括:

S2051:将安全策略应用于用户,包括设置读标记、写标记、默认标记、默认写标记和行标记;用户登录后查看当前会话涉及到的安全标记;新插入的数据根据当前会话行标记默认应用安全标记;

读标记用于设置用户读的最大安全等级、读的安全范围和读的安全组;写标记用于设置用户写的最小安全等级、写的安全范围和写的安全组;默认标记为用户登录后默认用于读的安全等级,默认写标记为用户登录后默认用于读的安全等级,用户登录后默认用于写的安全等级;行标记为用户登录后的会话行标记初始值,或用户没有指定标记值时的标记默认值;

S2052:将安全策略应用于数据库行对象,包括创建行安全标记、删除行安全标记、开启行安全策略和关闭行安全策略;多个安全策略可应用于同一个行对象,同一个策略只能应用一次。

进一步地,S3包括:

S301:当用户对数据库行对象发出读访问请求时,利用读规则判断用户对数据库行对象是否具有读访问权限,具体步骤为:

S3011:判定用户默认安全等级是否大于等于数据库行对象的安全等级,若不大于等于数据库行对象的安全等级,则不允许访问;若大于等于数据库行对象的安全等级,则跳转至步骤S3012;

S3012:判定请求的数据库行对象是否存在安全组,若存在安全组,则跳转至步骤S3013;若不存在安全组,则跳转至步骤S3014;

S3013:判定用户是否至少包含数据库行对象的一个安全组或者父安全组,若不包含,则不允许访问;若包含,则跳转至步骤S3014;

S3014:判定数据库行对象是否存在安全范围,若不存在,则允许访问;若存在,则跳转至步骤S3015;

S3015:判定用户是否包含数据库行对象全部的安全范围,若包含,则允许访问;若不包含,则不允许访问;

S302:当用户对数据库行对象发出写访问请求时,利用写规则判断用户对数据库行对象是否具有写访问权限,具体步骤为:

S3021:判定用户默认安全等级是否大于等于数据库行对象安全等级,若不大于等于数据库行对象安全等级,则不允许访问;若大于等于数据库行对象安全等级,则跳转至步骤S3022;

S3022:判定用户最小安全等级是否小于等于数据库行对象安全等级,若不小于等于数据库行对象安全等级,则不允许访问;若小于等于数据库行对象安全等级,则跳转至步骤S3023;

S3023:判定数据库行对象是否存在安全组,若不存在安全组,则跳转至步骤S3024;若存在安全组,则跳转至步骤S3025;

S3024:判定用户是否至少包含数据库行对象的一个安全组或者父安全组,若不包含,则不允许访问;若包含,则跳转至步骤S3025;

S3025:判定数据库行对象是否存在安全范围,若不存在,则允许访问,若存在,则跳转至步骤S3026;

S3026:判定用户是否包含数据库行对象全部安全范围,若不包含,则允许访问;若包含,则不允许访问。

一种数据库中行级标记的装置,包括:

定义模块,用于定义安全标记、安全标记构成组件和安全标记的安全策略;安全标记构成组件包括安全等级、安全范围和安全组;

管理模块,用于创建并管理安全策略和安全标记,并存储安全策略和安全标记相对应的元数据,同时将安全策略应用于用户和数据库行对象;

判断模块,用于根据用户和数据库行对象的安全标记规则,判断用户对数据库行对象的发出的读写访问请求是否通过。

进一步地,定义模块包括:定义安全等级,安全等级为由小到大线性排列有序的名称序列;定义安全范围,安全范围为独立的集合类型;定义安全组,安全组为包含父节点和子节点的树形结构;定义安全标记,安全标记包括安全等级、安全范围和安全组;安全等级为必须包含值,安全范围和安全组可为缺省值;定义安全标记的安全策略,安全策略包括安全等级分策略、安全范围分策略和安全组分策略;

管理模块包括管理单元和应用单元,管理单元用于:采取第一方式创建和管理安全策略,第一方式包括编辑策略名、开启策略和关闭策略;采取第二方式管理安全等级分策略、安全范围分策略和安全组分策略,第二方式包括添加、修改和删除;采取第三方式创建和管理安全标记,第三方式包括创建标记值、修改标记值和删除标记值;删除标记值仅限于删除未被应用的标记值;存储安全策略和安全标记相对应的元数据;

应用单元,用于将安全策略和安全标记应用于用户和数据库行对象;具体为:

将安全策略应用于用户,包括设置读标记、写标记、默认标记、默认写标记和行标记;用户登录后查看当前会话涉及到的安全标记;新插入的数据根据当前会话行标记默认应用安全标记;

读标记用于设置用户读的最大安全等级、读的安全范围和读的安全组;写标记用于设置用户写的最小安全等级、写的安全范围和写的安全组;默认标记为用户登录后默认用于读的安全等级,默认写标记为用户登录后默认用于读的安全等级,用户登录后默认用于写的安全等级;行标记为用户登录后的会话行标记初始值,或用户没有指定标记值时的标记默认值;

将安全策略应用于数据库行对象,包括创建行安全标记、删除行安全标记、开启行安全策略和关闭行安全策略;多个安全策略可应用于同一个行对象,同一个策略只能应用一次。

进一步地,判断模块包括读访问请求判断单元和写访问请求判断单元;

读访问请求判断单元,用于当用户对数据库行对象发出读访问请求时,利用读规则判断用户对数据库行对象是否具有读访问权限,具体包括以下操作:

步骤一:判定用户默认安全等级是否大于等于数据库行对象的安全等级,若不大于等于数据库行对象的安全等级,则不允许访问;若大于等于数据库行对象的安全等级,则跳转至步骤二;

步骤二:判定请求的数据库行对象是否存在安全组,若存在安全组,则跳转至步骤三;若不存在安全组,则跳转至步骤四;

步骤三:判定用户是否至少包含数据库行对象的一个安全组或者父安全组,若不包含,则不允许访问;若包含,则跳转至步骤四;

步骤四:判定数据库行对象是否存在安全范围,若不存在,则允许访问;若存在,则跳转至步骤五;

步骤五:判定用户是否包含数据库行对象全部的安全范围,若包含,则允许访问;若不包含,则不允许访问;

写访问请求判断单元,用于当用户对数据库行对象发出写访问请求时,利用写规则判断用户对数据库行对象是否具有写访问权限,具体包括以下操作:

第一步骤:判定用户默认安全等级是否大于等于数据库行对象安全等级,若不大于等于数据库行对象安全等级,则不允许访问;若大于等于数据库行对象安全等级,则跳转至第二步骤;

第二步骤:判定用户最小安全等级是否小于等于数据库行对象安全等级,若不小于等于数据库行对象安全等级,则不允许访问;若小于等于数据库行对象安全等级,则跳转至第三步骤;

第三步骤:判定数据库行对象是否存在安全组,若不存在安全组,则跳转至第四步骤;若存在安全组,则跳转至第五步骤;

第四步骤:判定用户是否至少包含数据库行对象的一个安全组或者父安全组,若不包含,则不允许访问;若包含,则跳转至第五步骤;

第五步骤:判定数据库行对象是否存在安全范围,若不存在,则允许访问,若存在,则跳转至第六步骤;

第六步骤:判定用户是否包含数据库行对象全部安全范围,若不包含,则允许访问;若包含,则不允许访问。

进一步地,还包括用户访问请求检测模块,用于检测用户的访问请求,判定用户是否为危险用户,以保证数据行对象的安全访问;用户访问请求检测模块包括用户访问数据设定单元、用户访问数据获取单元和用户访问请求统计单元;

用户访问数据设定单元,用于设定数据行对象对应的同一访问用户的正常访问间隔周期,以及数据行对象对应的单位周期内的正常访问量;

用户访问数据获取单元,用于基于检测工具检测目标用户对同类数据行对象的第一访问周期,以及单位周期内的第一访问量;若第一访问周期小于正常访问间隔周期,并且第一访问量大于正常访问量,将目标用户定位疑似危险用户;

用户访问请求统计单元,用于基于检测工具检测疑似危险用户对同类数据行对象的访问请求未通过的次数占比,若次数占比大于预设的次数占比阈值,则将疑似危险用户判定为危险用户。

进一步地,还包括访问请求测试评估模块,用于在接收用户读写请求前,测试评估数据库中行标记,并调整数据库行标记的参数;访问请求测试评估模块包括用户访问反馈信息获取单元、数据行对象访问请求问题获取单元和数据库行标记调整单元;

用户访问反馈信息获取单元,用于获取测试用户的对数据库行对象完成读写请求后的反馈信息;

数据行对象访问请求错误信息获取单元,用于获取数据库行对象在应对测试用户的读写请求过程中的执行错误信息;

数据库行标记调整单元,用于根据反馈信息和执行错误信息,调整安全等级、安全范围的区间大小和安全组的结构层次。

本发明的其它特征和优点将在随后的说明书中阐述,并且,部分地从说明书中变得显而易见,或者通过实施本发明而了解。本发明的目的和其他优点可通过在所写的说明书以及附图中所特别指出的结构来实现和获得。

下面通过附图和实施例,对本发明的技术方案做进一步的详细描述。

附图说明

附图用来提供对本发明的进一步理解,并且构成说明书的一部分,与本发明的实施例一起用于解释本发明,并不构成对本发明的限制。在附图中:

图1为一种数据库中行级标记方法步骤示意图;

图2为一种数据库中行级标记方法中定义安全标记、安全标记构成组件和安全标记的安全策略的方法步骤示意图;

图3为一种数据库中行级标记方法中为用户应用安全策略的流程示意图;

图4为一种数据库中行级标记方法中用户发出读访问请求判定规则流程示意图;

图5为一种数据库中行级标记方法中用户发出写访问请求判定规则流程示意图;

图6为一种数据库中行级标记装置结构示意图。

具体实施方式

以下结合附图对本发明的优选实施例进行说明,应当理解,此处所描述的优选实施例仅用于说明和解释本发明,并不用于限定本发明。

本发明提供了一种数据库中行级标记方法,如图1所示,包括:

S1:定义安全标记、安全标记构成组件和安全标记的安全策略;安全标记构成组件包括安全等级、安全范围和安全组;

S2:创建并管理安全策略和安全标记,并存储安全策略和安全标记相对应的元数据,同时将安全策略应用于用户和数据库行对象;

S3:根据用户和数据库行对象的安全标记规则,判断用户对数据库行对象发出的读写访问请求是否通过。

上述技术方案的工作原理为:S1:定义安全标记、安全标记构成组件和安全标记的安全策略;安全标记构成组件包括安全等级、安全范围和安全组;三种构成组件分别从不同维度对数据行对象和用户安全属性进行了描述;

S2:创建并管理安全策略和安全标记,并存储安全策略和安全标记相对应的元数据,同时将安全策略应用于用户和数据库行对象;

S3:根据用户和数据库行对象的安全标记规则,判断用户对数据库行对象发出的读写访问请求是否通过。

上述技术方案的有益效果为:采用本实施例提供的方案,通过创建安全标记,并为数据库中行数据和用户分别应用安全标记,可在用户发起访问请求时,对用户和行数据的安全标记分别进行判定,根据判定结果判断访问请求是否通过,以实现数据库的强制访问功能。

在一个实施例中,如图2所示,S1包括:

S101:定义安全等级,安全等级为由小到大线性排列有序的名称序列;

S102:定义安全范围,安全范围为独立的集合类型;

S103:定义安全组,安全组为包含父节点和子节点的树形结构;

S104:定义安全标记,安全标记包括安全等级、安全范围和安全组;安全等级为必须包含值,安全范围和安全组可为缺省值;

S105:定义安全标记的安全策略,安全策略包括安全等级分策略、安全范围分策略和安全组分策略。

上述技术方案的工作原理为:

S101:定义安全等级,安全等级为由小到大线性排列有序的名称序列;安全等级建立在策略之上,用level=(l1,l2,...,ln)表示;其中li(1≤i≤n)表示第i个等级,任意两个等级li、lj之间,若i≤j,则li≤lj,l1≤l2≤...≤ln;

S102:定义安全范围,安全范围为独立的集合类型;安全范围建立在策略之上,安全范围集合为C={c1,c2,...,cn},c1,c2,...,cn间彼此独立,集合C及其任意子集可配置为安全范围;

S103:定义安全组,安全组为包含父节点和子节点的树形结构;安全组建立在策略之上,组为树形结构,有父子关系,可以用来描述组织结构;树型结构G={g1,g2,...,gn},节点g1,g2,...,gm间有父子关系;一个组最多拥有一个父组;

S104:定义安全标记,安全标记包括安全等级、安全范围和安全组;一个安全标记最多只能包含这三种组件;三种组件分别从不同的维度对数据进行了描述;安全等级为必须包含值,安全范围和安全组可为缺省值;

S105:定义安全标记的安全策略,安全策略包括安全等级分策略、安全范围分策略和安全组分策略。

上述技术方案的有益效果为:采用本实施例提供的方案,通过定义安全等级、安全范围和安全组,以及安全标记、安全标记的安全策略,可以从不同维度对数据行对象和用户安全属性进行预先描述,为后续的判定和分析打下基础。

在一个实施例中,S2包括:

S201:采取第一方式创建和管理安全策略,第一方式包括编辑策略名、开启策略和关闭策略;编辑策略名包括命名策略名、修改策略名、删除策略名;

S202:采取第二方式管理安全等级分策略、安全范围分策略和安全组分策略,第二方式包括添加、修改和删除;

S203:采取第三方式创建和管理安全标记,第三方式包括创建标记值、修改标记值和删除标记值;删除标记值仅限于删除未被应用的标记值;

S204:存储安全策略和安全标记相对应的元数据;元数据包括:安全策略元数据、安全等级元数据、安全范围元数据、安全组元数据和安全标记元数据,以及数据库行对象安全策略元数据、用户策略元数据、用户请求权限元数据和超级用户元数据;

S205:将安全策略和安全标记应用于用户和数据库行对象。

上述技术方案的工作原理为:S2包括:

S201:采取第一方式创建和管理安全策略,第一方式包括编辑策略名、开启策略和关闭策略;创建策略包括:指定策略名,策略名不能为空;修改策略,指定原策略名和新策略名,原策略必须存在,新策略名不能为空,且必须唯一;删除策略,指定需要删除的策略名,策略必须存在,且策略下不存在安全标记;开启策略,创建策略后默认是开启的,即应用到数据后,数据就受到该策略保护,指定策略名,策略必须存在;关闭策略,关闭策略后,该策略就失效,其对应的读写规则就没有发生作用,如正常数据操作流程,指定策略名,策略必须存在;

S202:采取第二方式管理安全等级分策略、安全范围分策略和安全组分策略,第二方式包括添加、修改和删除;

添加安全等级包括:指定安全等级策略名,安全等级名,安全等级数值,安全等级策略名必须存在,安全等级名和安全等级数值必须唯一;修改安全等级包括:指定安全等级策略名,原安全等级名和新安全等级名,安全等级策略必须存在,原安全等级必须存在,新安全等级名必须唯一;删除安全等级包括:指定安全等级策略名和安全等级名,安全等级策略必须存在,安全等级必须存在,只有没有被应用到标记的等级才可以删除;

添加安全范围包括:指定安全范围策略名和安全范围名,安全范围策略必须存在,安全策略名必须唯一;修改安全范围包括:指定安全范围策略名,原安全范围名和新安全范围名,安全范围策略必须存在,原安全范围必须存在,新安全范围名必须唯一;删除安全范围包括:指定安全范围策略名和安全范围名,安全范围策略必须存在,安全范围必须存在,只有没有被应用到标记的安全范围才可以被删除;

添加安全分组包括:指定安全分组策略名、安全分组名、父安全组名,安全分组策略名必须存在,父安全组名必须存在,安全分组名必须唯一;修改分安全组,指定安全分组策略名,原安全分组名,新安全分组名,安全分组策略必须存在,原安全分组必须存在,新安全分组名必须唯一;修改父安全组,指定安全分组策略名,安全分组名,父安全组名,安全分组策略必须存在,安全分组必须存在,父安全组必须存在,安全组不能构成闭环;删除安全分组,指定安全分组策略名、安全组名,安全分组策略必须存在,安全分组必须存在,其或者其自安全组没有被应用于安全标记时才可以被删除;

S203:采取第三方式创建和管理安全标记,第三方式包括创建标记值、修改标记值和删除标记值;删除标记值仅限于删除未被应用的标记值;创建安全标记包括:指定安全标记策略名、标记值,标记值中使用的安全标记构成组件必须已经创建;修改安全标记包括:指定安全标记策略名、原标记值、新标记值,原标记值必须存在,新标记值必须符合创建安全标记的要求,如果安全标记已经被应用,可能会影响数据可见性;删除安全标记包括:指定安全标记策略名和标记值,安全标记策略名和标记值必须存在,如果标记值已经被应用,则不能删除;

S204:存储安全策略和安全标记相对应的元数据;元数据包括:安全策略元数据、安全等级元数据、安全范围元数据、安全组元数据和安全标记元数据,以及数据库行对象安全策略元数据、用户策略元数据、用户请求权限元数据和超级用户元数据;

安全策略元数据包括策略ID和策略名称,策略ID和策略名称不能重复;

安全等级元数据包括等级数值和等级名称,等级数值为整数类型,有大小之分,用于对应名称之间安全等级大小的比较,安全等级创建在策略之上,需要指定策略ID,每个策略内等级数值和等级名称唯一;

安全范围元数据包括范围ID和范围名称,安全范围创建在策略之上,需要指定策略ID,每个策略内范围名称和范围ID唯一;

安全组元数据包括组ID、组名称和父组ID,安全组创建在策略之上,需要指定策略ID,每个策略内组名称和组ID唯一;

安全标记元数据包括标记ID和标记值,安全标记创建在策略之上,需要指定策略ID,标记ID唯一;

标记值格式为Level:[Compartment{,Compartment}]:[Group{,Group}],如L01:C01,C02:G01;任意两个标记安全关系需满足如下条件:

条件一:对于两个给定的有效安全标记,能够判定他们是否相等,是否其中一个大于另一个;

条件二:在安全标记集合中存在一个“最小上界”,对于给定的两个有效的安全标记,存在一个有效的安全标记大于或者等于这两个安全标记;

条件三:在安全标记集合中存在一个“最大下界”,对于给定的两个有效的安全标记,存在一个有效的安全标记不大于这两个标记;

数据库行对象安全策略元数据包括库名、表名、列名、策略ID、标记ID,安全标记可视选项和开启选项,库名、表名和策略ID均唯一;

用户策略元数据包括用户名、主机名、策略ID、读标记、写标记、默认读标记、默认写标记和默认行标记,其中用户名、主机名和策略ID均唯一;

用户请求权限元数据包括用户名、主机名、策略ID、用户权限,用户权限可选读或者全权限,其中用户名、主机名和策略ID均唯一;

超级用户元数据包括用户名和主机名,用户名和主机名唯一。

S205:将安全策略和安全标记应用于用户和数据库行对象。

上述技术方案的有益效果为:采用本实施例提供的方案,通过将安全策略和安全标记应用于用户和数据库行对象,可以为用户的读写访问请求提供基本的安全条件。

在一个实施例中,如图3所示,S205包括:

S2051:将安全策略应用于用户,包括设置读标记、写标记、默认标记、默认写标记和行标记;用户登录后查看当前会话涉及到的安全标记;新插入的数据根据当前会话行标记默认应用安全标记;

读标记用于设置用户读的最大安全等级、读的安全范围和读的安全组;写标记用于设置用户写的最小安全等级、写的安全范围和写的安全组;默认标记为用户登录后默认用于读的安全等级,默认写标记为用户登录后默认用于读的安全等级,用户登录后默认用于写的安全等级;行标记为用户登录后的会话行标记初始值,或用户没有指定标记值时的标记默认值;

S2052:将安全策略应用于数据库行对象,包括创建行安全标记、删除行安全标记、开启行安全策略和关闭行安全策略;多个安全策略可应用于同一个行对象,同一个策略只能应用一次。

上述技术方案的工作原理为:S205包括:

S2051:将安全策略应用于用户,包括设置读标记、写标记、默认标记、默认写标记和行标记;用户登录后查看当前会话涉及到的安全标记;新插入的数据根据当前会话行标记默认应用安全标记;

读标记用于设置用户读的最大安全等级、读的安全范围和读的安全组;写标记用于设置用户写的最小安全等级、写的安全范围和写的安全组;默认标记为用户登录后默认用于读的安全等级,默认写标记为用户登录后默认用于读的安全等级,用户登录后默认用于写的安全等级;行标记为用户登录后的会话行标记初始值,或用户没有指定标记值时的标记默认值;

将安全策略应用于用户,包括设置读标记、写标记、默认标记、默认写标记和行标记;用户登录后查看当前会话涉及到的安全标记;新插入的数据根据当前会话行标记默认应用安全标记;读标记用于设置用户读的最大安全等级、读的安全范围和读的安全组,规定了用户的最大读范围;写标记用于设置用户写的最小安全等级、写的安全范围和写的安全组,限制用户最小写范;默认标记为用户登录后默认用于读的安全等级,默认写标记为用户登录后默认用于读的安全等级,用户登录后默认用于写的安全等级;行标记为用户登录后的会话行标记初始值,或用户没有指定标记值时的标记默认值;

对用户应用策略包括:指定用户名、主机名、策略名、读标记、写标记、默认标记和行标记;策略名必须存在,使用的标记值不能提前创建,但是其中元素必须存在,且符合标记语法,默认标记会根据写标记和行标记自动创建;

对用户更改安全策略包括:指定用户名、主机名、策略名、读标记、写标记、默认标记和行标记,更新的标记需要满足应用标记时的条件;

对用户删除安全策略包括:指定用户名、主机名和策略名;

用户可以查看当前会话涉及到的安全标记,默认是用户元数据中对应的安全等级,用户登录后,使用用户的默认标记赋值,并且可以预设函数设置;在读请求时,以默认写标记为准;写请求可能只有部分组件使用;

S2052:将安全策略应用于数据库行对象,包括创建行安全标记、删除行安全标记、开启行安全策略和关闭行安全策略;多个安全策略可应用于同一个行对象,同一个策略只能应用一次;

创建行安全标记,默认为表添加一列;对于开启行安全策略,默认为开启状态;关闭行安全策略中,关闭表上的已应用某个策略后,该策略在该表上不生效。

用户和数据行应用安全策略之后,对于用户的获取请求,根据读规则,确定用户对数据的可见性,只返回对用户可见数据。标记列为隐藏时,使用获取中的查询功能,隐藏的标记列不显示,如需查询标记列的值,需要指定对应列名。对于添加指令,标记列的值如果显示指定,那么必须满足当前用户写的权限,如果没有指定,就设置为当前用户行安全标记的ID值。当存在隐藏标记列且添加指令没有指定列名时,隐藏标记列没有计算在插入列中。对于更新指令,更新的数据必须满足用户有写权限,且不能更新标记列的值。如果更新的行可见不可写,则报错;对于删除指令,删除的数据必须满足用户有写权限。如果删除的行可见但不可写,则报错;

设置特权用户时,可以指定为读权限,表示该用户对该策略具有读特权,对受该策略保护的数据可见;可以指定用户具有全部权限,表示该用户有在该策略上读写特权,对受该策略保护的数据可见可写。

上述技术方案的有益效果为:采用本实施例提供的方案,通过为用户和数据行对象设置安全策略,可以保证有具体的读写判别规则对用户的读写请求进行判别。

在一个实施例中,S3包括:

S301:当用户对数据库行对象发出读访问请求时,利用读规则判断用户对数据库行对象是否具有读访问权限,如图4所示,具体步骤为:

S3011:判定用户默认安全等级是否大于等于数据库行对象的安全等级,若不大于等于数据库行对象的安全等级,则不允许访问;若大于等于数据库行对象的安全等级,则跳转至步骤S3012;

S3012:判定请求的数据库行对象是否存在安全组,若存在安全组,则跳转至步骤S3013;若不存在安全组,则跳转至步骤S3014;

S3013:判定用户是否至少包含数据库行对象的一个安全组或者父安全组,若不包含,则不允许访问;若包含,则跳转至步骤S3014;

S3014:判定数据库行对象是否存在安全范围,若不存在,则允许访问;若存在,则跳转至步骤S3015;

S3015:判定用户是否包含数据库行对象全部的安全范围,若包含,则允许访问;若不包含,则不允许访问;

S302:当用户对数据库行对象发出写访问请求时,利用写规则判断用户对数据库行对象是否具有写访问权限,如图5所示,具体步骤为:

S3021:判定用户默认安全等级是否大于等于数据库行对象安全等级,若不大于等于数据库行对象安全等级,则不允许访问;若大于等于数据库行对象安全等级,则跳转至步骤S3022;

S3022:判定用户最小安全等级是否小于等于数据库行对象安全等级,若不小于等于数据库行对象安全等级,则不允许访问;若小于等于数据库行对象安全等级,则跳转至步骤S3023;

S3023:判定数据库行对象是否存在安全组,若不存在安全组,则跳转至步骤S3024;若存在安全组,则跳转至步骤S3025;

S3024:判定用户是否至少包含数据库行对象的一个安全组或者父安全组,若不包含,则不允许访问;若包含,则跳转至步骤S3025;

S3025:判定数据库行对象是否存在安全范围,若不存在,则允许访问,若存在,则跳转至步骤S3026;

S3026:判定用户是否包含数据库行对象全部安全范围,若不包含,则允许访问;若包含,则不允许访问。

上述技术方案的工作原理为:S3包括:

S301:当用户对数据库行对象发出读访问请求时,利用读规则判断用户对数据库行对象是否具有读访问权限,具体步骤为:

S3011:判定用户默认安全等级是否大于等于数据库行对象的安全等级,若不大于等于数据库行对象的安全等级,则不允许访问;若大于等于数据库行对象的安全等级,则跳转至步骤S3012;

S3012:判定请求的数据库行对象是否存在安全组,若存在安全组,则跳转至步骤S3013;若不存在安全组,则跳转至步骤S3014;

S3013:判定用户是否至少包含数据库行对象的一个安全组或者父安全组,若不包含,则不允许访问;若包含,则跳转至步骤S3014;

S3014:判定数据库行对象是否存在安全范围,若不存在,则允许访问;若存在,则跳转至步骤S3015;

S3015:判定用户是否包含数据库行对象全部的安全范围,若包含,则允许访问;若不包含,则不允许访问;

S302:当用户对数据库行对象发出写访问请求时,利用写规则判断用户对数据库行对象是否具有写访问权限,具体步骤为:

S3021:判定用户默认安全等级是否大于等于数据库行对象安全等级,若不大于等于数据库行对象安全等级,则不允许访问;若大于等于数据库行对象安全等级,则跳转至步骤S3022;

S3022:判定用户最小安全等级是否小于等于数据库行对象安全等级,若不小于等于数据库行对象安全等级,则不允许访问;若小于等于数据库行对象安全等级,则跳转至步骤S3023;

S3023:判定数据库行对象是否存在安全组,若不存在安全组,则跳转至步骤S3024;若存在安全组,则跳转至步骤S3025;

S3024:判定用户是否至少包含数据库行对象的一个安全组或者父安全组,若不包含,则不允许访问;若包含,则跳转至步骤S3025;

S3025:判定数据库行对象是否存在安全范围,若不存在,则允许访问,若存在,则跳转至步骤S3026;

S3026:判定用户是否包含数据库行对象全部安全范围,若不包含,则允许访问;若包含,则不允许访问。

上述技术方案的有益效果为:采用本实施例提供的方案,通过针对用户对数据库行对象发出的读写访问请求,利用读写规则判断用户对数据库行对象是否具有写访问权限,可保证强制访问的安全执行。

一种数据库中行级标记的装置,如图6所示,包括:

定义模块,用于定义安全标记、安全标记构成组件和安全标记的安全策略;安全标记构成组件包括安全等级、安全范围和安全组;

管理模块,用于创建并管理安全策略和安全标记,并存储安全策略和安全标记相对应的元数据,同时将安全策略应用于用户和数据库行对象;

判断模块,用于根据用户和数据库行对象的安全标记规则,判断用户对数据库行对象的发出的读写访问请求是否通过。

上述技术方案的工作原理为:定义模块,用于定义安全标记、安全标记构成组件和安全标记的安全策略;安全标记构成组件包括安全等级、安全范围和安全组;三种构成组件分别从不同维度对数据行对象和用户安全属性进行了描述;

管理模块,用于创建并管理安全策略和安全标记,并存储安全策略和安全标记相对应的元数据,同时将安全策略应用于用户和数据库行对象;

判断模块,用于根据用户和数据库行对象的安全标记规则,判断用户对数据库行对象的发出的读写访问请求是否通过。

上述技术方案的有益效果为:采用本实施例提供的方案,通过创建安全标记,并为数据库中行数据和用户分别应用安全标记,可在用户发起访问请求时,对用户和行数据的安全标记分别进行判定,根据判定结果判断访问请求是否通过,以实现数据库的强制访问功能。

在一个实施例中,定义模块包括:定义安全等级,安全等级为由小到大线性排列有序的名称序列;定义安全范围,安全范围为独立的集合类型;定义安全组,安全组为包含父节点和子节点的树形结构;定义安全标记,安全标记包括安全等级、安全范围和安全组;安全等级为必须包含值,安全范围和安全组可为缺省值;定义安全标记的安全策略,安全策略包括安全等级分策略、安全范围分策略和安全组分策略;

管理模块包括管理单元和应用单元,管理单元用于:采取第一方式创建和管理安全策略,第一方式包括编辑策略名、开启策略和关闭策略;采取第二方式管理安全等级分策略、安全范围分策略和安全组分策略,第二方式包括添加、修改和删除;采取第三方式创建和管理安全标记,第三方式包括创建标记值、修改标记值和删除标记值;删除标记值仅限于删除未被应用的标记值;存储安全策略和安全标记相对应的元数据;

应用单元,用于将安全策略和安全标记应用于用户和数据库行对象;具体为:

将安全策略应用于用户,包括设置读标记、写标记、默认标记、默认写标记和行标记;用户登录后查看当前会话涉及到的安全标记;新插入的数据根据当前会话行标记默认应用安全标记;读标记用于设置用户读的最大安全等级、读的安全范围和读的安全组;写标记用于设置用户写的最小安全等级、写的安全范围和写的安全组;默认标记为用户登录后默认用于读的安全等级,默认写标记为用户登录后默认用于读的安全等级,用户登录后默认用于写的安全等级;行标记为用户登录后的会话行标记初始值,或用户没有指定标记值时的标记默认值;

将安全策略应用于数据库行对象,包括创建行安全标记、删除行安全标记、开启行安全策略和关闭行安全策略;多个安全策略可应用于同一个行对象,同一个策略只能应用一次。

上述技术方案的工作原理为:定义模块包括:

定义安全等级,安全等级为由小到大线性排列有序的名称序列;安全等级建立在策略之上,用level=(l1,l2,...,ln)表示;其中li(1≤i≤n)表示第i个等级,任意两个等级li、lj之间,若i≤j,则li≤lj,l1≤l2≤...≤ln;

定义安全范围,安全范围为独立的集合类型;安全范围建立在策略之上,安全范围集合为C={c1,c2,...,cn},c1,c2,...,cn间彼此独立,集合C及其任意子集可配置为安全范围;

定义安全组,安全组为包含父节点和子节点的树形结构;安全组建立在策略之上,组为树形结构,有父子关系,可以用来描述组织结构;树型结构G={g1,g2,...,gn},节点g1,g2,...,gm间有父子关系;一个组最多拥有一个父组;

定义安全标记,安全标记包括安全等级、安全范围和安全组;一个安全标记最多只能包含这三种组件;三种组件分别从不同的维度对数据进行了描述;安全等级为必须包含值,安全范围和安全组可为缺省值;

定义安全标记的安全策略,安全策略包括安全等级分策略、安全范围分策略和安全组分策略;

管理模块包括管理单元和应用单元,管理单元用于:采取第一方式创建和管理安全策略,第一方式包括编辑策略名、开启策略和关闭策略;

创建策略包括:指定策略名,策略名不能为空;修改策略,指定原策略名和新策略名,原策略必须存在,新策略名不能为空,且必须唯一;删除策略,指定需要删除的策略名,策略必须存在,且策略下不存在安全标记;开启策略,创建策略后默认是开启的,即应用到数据后,数据就受到该策略保护,指定策略名,策略必须存在;关闭策略,关闭策略后,该策略就失效,其对应的读写规则就没有发生作用,如正常数据操作流程,指定策略名,策略必须存在。

采取第二方式管理安全等级分策略、安全范围分策略和安全组分策略,第二方式包括添加、修改和删除;

添加安全等级包括:指定安全等级策略名,安全等级名,安全等级数值,安全等级策略名必须存在,安全等级名和安全等级数值必须唯一;修改安全等级包括:指定安全等级策略名,原安全等级名和新安全等级名,安全等级策略必须存在,原安全等级必须存在,新安全等级名必须唯一;删除安全等级包括:指定安全等级策略名和安全等级名,安全等级策略必须存在,安全等级必须存在,只有没有被应用到标记的等级才可以删除;

添加安全范围包括:指定安全范围策略名和安全范围名,安全范围策略必须存在,安全策略名必须唯一;修改安全范围包括:指定安全范围策略名,原安全范围名和新安全范围名,安全范围策略必须存在,原安全范围必须存在,新安全范围名必须唯一;删除安全范围包括:指定安全范围策略名和安全范围名,安全范围策略必须存在,安全范围必须存在,只有没有被应用到标记的安全范围才可以被删除;

添加安全分组包括:指定安全分组策略名、安全分组名、父安全组名,安全分组策略名必须存在,父安全组名必须存在,安全分组名必须唯一;修改分安全组,指定安全分组策略名,原安全分组名,新安全分组名,安全分组策略必须存在,原安全分组必须存在,新安全分组名必须唯一;修改父安全组,指定安全分组策略名,安全分组名,父安全组名,安全分组策略必须存在,安全分组必须存在,父安全组必须存在,安全组不能构成闭环;删除安全分组,指定安全分组策略名、安全组名,安全分组策略必须存在,安全分组必须存在,其或者其自安全组没有被应用于安全标记时才可以被删除;

采取第三方式创建和管理安全标记,第三方式包括创建标记值、修改标记值和删除标记值;删除标记值仅限于删除未被应用的标记值;创建安全标记包括:指定安全标记策略名、标记值,标记值中使用的安全标记构成组件必须已经创建;修改安全标记包括:指定安全标记策略名、原标记值、新标记值,原标记值必须存在,新标记值必须符合创建安全标记的要求,如果安全标记已经被应用,可能会影响数据可见性;删除安全标记包括:指定安全标记策略名和标记值,安全标记策略名和标记值必须存在,如果标记值已经被应用,则不能删除;

存储安全策略和安全标记相对应的元数据;元数据包括:安全策略元数据、安全等级元数据、安全范围元数据、安全组元数据和安全标记元数据,以及数据库行对象安全策略元数据、用户策略元数据、用户请求权限元数据和超级用户元数据;

安全策略元数据包括策略ID和策略名称,策略ID和策略名称不能重复;

安全等级元数据包括等级数值和等级名称,等级数值为整数类型,有大小之分,用于对应名称之间安全等级大小的比较,安全等级创建在策略之上,需要指定策略ID,每个策略内等级数值和等级名称唯一;

安全范围元数据包括范围ID和范围名称,安全范围创建在策略之上,需要指定策略ID,每个策略内范围名称和范围ID唯一;

安全组元数据包括组ID、组名称和父组ID,安全组创建在策略之上,需要指定策略ID,每个策略内组名称和组ID唯一;

安全标记元数据包括标记ID和标记值,安全标记创建在策略之上,需要指定策略ID,标记ID唯一;

标记值格式为Level:[Compartment{,Compartment}]:[Group{,Group}],如L01:C01,C02:G01;任意两个标记安全关系需满足如下条件:

条件一:对于两个给定的有效安全标记,能够判定他们是否相等,是否其中一个大于另一个;

条件二:在安全标记集合中存在一个“最小上界”,对于给定的两个有效的安全标记,存在一个有效的安全标记大于或者等于这两个安全标记;

条件三:在安全标记集合中存在一个“最大下界”,对于给定的两个有效的安全标记,存在一个有效的安全标记不大于这两个标记;

数据库行对象安全策略元数据包括库名、表名、列名、策略ID、标记ID,安全标记可视选项和开启选项,库名、表名和策略ID均唯一;

用户策略元数据包括用户名、主机名、策略ID、读标记、写标记、默认读标记、默认写标记和默认行标记,其中用户名、主机名和策略ID均唯一;

用户请求权限元数据包括用户名、主机名、策略ID、用户权限,用户权限可选读或者全权限,其中用户名、主机名和策略ID均唯一;

超级用户元数据包括用户名和主机名,用户名和主机名唯一。

应用单元,用于将安全策略和安全标记应用于用户和数据库行对象;具体为:

将安全策略应用于用户,包括设置读标记、写标记、默认标记、默认写标记和行标记;用户登录后查看当前会话涉及到的安全标记;新插入的数据根据当前会话行标记默认应用安全标记;读标记用于设置用户读的最大安全等级、读的安全范围和读的安全组,规定了用户的最大读范围;写标记用于设置用户写的最小安全等级、写的安全范围和写的安全组,限制用户最小写范;默认标记为用户登录后默认用于读的安全等级,默认写标记为用户登录后默认用于读的安全等级,用户登录后默认用于写的安全等级;行标记为用户登录后的会话行标记初始值,或用户没有指定标记值时的标记默认值;

对用户应用策略包括:指定用户名、主机名、策略名、读标记、写标记、默认标记和行标记;策略名必须存在,使用的标记值不能提前创建,但是其中元素必须存在,且符合标记语法,默认标记会根据写标记和行标记自动创建;

对用户更改安全策略包括:指定用户名、主机名、策略名、读标记、写标记、默认标记和行标记,更新的标记需要满足应用标记时的条件;

对用户删除安全策略包括:指定用户名、主机名和策略名;

用户可以查看当前会话涉及到的安全标记,默认是用户元数据中对应的安全等级,用户登录后,使用用户的默认标记赋值,并且可以预设函数设置;在读请求时,以默认写标记为准;写请求可能只有部分组件使用;

将安全策略应用于数据库行对象,包括创建行安全标记、删除行安全标记、开启行安全策略和关闭行安全策略;多个安全策略可应用于同一个行对象,同一个策略只能应用一次。

创建行安全标记,默认为表添加一列;对于开启行安全策略,默认为开启状态;关闭行安全策略中,关闭表上的已应用某个策略后,该策略在该表上不生效。

用户和数据行应用安全策略之后,对于用户的获取请求,根据读规则,确定用户对数据的可见性,只返回对用户可见数据。标记列为隐藏时,使用获取中的查询功能,隐藏的标记列不显示,如需查询标记列的值,需要指定对应列名。对于添加指令,标记列的值如果显示指定,那么必须满足当前用户写的权限,如果没有指定,就设置为当前用户行安全标记的ID值。当存在隐藏标记列且添加指令没有指定列名时,隐藏标记列没有计算在插入列中。对于更新指令,更新的数据必须满足用户有写权限,且不能更新标记列的值。如果更新的行可见不可写,则报错;对于删除指令,删除的数据必须满足用户有写权限。如果删除的行可见但不可写,则报错;

设置特权用户时,可以指定为读权限,表示该用户对该策略具有读特权,对受该策略保护的数据可见。可以指定用户具有全部权限,表示该用户有在该策略上读写特权,对受该策略保护的数据可见可写。

上述技术方案的有益效果为:采用本实施例提供的方案,通过定义安全等级、安全范围和安全组,以及安全标记、安全标记的安全策略,可以从不同维度对数据行对象和用户安全属性进行预先描述,为后续的判定和分析打下基础;通过将安全策略和安全标记应用于用户和数据库行对象,可以为用户的读写访问请求提供基本的安全条件;通过为用户和数据行对象设置安全策略,可以保证有具体的读写判别规则对用户的读写请求进行判别。

在一个实施例中,判断模块包括读访问请求判断单元和写访问请求判断单元;

读访问请求判断单元,用于当用户对数据库行对象发出读访问请求时,利用读规则判断用户对数据库行对象是否具有读访问权限,具体包括以下操作:

步骤一:判定用户默认安全等级是否大于等于数据库行对象的安全等级,若不大于等于数据库行对象的安全等级,则不允许访问;若大于等于数据库行对象的安全等级,则跳转至步骤二;

步骤二:判定请求的数据库行对象是否存在安全组,若存在安全组,则跳转至步骤三;若不存在安全组,则跳转至步骤四;

步骤三:判定用户是否至少包含数据库行对象的一个安全组或者父安全组,若不包含,则不允许访问;若包含,则跳转至步骤四;

步骤四:判定数据库行对象是否存在安全范围,若不存在,则允许访问;若存在,则跳转至步骤五;

步骤五:判定用户是否包含数据库行对象全部的安全范围,若包含,则允许访问;若不包含,则不允许访问;

写访问请求判断单元,用于当用户对数据库行对象发出写访问请求时,利用写规则判断用户对数据库行对象是否具有写访问权限,具体包括以下操作:

第一步骤:判定用户默认安全等级是否大于等于数据库行对象安全等级,若不大于等于数据库行对象安全等级,则不允许访问;若大于等于数据库行对象安全等级,则跳转至第二步骤;

第二步骤:判定用户最小安全等级是否小于等于数据库行对象安全等级,若不小于等于数据库行对象安全等级,则不允许访问;若小于等于数据库行对象安全等级,则跳转至第三步骤;

第三步骤:判定数据库行对象是否存在安全组,若不存在安全组,则跳转至第四步骤;若存在安全组,则跳转至第五步骤;

第四步骤:判定用户是否至少包含数据库行对象的一个安全组或者父安全组,若不包含,则不允许访问;若包含,则跳转至第五步骤;

第五步骤:判定数据库行对象是否存在安全范围,若不存在,则允许访问,若存在,则跳转至第六步骤;

第六步骤:判定用户是否包含数据库行对象全部安全范围,若不包含,则允许访问;若包含,则不允许访问。

上述技术方案的工作原理为:判断模块包括读访问请求判断单元和写访问请求判断单元;

读访问请求判断单元,用于当用户对数据库行对象发出读访问请求时,利用读规则判断用户对数据库行对象是否具有读访问权限,具体包括以下操作:

步骤一:判定用户默认安全等级是否大于等于数据库行对象的安全等级,若不大于等于数据库行对象的安全等级,则不允许访问;若大于等于数据库行对象的安全等级,则跳转至步骤二;

步骤二:判定请求的数据库行对象是否存在安全组,若存在安全组,则跳转至步骤三;若不存在安全组,则跳转至步骤四;

步骤三:判定用户是否至少包含数据库行对象的一个安全组或者父安全组,若不包含,则不允许访问;若包含,则跳转至步骤四;

步骤四:判定数据库行对象是否存在安全范围,若不存在,则允许访问;若存在,则跳转至步骤五;

步骤五:判定用户是否包含数据库行对象全部的安全范围,若包含,则允许访问;若不包含,则不允许访问;

写访问请求判断单元,用于当用户对数据库行对象发出写访问请求时,利用写规则判断用户对数据库行对象是否具有写访问权限,具体包括以下操作:

第一步骤:判定用户默认安全等级是否大于等于数据库行对象安全等级,若不大于等于数据库行对象安全等级,则不允许访问;若大于等于数据库行对象安全等级,则跳转至第二步骤;

第二步骤:判定用户最小安全等级是否小于等于数据库行对象安全等级,若不小于等于数据库行对象安全等级,则不允许访问;若小于等于数据库行对象安全等级,则跳转至第三步骤;

第三步骤:判定数据库行对象是否存在安全组,若不存在安全组,则跳转至第四步骤;若存在安全组,则跳转至第五步骤;

第四步骤:判定用户是否至少包含数据库行对象的一个安全组或者父安全组,若不包含,则不允许访问;若包含,则跳转至第五步骤;

第五步骤:判定数据库行对象是否存在安全范围,若不存在,则允许访问,若存在,则跳转至第六步骤;

第六步骤:判定用户是否包含数据库行对象全部安全范围,若不包含,则允许访问;若包含,则不允许访问。

上述技术方案的有益效果为:采用本实施例提供的方案,通过针对用户对数据库行对象发出的读写访问请求,利用读写规则判断用户对数据库行对象是否具有写访问权限,可保证强制访问的安全执行。

在一个实施例中,还包括用户访问请求检测模块,用于检测用户的访问请求,判定用户是否为危险用户,以保证数据行对象的安全访问;用户访问请求检测模块包括用户访问数据设定单元、用户访问数据获取单元和用户访问请求统计单元;

用户访问数据设定单元,用于设定数据行对象对应的同一访问用户的正常访问间隔周期,以及数据行对象对应的单位周期内的正常访问量;

用户访问数据获取单元,用于基于检测工具检测目标用户对同类数据行对象的第一访问周期,以及单位周期内的第一访问量;若第一访问周期小于正常访问间隔周期,并且第一访问量大于正常访问量,将目标用户定位疑似危险用户;

用户访问请求统计单元,用于基于检测工具检测疑似危险用户对同类数据行对象的访问请求未通过的次数占比,若次数占比大于预设的次数占比阈值,则将疑似危险用户判定为危险用户。

上述技术方案的工作原理为:还包括用户访问请求检测模块,用于检测用户的访问请求,判定用户是否为危险用户,以保证数据行对象的安全访问;用户访问请求检测模块包括用户访问数据设定单元、用户访问数据获取单元和用户访问请求统计单元;

用户访问数据设定单元,用于设定数据行对象对应的同一访问用户的正常访问间隔周期,以及数据行对象对应的单位周期内的正常访问量;

用户访问数据获取单元,用于基于检测工具检测目标用户对同类数据行对象的第一访问周期,以及单位周期内的第一访问量;若第一访问周期小于正常访问间隔周期,并且第一访问量大于正常访问量,将目标用户定位疑似危险用户;

用户访问请求统计单元,用于基于检测工具检测疑似危险用户对同类数据行对象的访问请求未通过的次数占比,若次数占比大于预设的次数占比阈值,则将疑似危险用户判定为危险用户。

上述技术方案的有益效果为:采用本实施例提供的方案,通过对用户的访问请求的检测,判定用户是否为危险用户,可以保证数据行对象的安全访问。

在一个实施例中,还包括访问请求测试评估模块,用于在接收用户读写请求前,测试评估数据库中行标记,并调整数据库行标记的参数;访问请求测试评估模块包括用户访问反馈信息获取单元、数据行对象访问请求问题获取单元和数据库行标记调整单元;

用户访问反馈信息获取单元,用于获取测试用户的对数据库行对象完成读写请求后的反馈信息;

数据行对象访问请求错误信息获取单元,用于获取数据库行对象在应对测试用户的读写请求过程中的执行错误信息;

数据库行标记调整单元,用于根据反馈信息和执行错误信息,调整安全等级、安全范围的区间大小和安全组的结构层次。

上述技术方案的工作原理为:还包括访问请求测试评估模块,用于在接收用户读写请求前,测试评估数据库中行标记,并调整数据库行标记的参数;访问请求测试评估模块包括用户访问反馈信息获取单元、数据行对象访问请求问题获取单元和数据库行标记调整单元;

用户访问反馈信息获取单元,用于获取测试用户的对数据库行对象完成读写请求后的反馈信息;

数据行对象访问请求错误信息获取单元,用于获取数据库行对象在应对测试用户的读写请求过程中的执行错误信息;

数据库行标记调整单元,用于根据反馈信息和执行错误信息,调整安全等级、安全范围的区间大小和安全组的结构层次。

在用户完成读写访问请求过程中,需要查找数据库的数据行对象所对应的索引文件,索引查找的过程中会产生磁盘I/O消耗,相对于内存存取,I/O存取的消耗要高几个数量级;在有限内存中,为了减少磁盘I/O消耗,通过设计合理的索引树结构,降低树的深度来减少磁盘I/O的操作次数,从而提高读写访问请求的效率;其中通过分析时间开销,选取最优的枝叶比,可使索引结构达到最优配置;树结构的时间开销计算公式为:

R代表是每次随机检索操作的时间开销,A表示数据库在稳定状态时的数据规模,β是常数,表示磁盘中磁头定位时间,T

上述技术方案的有益效果为:采用本实施例提供的方案,通过对数据库中行标记的测试评估,可以保证在接收用户读写请求前,测试评估好数据库的行标记,便于强制访问的顺利执行;通过分析时间开销,选取最优的枝叶比,可使索引结构达到最优配置,从而提高读写访问请求的效率。

显然,本领域的技术人员可以对本发明进行各种改动和变型而不脱离本发明的精神和范围。这样,倘若本发明的这些修改和变型属于本发明权利要求及其等同技术的范围之内,则本发明也意图包含这些改动和变型在内。

相关技术
  • 一种图片样本标记装置及方法
  • 一种试件标记点位置精度检测装置及方法
  • 一种固态硬盘中的坏块的标记方法、装置、设备及介质
  • 一种数据库中行级标记方法与装置
  • 一种用于数据库二级缓存的方法、装置及数据库存储系统
技术分类

06120116331875