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

数据库访问方法及装置

文献发布时间:2023-06-19 11:32:36


数据库访问方法及装置

技术领域

本发明涉及系统开发技术领域,尤其涉及数据库访问方法及装置。

背景技术

本部分旨在为权利要求书中陈述的本发明实施例提供背景或上下文。此处的描述不因为包括在本部分中就承认是现有技术。

在一个项目系统的不同组织机构中,存在相同职能部门,他们对同一个系统的要求既存在共性又有特殊性。从整体看系统是相同的,但是具体到功能点、报表、数据等,又有一些细微的差异。银行作为一个经营风险企业,在国外有开设分行机构的银行,是受到各个国家的监管部门的严格监管的。例如,对于在国外开有分行(机构)的银行,当地监管部门要求其一些监管报送系统是独立的,不允许互相访问数据库。对于一些重要的监管报送数据,比如银行在计算资本充足率时必须由系统进行取数,且系统要保持独立性。因此对于一个相同的功能模块,每个不同国家的分行都要开发一个独立系统,会造成巨大的资源浪费。

系统主要分为前台JavaWeb部分和后台数据库部分。一般来说,一个机构使用一个属于自己的独立系统。但是,如果前台界面(JavaWeb)功能一致的情况下,不同机构系统之间的传统做法是:共同使用一个JavaWeb,这个JavaWeb会连接一个或者多个数据库,每个机构通过JavaWeb来访问自己的数据库,但是服务器能够连接的数据源是有限制的,不能无限制增长。当使用相同JavaWeb的机构数越来越多的时候,这个JavaWeb所需要连接的数据库会越来越多,java服务器占用的内存也会越来越大,性能会严重下降。如果因为该相同功能为每个机构各自开发一套系统,又成本太高,冗余太多,造成很大的资源浪费。

发明内容

本发明实施例提供一种数据库访问方法,用以在保持多个系统独立的同时保障前台性能,该数据库访问方法包括:

接收前台界面发送的用户登录信息中的用户标识及SQL语句;

对接收的SQL语句进行封装和识别,生成SQL语句对应的SQL函数;

根据用户标识及生成的SQL函数中的参数确定用户对待访问的目标数据库的访问权限;

在确定用户具备对目标数据库的访问权限时,将目标数据库中的数据表及数据表字段写入预先创建的中间数据库;中间数据库包括预先创建的标识数据表,标识数据表包括每个系统的系统标识及具备对系统标识对应系统的数据库访问权限的用户标识;每个系统对应的数据库的数据表包括值为数据库标识的数据库标识字段;

利用生成的SQL函数访问中间数据库,将返回值返回给前台界面。

在本发明的一实施例中,数据库访问方法,还包括:

在确定用户不具备对目标数据库的访问权限时,拒绝用户访问目标数据库。

在本发明的一实施例中,SQL函数中的参数包括目标数据库的数据库标识和/或系统标识,根据用户标识及生成的SQL函数中的参数确定用户对待访问的目标数据库的访问权限,包括:根据生成的SQL函数中的数据库标识和/或系统标识确定待访问的目标数据库;

基于中间数据库的标识数据表,根据用户标识确定用户对待访问的目标数据库的访问权限。

在本发明的一实施例中,数据库访问方法,还包括:

根据接收到的数据库创建指令,创建中间数据库。

在本发明的一实施例中,数据库访问方法,还包括:

根据接收到的表创建指令,创建中间数据库中的标识数据表。

在本发明的一实施例中,数据库访问方法,还包括:

根据接收到的字段创建指令,创建每个系统对应数据库包含的数据表的数据库标识字段。

在本发明的一实施例中,每个系统的数据库标识与系统标识相同。

本发明实施例还提供一种数据库访问装置,用以在保持多个系统独立的同时保障前台性能,该数据库访问装置包括:

接收模块,用于接收前台界面发送的用户登录信息中的用户标识及SQL语句;

函数生成模块,用于对接收的SQL语句进行封装和识别,生成SQL语句对应的SQL函数;

权限确定模块,用于根据用户标识及生成的SQL函数中的参数确定用户对待访问的目标数据库的访问权限;

存储模块,用于在确定用户具备对目标数据库的访问权限时,将目标数据库中的数据表及数据表字段写入预先创建的中间数据库;中间数据库包括预先创建的标识数据表,标识数据表包括每个系统的系统标识及具备对系统标识对应系统的数据库访问权限的用户标识;每个系统对应的数据库的数据表包括值为数据库标识的数据库标识字段;

数据库访问模块,用于利用生成的SQL函数访问中间数据库,将返回值返回给前台界面。

在本发明的一实施例中,数据库访问装置,还包括:

拒绝访问模块,用于在确定用户不具备对目标数据库的访问权限时,拒绝用户访问目标数据库。

在本发明的一实施例中,SQL函数中的参数包括目标数据库的数据库标识和/或系统标识,权限确定模块包括:

目标数据库确定单元,用于根据生成的SQL函数中的数据库标识和/或系统标识确定待访问的目标数据库;

权限确定单元,用于基于中间数据库的标识数据表,根据用户标识确定用户对待访问的目标数据库的访问权限。

在本发明的一实施例中,数据库访问装置,还包括:

数据库创建模块,用于根据接收到的数据库创建指令,创建中间数据库。

在本发明的一实施例中,数据库访问装置,还包括:

数据表创建模块,用于根据接收到的表创建指令,创建中间数据库中的标识数据表。

在本发明的一实施例中,数据库访问装置,还包括:

字段创建模块,用于根据接收到的字段创建指令,创建每个系统对应数据库包含的数据表的数据库标识字段。

在本发明的一实施例中,每个系统的数据库标识与系统标识相同。

本发明实施例还提供一种计算机设备,包括存储器、处理器及存储在存储器上并可在处理器上运行的计算机程序,所述处理器执行所述计算机程序时实现上述数据库访问方法。

本发明实施例还提供一种计算机可读存储介质,所述计算机可读存储介质存储有执行上述数据库访问方法的计算机程序。

本发明实施例中,接收前台界面发送的用户登录信息中的用户标识及SQL语句;对接收的SQL语句进行封装和识别,生成SQL语句对应的SQL函数;根据用户标识及生成的SQL函数中的参数确定用户对待访问的目标数据库的访问权限;在确定用户具备对目标数据库的访问权限时,将目标数据库中的数据表及数据表字段写入预先创建的中间数据库;中间数据库包括预先创建的标识数据表,标识数据表包括每个系统的系统标识及具备对系统标识对应系统的数据库访问权限的用户标识;每个系统对应的数据库的数据表包括值为数据库标识的数据库标识字段;利用生成的SQL函数访问中间数据库,将返回值返回给前台界面。本发明实施例通过创建包含系统标识及具备对系统标识对应系统的数据库访问权限的用户标识的中间数据库,使得多个系统可以共用一个前台界面,通过该中间数据库访问不同系统对应的数据库,在保持各个系统相互独立的同时,保障前台性能。

附图说明

为了更清楚地说明本发明实施例或现有技术中的技术方案,下面将对实施例或现有技术描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本发明的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。在附图中:

图1为本发明实施例提供的数据库访问方法的实现流程图;

图2为本发明实施例提供的数据库访问方法的另一实现流程图;

图3为本发明实施例提供的数据库访问方法中步骤103的实现流程图;

图4为本发明实施例提供的数据库访问方法的又一实现流程图;

图5为本发明实施例提供的数据库访问装置的功能模块图;

图6为本发明实施例提供的数据库访问装置的另一功能模块图;

图7为本发明实施例提供的数据库访问装置中权限确定模块503的结构框图;

图8为本发明实施例提供的数据库访问装置的又一功能模块图。

具体实施方式

为使本发明实施例的目的、技术方案和优点更加清楚明白,下面结合附图对本发明实施例做进一步详细说明。在此,本发明的示意性实施例及其说明用于解释本发明,但并不作为对本发明的限定。

图1示出了本发明实施例提供的数据库访问方法的实现流程,为便于描述,仅示出了与本发明实施例相关的部分,详述如下:

如图1所示,数据库访问方法,其包括:

步骤101,接收前台界面发送的用户登录信息中的用户标识及SQL语句;

步骤102,对接收的SQL语句进行封装和识别,生成SQL语句对应的SQL函数;

步骤103,根据用户标识及生成的SQL函数中的参数确定用户对待访问的目标数据库的访问权限;

步骤104,在确定用户具备对目标数据库的访问权限时,将目标数据库中的数据表及数据表字段写入预先创建的中间数据库;中间数据库包括预先创建的标识数据表,标识数据表包括每个系统的系统标识及具备对系统标识对应系统的数据库访问权限的用户标识;每个系统对应的数据库的数据表包括值为数据库标识的数据库标识字段;

步骤105,利用生成的SQL函数访问中间数据库,将返回值返回给前台界面。

在本发明实施例中,每个系统都构建有对应的数据库,为保障各个系统之间的独立性,本发明在前台界面和每个系统的数据库之前预先创建一个中间数据库,通过该中间数据库访问各个系统的数据库,以保障各个系统之间的独立性。

在创建该中间数据库时,进一步的在中间数据库中创建一标识数据表,该标识数据表中至少包括两个字段,一个是每个系统的系统标识,另外一个是具备对系统标识对应系统的数据库访问权限的用户标识。另外,该标识数据表还可以包括系统的系统标识与具备对系统标识对应系统的数据库访问权限的用户标识的对应关系,即只有与某系统标识对应的用户标识才具备对某系统的数据库的访问权限。

其次,需要为每个系统对应的数据库中的每个数据表增加一个数据库标识字段,该数据库标识字段的默认值为数据表所属数据库的数据库标识,保证在这个数据表增加数据时,该数据库标识字段的值均为数据表所属数据库的数据库标识。另外,为保障用户能够通过中间数据库访问各个系统的数据库,各个系统的数据库需要对中间数据库进行授权,保证用户能够通过中间数据库对各个系统的数据库进行操作。

具体在通过中间数据库访问各个系统的数据库时,用户先通过前台界面登录某系统,该用户登录信息中包含有(具备对某系统的数据库访问权限的)用户标识,前台界面还在用户登录系统后接收用户输入的SQL语句,进而接收前台界面发送的用户登录信息中的用户标识及用户输入的SQL语句。然后,对接收到的SQL语句进行封装和识别,生成SQL语句对应的SQL函数。

其中,通过生成的SQL函数中的参数可以确定用户对待访问的目标数据库,鉴于具备用户标识的用户只能对登录系统的数据库具备访问权限,据此可以根据用户标识及生成的SQL函数中的参数,确定用户是否对对待访问的目标数据库的具备访问权限。在确定用户具备对目标数据库的访问权限时,说明用户可以安全的访问目标数据库,此时即可以将目标数据库中的数据表及数据表字段写入预先创建的中间数据库;此时中间数据库不仅包含目标数据库的所有数据表及数据表字段,还包括目标数据库所包含的数据表的数据库标识字段。

最后,即可利用生成的SQL函数访问中间数据库,实际上访问的是目标数据库的数据,并将返回值返回给前台界面。

在本发明实施例中,接收前台界面发送的用户登录信息中的用户标识及SQL语句;对接收的SQL语句进行封装和识别,生成SQL语句对应的SQL函数;根据用户标识及生成的SQL函数中的参数确定用户对待访问的目标数据库的访问权限;在确定用户具备对目标数据库的访问权限时,将目标数据库中的数据表及数据表字段写入预先创建的中间数据库;中间数据库包括预先创建的标识数据表,标识数据表包括每个系统的系统标识及具备对系统标识对应系统的数据库访问权限的用户标识;每个系统对应的数据库的数据表包括值为数据库标识的数据库标识字段;利用生成的SQL函数访问中间数据库,将返回值返回给前台界面。本发明实施例通过创建包含系统标识及具备对系统标识对应系统的数据库访问权限的用户标识的中间数据库,使得多个系统可以共用一个前台界面,通过该中间数据库访问不同系统对应的数据库,在保持各个系统相互独立的同时,保障前台性能。

图2示出了本发明实施例提供的数据库访问方法的另一实现流程,为便于描述,仅示出了与本发明实施例相关的部分,详述如下:

在本发明的一实施例中,为了保障数据库的安全性,如图2所示,在上述方法步骤的基础上,还包括:

步骤201,在确定用户不具备对目标数据库的访问权限时,拒绝用户访问目标数据库。

其中,用户可能具备对目标数据库的访问权限,也可能不具备对目标数据库的访问权限。在确定用户不具备对目标数据库的访问权限时,此时为保障数据库的安全性,可以拒绝用户访问目标数据库。

在本发明实施例中,在确定用户不具备对目标数据库的访问权限时,拒绝用户访问目标数据库,能够保障数据库的安全性。

图3示出了本发明实施例提供的数据库访问方法中步骤103的实现流程,为便于描述,仅示出了与本发明实施例相关的部分,详述如下:

在本发明的一实施例中,SQL函数中的参数包括目标数据库的数据库标识和/或系统标识。为了提高确定目标数据库访问权限的效率,如图3所示,步骤103,根据用户标识及生成的SQL函数中的参数确定用户对待访问的目标数据库的访问权限,包括:

步骤301,根据生成的SQL函数中的数据库标识和/或系统标识确定待访问的目标数据库;

步骤302,基于中间数据库的标识数据表,根据用户标识确定用户对待访问的目标数据库的访问权限。

鉴于每个系统都有对应的数据库,系统的系统标识与系数据库的数据标识存在对应关系,据此可以通过系统标识确定对应的数据库或数据库标识。因此在用户访问目标数据库时,生成的SQL函数中的参数中可以包括目标数据库的数据库标识和/或系统标识。

具体在确定用户对待访问的目标数据库的访问权限时,可以先基于生成的SQL函数中的数据库标识和/或系统标识确定待访问的目标数据库。鉴于标识数据表包括用户标识对对应的系统标识(系统标识对应数据库标识),进而可以基于中间数据库的标识数据表,确定用户标识确定用户对待访问的目标数据库的访问权限。

例如,在基于中间数据库的标识数据表确定的用户标识对应的系统标识(或数据库标识)与生成的SQL函数中的参数中包含的系统标识(或数据库标识)一致时,说明用户具备对目标数据库访问权限;在基于中间数据库的标识数据表确定的用户标识对应的系统标识(或数据库标识)与生成的SQL函数中的参数中包含的系统标识(或数据库标识)不一致时,说明用户不具备对目标数据库访问权限。

另外,在基于生成的SQL函数中的数据库标识和/或系统标识确定待访问的目标数据库后,可以基于中间数据库的标识数据表,根据用户标识确定用户标识对应的数据库,在目标数据库与用户标识对应的数据库一致时,说明用户具备对目标数据库访问权限;在目标数据库与用户标识对应的数据库不一致时,说明用户不具备对目标数据库访问权限。

在本发明实施例中,根据生成的SQL函数中的数据库标识和/或系统标识确定待访问的目标数据库,基于中间数据库的标识数据表,根据用户标识确定用户对待访问的目标数据库的访问权限,能够提高确定目标数据库访问权限的效率。

图4示出了本发明实施例提供的数据库访问方法的又一的实现流程,为便于描述,仅示出了与本发明实施例相关的部分,详述如下:

在本发明的一实施例中,为了保障各个系统之间的独立性,提高数据库/数据表/字段配置的灵活性,如图4所示,在上述方法步骤的基础上,数据库访问方法还包括:

步骤401,根据接收到的数据库创建指令,创建中间数据库。和/或

在创建中间数据库时,可以基于接收到的数据库创建指令创建中间数据库。另外,还可以基于接收到的修改指令对中间数据库进行修改,以提高中间数据库配置的灵活性。例如对中间数据库包含的数据表及数据表字段、数据库名称等进行修改,修改可以包括数据表的增加、数据表字段的删除,数据库名称的替换修改等。

步骤402,根据接收到的表创建指令,创建中间数据库中的标识数据表。和/或

在创建中间数据库的标识数据表时,可以基于接收到的表创建指令创建中间数据库中的标识数据表。另外,还可以基于接收到的修改指令对中间数据库中的标识数据表进行修改,以提高标识数据表配置的灵活性。例如对中间数据库的标识数据表及数据表字段、数据表名称等进行修改,修改可以包括标识数据表字段的增加、数据表字段的删除,数据表名称的替换修改等。

步骤403,根据接收到的字段创建指令,创建每个系统对应数据库包含的数据表的数据库标识字段。

在创建每个系统对应数据库包含的数据表的数据库标识字段时,可以基于接收到的字段创建指令创建每个系统对应数据库包含的数据表的数据库标识字段。另外,还可以基于接收到的修改指令对每个系统对应数据库包含的数据表的数据库标识字段进行修改,以提高数据表的数据库标识字段配置的灵活性。例如对数据库标识字段、数据库标识字段名称等进行修改,修改可以包括数据库标识字段名称的替换修改等。

在本发明实施例中,根据接收到的数据库创建指令创建中间数据库,能够提高数据库配置的灵活性;根据接收到的表创建指令创建中间数据库中的标识数据表,能够提高数据表配置的灵活性;根据接收到的字段创建指令,创建每个系统对应数据库包含的数据表的数据库标识字段,能够提高数据库标识字段配置的灵活性。

另外,鉴于每个系统可以对应一个或多个数据库,在每个系统对应一个数据库时,系统的系统标识可以和系统对应数据库的数据库标识相同。在每个系统对应多个数据库时,系统的系统标识可以对应多个数据库的多个数据库标识。

本发明实施例还提供一种数据库访问装置,如下面的实施例所述。由于这些装置解决问题的原理与数据库访问方法相似,因此这些装置的实施可以参见方法的实施,重复之处不再赘述。

图5示出了本发明实施例提供的数据库访问装置的功能模块,为便于说明,仅示出了与本发明实施例相关的部分,详述如下:

参考图5,所述数据库访问装置所包含的各个模块用于执行图1对应实施例中的各个步骤,具体请参阅图1以及图1对应实施例中的相关描述,此处不再赘述。本发明实施例中,所述数据库访问装置包括接收模块501、函数生成模块502、权限确定模块503、存储模块504及数据库访问模块505。

接收模块501,用于接收前台界面发送的用户登录信息中的用户标识及SQL语句。

函数生成模块502,用于对接收的SQL语句进行封装和识别,生成SQL语句对应的SQL函数。

权限确定模块503,用于根据用户标识及生成的SQL函数中的参数确定用户对待访问的目标数据库的访问权限。

存储模块504,用于在确定用户具备对目标数据库的访问权限时,将目标数据库中的数据表及数据表字段写入预先创建的中间数据库;中间数据库包括预先创建的标识数据表,标识数据表包括每个系统的系统标识及具备对系统标识对应系统的数据库访问权限的用户标识;每个系统对应的数据库的数据表包括值为数据库标识的数据库标识字段。

数据库访问模块505,用于利用生成的SQL函数访问中间数据库,将返回值返回给前台界面。

在本发明实施例中,每个系统都构建有对应的数据库,为保障各个系统之间的独立性,本发明在前台界面和每个系统的数据库之前预先创建一个中间数据库,通过该中间数据库访问各个系统的数据库,以保障各个系统之间的独立性。

在创建该中间数据库时,进一步的在中间数据库中创建一标识数据表,该标识数据表中至少包括两个字段,一个是每个系统的系统标识,另外一个是具备对系统标识对应系统的数据库访问权限的用户标识。另外,该标识数据表还可以包括系统的系统标识与具备对系统标识对应系统的数据库访问权限的用户标识的对应关系,即只有与某系统标识对应的用户标识才具备对某系统的数据库的访问权限。

其次,需要为每个系统对应的数据库中的每个数据表增加一个数据库标识字段,该数据库标识字段的默认值为数据表所属数据库的数据库标识,保证在这个数据表增加数据时,该数据库标识字段的值均为数据表所属数据库的数据库标识。另外,为保障用户能够通过中间数据库访问各个系统的数据库,各个系统的数据库需要对中间数据库进行授权,保证用户能够通过中间数据库对各个系统的数据库进行操作。

具体在通过中间数据库访问各个系统的数据库时,用户先通过前台界面登录某系统,该用户登录信息中包含有(具备对某系统的数据库访问权限的)用户标识,前台界面还在用户登录系统后接收用户输入的SQL语句,进而接收模块501接收前台界面发送的用户登录信息中的用户标识及用户输入的SQL语句。然后,函数生成模块502对接收到的SQL语句进行封装和识别,生成SQL语句对应的SQL函数。

其中,权限确定模块503通过生成的SQL函数中的参数可以确定用户对待访问的目标数据库,鉴于具备用户标识的用户只能对登录系统的数据库具备访问权限,据此可以根据用户标识及生成的SQL函数中的参数,确定用户是否对对待访问的目标数据库的具备访问权限。存储模块504在确定用户具备对目标数据库的访问权限时,说明用户可以安全的访问目标数据库,此时即可以将目标数据库中的数据表及数据表字段写入预先创建的中间数据库;此时中间数据库不仅包含目标数据库的所有数据表及数据表字段,还包括目标数据库所包含的数据表的数据库标识字段。

最后,数据库访问模块505即可利用生成的SQL函数访问中间数据库,实际上访问的是目标数据库的数据,并将返回值返回给前台界面。

在本发明实施例中,接收模块501接收前台界面发送的用户登录信息中的用户标识及SQL语句;函数生成模块502对接收的SQL语句进行封装和识别,生成SQL语句对应的SQL函数;权限确定模块503根据用户标识及生成的SQL函数中的参数确定用户对待访问的目标数据库的访问权限;存储模块504在确定用户具备对目标数据库的访问权限时,将目标数据库中的数据表及数据表字段写入预先创建的中间数据库;中间数据库包括预先创建的标识数据表,标识数据表包括每个系统的系统标识及具备对系统标识对应系统的数据库访问权限的用户标识;每个系统对应的数据库的数据表包括值为数据库标识的数据库标识字段;数据库访问模块505利用生成的SQL函数访问中间数据库,将返回值返回给前台界面。本发明实施例通过创建包含系统标识及具备对系统标识对应系统的数据库访问权限的用户标识的中间数据库,使得多个系统可以共用一个前台界面,通过该中间数据库访问不同系统对应的数据库,在保持各个系统相互独立的同时,保障前台性能。

图6示出了本发明实施例提供的数据库访问装置的另一功能模块,为便于说明,仅示出了与本发明实施例相关的部分,详述如下:

在本发明的一实施例中,为了保障数据库的安全性,参考图6,所述数据库访问装置所包含的各个模块用于执行图2对应实施例中的各个步骤,具体请参阅图2以及图2对应实施例中的相关描述,此处不再赘述。本发明实施例中,在上述图5所示模块结构的基础上,所述数据库访问装置还包括拒绝访问模块601。

拒绝访问模块601,用于在确定用户不具备对目标数据库的访问权限时,拒绝用户访问目标数据库。

其中,用户可能具备对目标数据库的访问权限,也可能不具备对目标数据库的访问权限。拒绝访问模块601在确定用户不具备对目标数据库的访问权限时,此时为保障数据库的安全性,可以拒绝用户访问目标数据库。

在本发明实施例中,拒绝访问模块601在确定用户不具备对目标数据库的访问权限时,拒绝用户访问目标数据库,能够保障数据库的安全性。

图7示出了本发明实施例提供的数据库访问装置中权限确定模块503的结构示意,为便于说明,仅示出了与本发明实施例相关的部分,详述如下:

在本发明的一实施例中,SQL函数中的参数包括目标数据库的数据库标识和/或系统标识。为了提高确定目标数据库访问权限的效率,参考图7,所述权限确定模块503所包含的各个单元用于执行图3对应实施例中的各个步骤,具体请参阅图3以及图3对应实施例中的相关描述,此处不再赘述。本发明实施例中,所述权限确定模块503包括目标数据库确定单元701及权限确定单元702。

目标数据库确定单元701,用于根据生成的SQL函数中的数据库标识和/或系统标识确定待访问的目标数据库。

权限确定单元702,用于基于中间数据库的标识数据表,根据用户标识确定用户对待访问的目标数据库的访问权限。

鉴于每个系统都有对应的数据库,系统的系统标识与系数据库的数据标识存在对应关系,据此可以通过系统标识确定对应的数据库或数据库标识。因此在用户访问目标数据库时,生成的SQL函数中的参数中可以包括目标数据库的数据库标识和/或系统标识。

具体在确定用户对待访问的目标数据库的访问权限时,目标数据库确定单元701可以先基于生成的SQL函数中的数据库标识和/或系统标识确定待访问的目标数据库。鉴于标识数据表包括用户标识对对应的系统标识(系统标识对应数据库标识),进而权限确定单元702可以基于中间数据库的标识数据表,确定用户标识确定用户对待访问的目标数据库的访问权限。

例如,权限确定单元702在基于中间数据库的标识数据表确定的用户标识对应的系统标识(或数据库标识)与生成的SQL函数中的参数中包含的系统标识(或数据库标识)一致时,说明用户具备对目标数据库访问权限;权限确定单元702在基于中间数据库的标识数据表确定的用户标识对应的系统标识(或数据库标识)与生成的SQL函数中的参数中包含的系统标识(或数据库标识)不一致时,说明用户不具备对目标数据库访问权限。

另外,目标数据库确定单元701在基于生成的SQL函数中的数据库标识和/或系统标识确定待访问的目标数据库后,权限确定单元702可以基于中间数据库的标识数据表,根据用户标识确定用户标识对应的数据库,在目标数据库与用户标识对应的数据库一致时,说明用户具备对目标数据库访问权限;在目标数据库与用户标识对应的数据库不一致时,说明用户不具备对目标数据库访问权限。

在本发明实施例中,目标数据库确定单元701根据生成的SQL函数中的数据库标识和/或系统标识确定待访问的目标数据库,权限确定单元702基于中间数据库的标识数据表,根据用户标识确定用户对待访问的目标数据库的访问权限,能够提高确定目标数据库访问权限的效率。

图8示出了本发明实施例提供的数据库访问装置的又一功能模块,为便于说明,仅示出了与本发明实施例相关的部分,详述如下:

在本发明的一实施例中,为了保障各个系统之间的独立性,提高数据库/数据表/字段配置的灵活性,参考图8,所述数据库访问装置所包含的各个模块用于执行图4对应实施例中的各个步骤,具体请参阅图4以及图4对应实施例中的相关描述,此处不再赘述。本发明实施例中,在上述模块结构的基础上,所述数据库访问装置包括数据库创建模块801、数据表创建模块802及字段创建模块803。

数据库创建模块801,用于根据接收到的数据库创建指令,创建中间数据库。

数据表创建模块802,用于根据接收到的表创建指令,创建中间数据库中的标识数据表。

字段创建模块803,用于根据接收到的字段创建指令,创建每个系统对应数据库包含的数据表的数据库标识字段。

在创建中间数据库时,数据库创建模块801可以基于接收到的数据库创建指令创建中间数据库。另外,还可以基于接收到的修改指令对中间数据库进行修改,以提高中间数据库配置的灵活性。例如对中间数据库包含的数据表及数据表字段、数据库名称等进行修改,修改可以包括数据表的增加、数据表字段的删除,数据库名称的替换修改等。

在创建中间数据库的标识数据表时,数据表创建模块802可以基于接收到的表创建指令创建中间数据库中的标识数据表。另外,还可以基于接收到的修改指令对中间数据库中的标识数据表进行修改,以提高标识数据表配置的灵活性。例如对中间数据库的标识数据表及数据表字段、数据表名称等进行修改,修改可以包括标识数据表字段的增加、数据表字段的删除,数据表名称的替换修改等。

在创建每个系统对应数据库包含的数据表的数据库标识字段时,字段创建模块803可以基于接收到的字段创建指令创建每个系统对应数据库包含的数据表的数据库标识字段。另外,还可以基于接收到的修改指令对每个系统对应数据库包含的数据表的数据库标识字段进行修改,以提高数据表的数据库标识字段配置的灵活性。例如对数据库标识字段、数据库标识字段名称等进行修改,修改可以包括数据库标识字段名称的替换修改等。

在本发明实施例中,数据库创建模块801根据接收到的数据库创建指令创建中间数据库,能够提高数据库配置的灵活性;数据表创建模块802根据接收到的表创建指令创建中间数据库中的标识数据表,能够提高数据表配置的灵活性;字段创建模块803根据接收到的字段创建指令,创建每个系统对应数据库包含的数据表的数据库标识字段,能够提高数据库标识字段配置的灵活性。

本发明实施例还提供一种计算机设备,包括存储器、处理器及存储在存储器上并可在处理器上运行的计算机程序,所述处理器执行所述计算机程序时实现上述数据库访问方法。

本发明实施例还提供一种计算机可读存储介质,所述计算机可读存储介质存储有执行上述数据库访问方法的计算机程序。

以下结合一具体示例,简要说明本发明的基本工作原理:

本发明的解决方案是在JavaWeb和各个数据库中间开发一个新的数据库(中间数据库),所有机构的系统使用同一个JavaWeb,通过一个中间数据库来访问不同的数据库,这样既保持不同数据库(系统)之间的独立性,又不会降低java服务器占用的内存过大而影响前台性能。

1、数据库部分

建立一个新的数据库作为中间数据库,例如叫RWA_BR库。该数据库主要是起一个管理和分发的作用。

为每个机构的系统建立属于自己的数据库,例如对于DC005机构,开发RWA_DC005库。每个机构自己的数据库都需要给RWA_BR库授权,保证RWA_BR库能够对每个机构自己的库(例如RWA_DC005库)进行操作。

在RWA_BR库里建一个表,包含多实体编号MULTI_TENANCY_ID(系统标识)和机构岗位编号POSITION_ID(用户标识)这两个字段,一个机构(系统)对应一个多实体编号(系统标识)。如下图,DC005是系统DC005的编号,该机构系统对应的数据库为RWA_DC005库。POSITION_ID(用户标识)字段记录的是该部门内需要使用该系统的员工的编号。例如,假设编号为DC005的机构(系统)包含的用户编号有GRWA10000001、GRWA10000002…GRWA10000038、GRWA10000039等,使用员工编号为GRWA10000001的用户登录该系统,他就属于编号为DC005的机构(系统)。

对每一个机构(系统)的数据库中的每一个数据表都增加一个数据库标识字段。如下图,对于系统为DC005的数据库RWA_DC005库,里面的数据表需要在表中增加一个数据库标识字段,叫RWA_USER_ID,并且将该字段的值设置为默认值DC005。保证在这个表里面增加数据时,RWA_USER_ID这个字段的值都会是DC005。

2、JavaWeb部分

JavaWeb项目部署的时候,将RWA_BR数据库作为唯一数据库。解决一个JavaWeb对应多个数据库的问题;

登陆系统的时候,首先利用登陆的用户编号,在RWA_BR数据库中查询该用户属于哪个机构。例如通过查询得知该用户属于编号为DC005的机构,那么该用户就只能对RWA_DC005库进行操作,不具备对除RWA_DC005库之外的其它数据库的访问权限,据此可以保持数据库之间的独立性。

进入系统后,该用户对数据库执行的任何操作,生产SQL函数去调用数据库的时候,可以带上该用户的机构编号(系统标识)。例如执行查询操作,将该用户的事业部编号DC005和要查询的SQL语句同时传入给RWA_BR中的存储过程,利用存储过程进行判断和操作对应的数据库。

在RWA_BR库中写入存储过程,该存储过程主要作用是将前台(即JavaWeb)传入的执行增删改查的SQL语句进行封装和识别,从而实现对不同数据库的操作。该存储过程的实现原理是:首先接收javaweb传入的SQL语句和参数;通过存储过程生成实际执行的SQL函数,操作对应的数据库;接着将待访问的目标数据库中的所有表和字段查询出来,然后写入到RWA_BR数据库中。写入的数据不仅会包含需要的所有表和字段信息,还会有标注这个表和字段对应的数据库标识,即表中的RWA_USER_ID字段。例如数据来源于DC005库,那么存储在RWA_BR数据库中的数据就会包含DC005这个编号。最后,将返回值返回给javaWeb。

通过以上操作,可以实现只用一个javaWeb前端代码,实现一个项目同时管理多个机构相同业务功能的需求。

银行作一个为经营风险的企业,在国外开设分行机构是受当地部门监管的,因此对于一些最重要的监管报送系统,当地政府要求其独立性的。因此本发明可以实现多个分行机构系统的相同业务功能模块(javaWeb)的不同系统灵活切换、保持独立性,又不用重复开发系统造成资源浪费。

综上所述,本发明实施例中,接收前台界面发送的用户登录信息中的用户标识及SQL语句;对接收的SQL语句进行封装和识别,生成SQL语句对应的SQL函数;根据用户标识及生成的SQL函数中的参数确定用户对待访问的目标数据库的访问权限;在确定用户具备对目标数据库的访问权限时,将目标数据库中的数据表及数据表字段写入预先创建的中间数据库;中间数据库包括预先创建的标识数据表,标识数据表包括每个系统的系统标识及具备对系统标识对应系统的数据库访问权限的用户标识;每个系统对应的数据库的数据表包括值为数据库标识的数据库标识字段;利用生成的SQL函数访问中间数据库,将返回值返回给前台界面。本发明实施例通过创建包含系统标识及具备对系统标识对应系统的数据库访问权限的用户标识的中间数据库,使得多个系统可以共用一个前台界面,通过该中间数据库访问不同系统对应的数据库,在保持各个系统相互独立的同时,保障前台性能。

本领域内的技术人员应明白,本发明的实施例可提供为方法、系统、或计算机程序产品。因此,本发明可采用完全硬件实施例、完全软件实施例、或结合软件和硬件方面的实施例的形式。而且,本发明可采用在一个或多个其中包含有计算机可用程序代码的计算机可用存储介质(包括但不限于磁盘存储器、CD-ROM、光学存储器等)上实施的计算机程序产品的形式。

本发明是参照根据本发明实施例的方法、设备(系统)、和计算机程序产品的流程图和/或方框图来描述的。应理解可由计算机程序指令实现流程图和/或方框图中的每一流程和/或方框、以及流程图和/或方框图中的流程和/或方框的结合。可提供这些计算机程序指令到通用计算机、专用计算机、嵌入式处理机或其他可编程数据处理设备的处理器以产生一个机器,使得通过计算机或其他可编程数据处理设备的处理器执行的指令产生用于实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能的装置。

这些计算机程序指令也可存储在能引导计算机或其他可编程数据处理设备以特定方式工作的计算机可读存储器中,使得存储在该计算机可读存储器中的指令产生包括指令装置的制造品,该指令装置实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能。

这些计算机程序指令也可装载到计算机或其他可编程数据处理设备上,使得在计算机或其他可编程设备上执行一系列操作步骤以产生计算机实现的处理,从而在计算机或其他可编程设备上执行的指令提供用于实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能的步骤。

以上所述的具体实施例,对本发明的目的、技术方案和有益效果进行了进一步详细说明,所应理解的是,以上所述仅为本发明的具体实施例而已,并不用于限定本发明的保护范围,凡在本发明的精神和原则之内,所做的任何修改、等同替换、改进等,均应包含在本发明的保护范围之内。

相关技术
  • 数据库访问操作部署方法、数据库访问方法及装置
  • 数据库访问方法及数据库访问中间件
技术分类

06120112965958