一种基于SQL语句拦截解析技术的数据隔离实现方法技术

技术编号:23624714 阅读:32 留言:0更新日期:2020-03-31 22:35
本专利涉及业务功能下需要有不同的数据隔离方法,具体为一种基于SQL语句拦截解析技术的数据隔离实现方法。一种基于SQL语句拦截解析技术的数据隔离实现方法,合并策略分为四种:替换、附加、覆盖、自定义。实现满足特定或例外场景的数据隔离要求,提供数据安全和便捷效果。

An implementation method of data isolation based on SQL statement interception and parsing technology

【技术实现步骤摘要】
一种基于SQL语句拦截解析技术的数据隔离实现方法
本专利涉及业务功能下需要有不同的数据隔离方法,具体为一种基于SQL语句拦截解析技术的数据隔离实现方法。
技术介绍
目前一般仅支持以数据视角定义数据隔离策略,对于特定或例外场景的数据隔离要求,比如同一系统用户,当在不同业务功能下,需要有不同的数据隔离策略时,无法有效支撑,需要开发人员进行定制。数据隔离策略不支持灵活的扩展及自定义,往往仅针对的特定业务领域。对于个人相关数据的定义,不满足业务实际需求,仅能支持用户创建或修改的数据。
技术实现思路
针对以上技术问题,本专利目的在于提供一种基于SQL语句拦截解析技术的数据隔离实现方法,以实现满足特定或例外场景的数据隔离要求,提供数据安全和便捷效果。本专利的具体技术方案如下:一种基于SQL语句拦截解析技术的数据隔离实现方法,其特征在于:合并策略分为四种:替换、附加、覆盖、自定义;替换:禁用数据授权的隔离规则,完全使用DACO定义的隔离规则;附加:在基于业务数据的数据权限的基础上,再附加上数据权限控制;即:【基于业务数据的数据权限】AND【DACO数据权限】;覆盖:当两种机制的数据权限存在冲突时,用DACO中的权限替换基于业务数据的数据权限;自定义:数据访问控制器不做任何处理,数据权限完全交由业务代码自行进行控制;其中,数据权限的技术实现:1、通过在数据源中注入SQL拦截器,实现对所有数据库访问请求的拦截;2、对拦截到的SQL进行语法解析;3、根据访问的目标表/视图、当前用户信息、业务操作URL,获取数据权限;4、根据数据权限,移除SQL语句中不可访问的列;5、根据数据权限,生成WHERE查询条件子句,并根据合并规则合并到原SQL语句的查询条件中;6、生成新的SQL语句,并提交执行;数据隔离器主要分有以下几个核心步骤:1、SQL拦截器,实现对所有数据库访问SQL的拦截2、SQL处理器:负责解析SQL语句,并根据数据权限规则对SQL进行处理3、数据访问日志:负责记录数据访问信息(SQL语句、条件、执行时间、执行人等),记录不合规的数据访问。数据隔离,数据隔离是对用户可访问的数据进行授权,即控制用户可以查看哪些数据(可见的数据范围),以及数据的哪些属性(可见的数据内容)具体方法为:基于组织机构的授权策略;其主要是根据织机构来设定授权策略,其适用的场景:查看本单位的订单数据;查看本部门及下级部门的事件数据;查看指定部门的设备台帐信息;只能查看某单位的人员;只能选择本单位的人员;这些场景都于数据的所属组织机构相关;数据隔离方法的步骤是:在所有数据库表中统一增加以下字段:创建人ID、修改人ID、创建人所属部门ID、创建人所属单位ID,创建人所属组织ID,在数据保存时,记录以上信息;有SQL处理器中,解析条件规则表达式,根据部门ID、单位ID、组织ID创建查询表达式并自动加入到查询条件中;基于业务数据属性的授权策略;该机制是根据业务数据的某些属性来设定授权策略,如:查看密级不高于当前用户密级的设备台帐;查看密级为秘密级的设备台帐;查看存放在区域A的设备台帐;查看存储类的设备;这些场景只与业务数据的业务属性相关;基于操作历史记录的授权策略,其主要实现自己相关数据的隔离;自己相关的数据,框架的定义如下:在流程中参与过的数据(即在流程中做过任何操作,包括待办任务做过查看);对业务数据组做过增、删、改的数据;该策略主要是实现可以查看自己相关的数据,无论这些数据是否在其它授权策略内授有数据权限;该策略是用户默认所具有的数据权限,无需额外进行配置;其与其他数据权限的行隔离规则是并集的关系,在列数据权限隔离规则上是交集的关系;具体方法为:对所有需实现此种数据权限的业务数据,均需要增加表来记录流程参与日志、业务数据操作日志;统一约定记录日志的表命名规则;操作日志表命名规则:[业务数据表名]+”_OPLOGS”;流程参与日志表命名规则:[业务数据表名]+”_WFLOGS”;按规则记录日志信息;处理实现机制:在SQL访问控制器中截取对所有UPDATE、INSERT、DELETE操作的SQL语句,解析后获取目标表名,通过命名规则检索其是否存在日志表,如果存在,则自动机滤操作人信息;数据隔离器自动生成WHERE查询条件,并合并到原查询条件中。其处理逻辑是:在数据访问控制器中,对SELECT操作的主表,判断是否存在日志表,如果存在,则自动加上EXISTS查询条件,该条件与其他限制隔离条件是OR的关系,即:自己相关隔离规则OR(其他隔离条件1AND其他隔离条件2);对于数据隔离的授权,框架提供两种授权方法:基于业务数据对象的数据权限授权模型;此模型以数据对象为授权资源,其本质是以数据库表、视图、表列作为资源进行权限管理;此模型提供以下的数据权限的授权;对数据表的授权管理,提供增、删、查、改权限;对数据行的授权管理,通过配置查询条件来实现;数据列:具有读权限,控制数据项是否可被查看;视图:只有查询的权限。数据隔离数据隔离是对用户可访问的数据进行授权,即控制用户可以查看哪些数据(可见的数据范围),以及数据的哪些属性(可见的数据内容)。框架支持以下几种数据授权策略:基于组织机构的授权策略其主要是根据织机构来设定授权策略,其适用的场景:查看本单位的订单数据查看本部门及下级部门的事件数据查看指定部门的设备台帐信息只能查看某单位的人员只能选择本单位的人员这些场景都于数据的所属组织机构相关。实现机制:在所有数据库表中统一增加以下字段:创建人ID、修改人ID、创建人所属部门ID、创建人所属单位ID,创建人所属组织ID,在数据保存时,记录以上信息有SQL处理器中,解析条件规则表达式,根据部门ID、单位ID、组织ID创建查询表达式并自动加入到查询条件中基于业务数据属性的授权策略该机制是根据业务数据的某些属性来设定授权策略,如:查看密级不高于当前用户密级的设备台帐查看密级为秘密级的设备台帐查看存放在区域A的设备台帐查看存储类的设备这些场景只与业务数据的业务属性相关基于操作历史记录的授权策略,其主要实现自己相关数据的隔离所谓自己相关的数据,框架的定义如下:在流程中参与过的数据(即在流程中做过任何操作,包括待办任务做过查看)对业务数据组做过增、删、改的数据该策略主要是实现可以查看自己相关的数据,无论这些数据是否在其它授权策略内授有数据权限。该策略是用户默认所具有的数据权限,无需额外进行配置。其与其他数据权限的行隔离规则是并集的关系,在列数据权限隔离规则上是交集的关系。该策略的实现机制:对所有需实现此种数据权限的业务数据,均需要增加表来记录流程参与日志、业务数据操作日志统一约定记录日志本文档来自技高网...

【技术保护点】
1.一种基于SQL语句拦截解析技术的数据隔离实现方法,其特征在于:合并策略分为四种:替换、附加、覆盖、自定义;/n替换:禁用数据授权的隔离规则,完全使用DACO定义的隔离规则;/n附加:在基于业务数据的数据权限的基础上,再附加上数据权限控制;即:【基于业务数据的数据权限】 AND 【DACO数据权限】;/n覆盖:当两种机制的数据权限存在冲突时,用DACO中的权限替换基于业务数据的数据权限;/n自定义:数据访问控制器不做任何处理,数据权限完全交由业务代码自行进行控制;/n其中,数据权限的技术实现步骤为:/n1-通过在数据源中注入SQL拦截器,实现对所有数据库访问请求的拦截;/n2-对拦截到的SQL进行语法解析;/n3-根据访问的目标表/视图、当前用户信息、业务操作URL,获取数据权限;/n4-根据数据权限,移除SQL语句中不可访问的列;/n5-根据数据权限,生成WHERE查询条件子句,并根据合并规则合并到原/nSQL语句的查询条件中;/n6-生成新的SQL语句,并提交执行;/n数据隔离器主要分有以下几个核心步骤:/n1-SQL拦截器,实现对所有数据库访问SQL的拦截/n2-SQL处理器:负责解析SQL语句,并根据数据权限规则对SQL进行处理/n3-数据访问日志:负责记录数据访问信息(SQL语句、条件、执行时间、执行人等),记录不合规的数据访问;/n数据隔离,数据隔离是对用户可访问的数据进行授权,即控制用户可以查看哪些数据(可见的数据范围),以及数据的哪些属性(可见的数据内容)具体方法为:基于组织机构的授权策略;其主要是根据织机构来设定授权策略,其适用的场景:查看本单位的订单数据;查看本部门及下级部门的事件数据;查看指定部门的设备台帐信息;只能查看某单位的人员;只能选择本单位的人员;这些场景都于数据的所属组织机构相关;/n数据隔离方法的步骤是:在所有数据库表中统一增加以下字段:创建人ID、修改人ID、创建人所属部门ID、创建人所属单位ID,创建人所属组织ID,在数据保存时,记录以上信息;有SQL处理器中,解析条件规则表达式,根据部门ID、单位ID、组织ID创建查询表达式并自动加入到查询条件中;基于业务数据属性的授权策略;该机制是根据业务数据的某些属性来设定授权策略,如:查看密级不高于当前用户密级的设备台帐;查看密级为秘密级的设备台帐;查看存放在区域A的设备台帐;查看存储类的设备;这些场景只与业务数据的业务属性相关;基于操作历史记录的授权策略,其主要实现自己相关数据的隔离;/n自己相关的数据,框架的定义如下:在流程中参与过的数据(即在流程中做过任何操作,包括待办任务做过查看);对业务数据组做过增、删、改的数据;该策略主要是实现可以查看自己相关的数据,无论这些数据是否在其它授权策略内授有数据权限;该策略是用户默认所具有的数据权限,无需额外进行配置;其与其他数据权限的行隔离规则是并集的关系,在列数据权限隔离规则上是交集的关系;具体方法为:对所有需实现此种数据权限的业务数据,均需要增加表来记录流程参与日志、业务数据操作日志;统一约定记录日志的表命名规则;操作日志表命名规则:[业务数据表名]+”_OPLOGS”;流程参与日志表命名规则:[业务数据表名]+”_WFLOGS”;按规则记录日志信息;处理实现机制:在SQL访问控制器中截取对所有UPDATE、INSERT、DELETE操作的SQL语句,解析后获取目标表名,通过命名规则检索其是否存在日志表,如果存在,则自动机滤操作人信息;数据隔离器自动生成WHERE查询条件,并合并到原查询条件中;其处理逻辑是:在数据访问控制器中,对SELECT操作的主表,判断是否存在日志表,如果存在,则自动加上EXISTS查询条件,该条件与其他限制隔离条件是OR的关系,即:自己相关隔离规则OR(其他隔离条件1 AND 其他隔离条件2);/n对于数据隔离的授权,框架提供两种授权方法:/n基于业务数据对象的数据权限授权模型;此模型以数据对象为授权资源,其本质是以数据库表、视图、表列作为资源进行权限管理;此模型提供以下的数据权限的授权;对数据表的授权管理,提供增、删、查、改权限;对数据行的授权管理,通过配置查询条件来实现;数据列:具有读权限,控制数据项是否可被查看;视图:只有查询的权限。/n...

【技术特征摘要】
1.一种基于SQL语句拦截解析技术的数据隔离实现方法,其特征在于:合并策略分为四种:替换、附加、覆盖、自定义;
替换:禁用数据授权的隔离规则,完全使用DACO定义的隔离规则;
附加:在基于业务数据的数据权限的基础上,再附加上数据权限控制;即:【基于业务数据的数据权限】AND【DACO数据权限】;
覆盖:当两种机制的数据权限存在冲突时,用DACO中的权限替换基于业务数据的数据权限;
自定义:数据访问控制器不做任何处理,数据权限完全交由业务代码自行进行控制;
其中,数据权限的技术实现步骤为:
1-通过在数据源中注入SQL拦截器,实现对所有数据库访问请求的拦截;
2-对拦截到的SQL进行语法解析;
3-根据访问的目标表/视图、当前用户信息、业务操作URL,获取数据权限;
4-根据数据权限,移除SQL语句中不可访问的列;
5-根据数据权限,生成WHERE查询条件子句,并根据合并规则合并到原
SQL语句的查询条件中;
6-生成新的SQL语句,并提交执行;
数据隔离器主要分有以下几个核心步骤:
1-SQL拦截器,实现对所有数据库访问SQL的拦截
2-SQL处理器:负责解析SQL语句,并根据数据权限规则对SQL进行处理
3-数据访问日志:负责记录数据访问信息(SQL语句、条件、执行时间、执行人等),记录不合规的数据访问;
数据隔离,数据隔离是对用户可访问的数据进行授权,即控制用户可以查看哪些数据(可见的数据范围),以及数据的哪些属性(可见的数据内容)具体方法为:基于组织机构的授权策略;其主要是根据织机构来设定授权策略,其适用的场景:查看本单位的订单数据;查看本部门及下级部门的事件数据;查看指定部门的设备台帐信息;只能查看某单位的人员;只能选择本单位的人员;这些场景都于数据的所属组织机构相关;
数据隔离方法的步骤是:在所有数据库表中统一增加以下字段:创建人ID、修改人ID、创建人所属部门ID、创建人所属单位ID,创建人所属组织ID,在数据保存时,记录以上信息;有SQL处理器中,解析条件规则表达式...

【专利技术属性】
技术研发人员:饶旗徐磊
申请(专利权)人:四川邦辰信息科技有限公司
类型:发明
国别省市:四川;51

网友询问留言 已有0条评论
  • 还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。

1