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

一种数据访问控制方法、装置及计算机可读存储介质

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


一种数据访问控制方法、装置及计算机可读存储介质

技术领域

本申请涉及互联网技术领域,尤其涉及一种数据访问控制方法、装置及计算机可读存储介质。

背景技术

数据访问在互联网技术领域渗透到方方面面,例如,数据访问包括:设备之间进行数据交互,以及终端向服务器请求数据库中的数据等。

现有技术中,对数据访问的控制通常是粗粒度的,若用户没有权限访问数据库中的目标数据,则整个数据库中的资源对用户来说都是不可访问的。这种数据访问控制方法对用户的权限控制效果不够友好,无法实现对用户访问权限的精细化控制,且数据访问时的安全性较差。

发明内容

本申请实施例提出了一种数据访问控制方法、装置及计算机可读存储介质,可以实现对用户访问权限的精细化控制,并可以提升数据访问时的安全性。

本申请实施例提供了一种数据访问控制方法,应用于控制服务器上部署的数据访问控制代理网关,包括:

获取针对目标数据库的登录请求,所述登录请求包括用户账户信息;

在对所述登录请求认证通过的情况下,调用密钥管理服务获取所述目标数据库对应的密钥;

利用所述密钥解密得到所述目标数据库的连接参数,并根据所述连接参数登录所述目标数据库;

响应于针对所述目标数据库的数据操作请求,根据所述用户账户信息对应的目标访问控制策略,对所述数据操作请求进行访问控制,所述目标访问控制策略包括对所述目标数据库的表和字段的访问控制策略。

本申请实施例提供了一种数据访问控制装置,应用于控制服务器上部署的数据访问控制代理网关,所述装置包括:

获取单元,用于获取针对目标数据库的登录请求,所述登录请求包括用户账户信息;

调用单元,用于在对所述登录请求认证通过的情况下,调用密钥管理服务获取所述目标数据库对应的密钥;

处理单元,用于利用所述密钥解密得到所述目标数据库的连接参数,并根据所述连接参数登录所述目标数据库;

控制单元,用于响应于针对所述目标数据库的数据操作请求,根据所述用户账户信息对应的目标访问控制策略,对所述数据操作请求进行访问控制,所述目标访问控制策略包括对所述目标数据库的表和字段的访问控制策略。

本申请实施例一方面提供了一种控制服务器,包括存储器和处理器,存储器存储有计算机程序,计算机程序被处理器执行时,使得处理器执行上述各实施例中的方法。

本申请实施例一方面提供了一种计算机存储介质,计算机存储介质存储有计算机程序,计算机程序包括程序指令,程序指令当被处理器执行时,执行上述各实施例中的方法。

本申请实施例一方面提供了一种计算机程序产品或计算机程序,计算机程序产品或计算机程序包括计算机指令,计算机指令存储在计算机可读存储介质中,计算机指令被控制服务器的处理器执行时,执行上述各实施例中的方法。

通过本申请实施例的对程序的数据访问控制方法,数据访问控制代理网关可以在对针对目标数据库的登录请求认证通过的情况下,调用密钥管理服务获取目标数据库对应的密钥,并利用密钥解密得到目标数据库的连接参数,并根据连接参数登录目标数据库。可以对登录请求进行鉴权认证,即对用户或者非预期的登录根据规则进行检测。另外,数据访问控制代理网关响应于针对目标数据库的数据操作请求,根据用户账户信息对应的目标访问控制策略,对数据操作请求进行访问控制,目标访问控制策略包括对目标数据库的表和字段的访问控制策略。根据包括表和字段的访问控制策略,相比于禁止用户访问数据库的所有权限,本申请可以更细粒度的控制用户的数据权限。

附图说明

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

图1是本申请实施例提供的一种数据访问控制系统的结构示意图;

图2是本申请实施例提供的一种数据访问控制方法的场景示意图;

图3是本申请实施例提供的一种用户终端的界面示意图;

图4是本申请实施例提供的一种数据访问控制方法的流程示意图;

图5是本申请实施例提供的另一种数据访问控制方法的流程示意图;

图6是本申请实施例提供的一种数据访问控制装置的结构示意图;

图7是本申请实施例提供的一种控制服务器的结构示意图。

具体实施方式

这里将详细地对示例性实施例进行说明,其示例表示在附图中。下面的描述涉及附图时,除非另有表示,不同附图中的相同数字表示相同或相似的要素。以下示例性实施例中所描述的实施方式并不代表与本申请相一致的所有实施方式。相反,它们仅是与如所附权利要求书中所详述的、本申请的一些方面相一致的装置和方法的例子。

需要说明的是,在本文中,术语“包括”、“包含”或者其任何其他变体意在涵盖非排他性的包含,从而使得包括一系列要素的过程、方法、物品或者装置不仅包括那些要素,而且还包括没有明确列出的其他要素,或者是还包括为这种过程、方法、物品或者装置所固有的要素。在没有更多限制的情况下,由语句“包括一个……”限定的要素,并不排除在包括该要素的过程、方法、物品或者装置中还存在另外的相同要素,此外,本申请不同实施例中具有同样命名的部件、特征、要素可能具有相同含义,也可能具有不同含义,其具体含义需以其在该具体实施例中的解释或者进一步结合该具体实施例中上下文进行确定。

为了能够更好地理解本申请实施例,下面对本申请实施例涉及的专业术语进行介绍:

CASB:Cloud Access Security Broker,云访问安全代理。一种部署在云上的用于细粒度数据加密、数据管理和数据访问控制的软件集合。

KMS:Key Management Service,密钥管理服务,一种云上符合安全和合规要求的密钥管理服务,用于创建和管理密钥,保护密钥的保密性、完整性和可用性。

CAM:Cloud Access Management,访问管理服务,通过身份管理和策略管理实现云账户的访问权限控制和资源权限控制。

异常登录:在用户非预期内的登录,包括异常的登录IP地址、异常的登录时间、异常的登录频率等。

异常访问:特定账号访问和操作用户非预期的数据库表和字段,包括查询、更新、删除等。

云技术(Cloud technology)是基于云计算商业模式应用的网络技术、信息技术、整合技术、管理平台技术、应用技术等的总称,可以组成资源池,按需所用,灵活便利。目前,技术网络系统的后台服务需要大量的计算、存储资源,如视频网站、图片类网站和更多的门户网站。伴随着互联网行业的高度发展和应用,将来每个物品都有可能存在自己的识别标志,都需要传输到后台系统进行逻辑处理,不同程度级别的数据将会分开处理,各类行业数据皆需要强大的系统后盾支撑,只能通过云计算来实现。

云存储(cloud storage)是在云计算概念上延伸和发展出来的一个新的概念,分布式云存储系统(以下简称存储系统)是指通过集群应用、网格技术以及分布存储文件系统等功能,将网络中大量各种不同类型的存储设备(存储设备也称之为存储节点)通过应用软件或应用接口集合起来协同工作,共同对外提供数据存储和业务访问功能的一个存储系统。

数据库(Database),简而言之可视为电子化的文件柜——存储电子文件的处所,用户可以对文件中的数据进行新增、查询、更新、删除等操作。所谓“数据库”是以一定方式储存在一起、能与多个用户共享、具有尽可能小的冗余度、与应用程序彼此独立的数据集合。

云安全(Cloud Security)是指基于云计算商业模式应用的安全软件、硬件、用户、机构、安全云平台的总称。云安全融合了并行处理、网格计算、未知病毒行为判断等新兴技术和概念,通过网状的大量客户端对网络中软件行为的异常监测,获取互联网中木马、恶意程序的最新信息,并发送到服务端进行自动分析和处理,再把病毒和木马的解决方案分发到每一个客户端。

在本申请中,数据库、目标数据库的连接参数、访问控制策略、用户账户信息等均需要巨大的存储空间,因此可以将本申请所涉及到的数据库、目标数据库的连接参数、访问控制策略、用户账户信息等通过云存储技术进行业务存储。

通过本申请提供的数据访问控制方法,可以实现对目标数据库的登录请求进行认证,认证通过后,调用密钥管理服务获取目标数据库对应的密钥,并利用密钥解密得到目标数据库的连接参数,才可以根据连接参数登录目标数据库。因此,保证了通过云存储技术存储的目标数据库中的数据的安全性,对数据库来说,实现了云安全。

请参见图1,图1是本申请实施例提供的一种数据访问控制系统的结构示意图。该数据访问控制系统至少可以包括:用户终端110,控制服务器120,密钥管理服务器130,登录认证服务器140,策略管理服务器150,数据库服务器160。其中,用户终端处于用户网络层(overlay网络),控制服务器120,密钥管理服务器130,登录认证服务器140,策略管理服务器150,数据库服务器160均处于云端网络层(underlay网络)中。用户终端110与控制服务器120之间可以通过有线或者无线的方式建立通信连接。

图1中包括的各个服务器可以是独立的物理服务器,也可以是多个物理服务器构成的服务器集群或者分布式系统,还可以是提供云服务、云数据库、云计算、云函数、云存储、网络服务、云通信、中间件服务、域名服务、安全服务、CDN(Content Delivery Network,内容分发网络)、以及大数据和人工智能平台等基础云计算服务的云服务器。

图1所示的用户终端110等可以是手机、平板电脑、笔记本电脑、掌上电脑、移动互联网设备(MID,mobile internet device)、车辆、路边设备、飞行器、可穿戴设备,例如智能手表、智能手环、计步器等具有各种操作系统的硬件设备;也可以是配置在上述硬件设备中的软件,如应用程序。其中,操作系统可以但不限于包括Android(安卓)操作系统、IOS操作系统,Android系统是一种基于Linux的自由及开放源代码的操作系统,IOS系统是苹果公司为移动设备所开发的专有移动操作系统。

需要说明的是,Underlay网络:Underlay就是当前数据中心网路基础转发架构的网络,只要数据中心网络上任意两点路由可达即可,指的是物理基础层。我们可以通过物理网络设备本身的技术改良、扩大设备数量、带宽规模等完善Underlay网络,其包含了一切现有的传统网络技术。

Overlay网络:Overlay在网络技术领域,指的是一种网络架构上叠加的虚拟化技术模式,其大体框架是对基础网络不进行大规模修改的条件下,实现应用在网络上的承载,并能与其它网络业务分离,并且以基于IP的基础网络技术为主。

具体来说,用户终端110中运行有用户应用程序(用户需要进行数据库操作的服务程序),在启动或者运行用户应用程序的过程中,用户终端110可以通过控制服务器120登录数据库服务器160,以获取需要的目标数据。具体来说,用户终端110可以向控制服务器120发送登录请求,其中,登录请求中携带有用户账户信息,用户账户信息包括用户账号和用户密码。

其中,密钥管理服务器130中运行有密钥管理服务,密钥管理服务(KMS)是一种云上符合安全和合规要求的密钥管理服务,用于创建和管理密钥,保护密钥的保密性、完整性和可用性。登录认证服务器140中运行有访问管理服务,访问管理服务(CAM),通过身份管理和策略管理实现对用户终端110的访问权限控制和资源权限控制。策略管理服务器150用于保存和管理访问控制策略。数据库服务器160是用于存储数据的数据仓库,数据仓库包括至少一个数据库。

在一种可能的实现方式中,控制服务器120上部署有数据访问控制代理网关(CASB),用于数据库访问代理,控制服务器120中预置了各类元数据类型的解析器和处理插件。具体实现时,控制服务器120获取用户终端110发送的针对目标数据库的登录请求,其中,登录请求包括用户账户信息;在对登录请求认证通过的情况下,控制服务器120调用密钥管理服务器150中的密钥管理服务获取目标数据库对应的密钥;控制服务器120利用密钥解密得到目标数据库的连接参数,并根据连接参数登录目标数据库(数据库服务器160);控制服务器120响应于用户终端110针对目标数据库的数据操作请求,根据用户账户信息对应的目标访问控制策略,对数据操作请求进行访问控制,其中,目标访问控制策略包括对目标数据库的表和字段的访问控制策略。

在实际过程中,可基于区块链网络来部署该数据访问控制系统,即可将用户终端、控制服务器、密钥管理服务器、登录认证服务器、策略管理服务器、和数据库服务器均部署在区块链网络中,或者将用户终端部署在区块链网络外,将控制服务器、密钥管理服务器、登录认证服务器、策略管理服务器、和数据库服务器部署在区块链网络内等等。当将控制服务器、密钥管理服务器、登录认证服务器、策略管理服务器、和数据库服务器部署在区块链网络内,且控制服务器、密钥管理服务器、登录认证服务器、策略管理服务器、和数据库服务器分别是由多个物理服务器构成的服务器集群或者分布式系统时,每个物理服务器均可作为区块链网络中的节点。其中,此处所提及的区块链是分布式数据存储、点对点传输、共识机制、加密算法等计算机技术的新型应用模式。其本质上是一个去中心化的数据库,是一串使用密码学方法相关联产生的数据块。在本申请所公开的数据处理方法,其中这些数据(如目标数据库的连接参数、访问控制策略、用户账户信息)可保存于区块链上。

可以理解的是,本申请实施例描述的系统架构示意图是为了更加清楚的说明本申请实施例的技术方案,并不构成对于本申请实施例提供的技术方案的限定,本领域普通技术人员可知,随着系统架构的演变和新业务场景的出现,本申请实施例提供的技术方案对于类似的技术问题,同样适用。

请参见图2,图2是本申请实施例提供的一种数据访问控制方法的场景示意图。如图2所示,用户终端中运行的用户应用程序,需要向目标数据库中请求数据,其中,用户应用程序可以对请求的数据进行操作,其中,此处所涉及到的操作包括但不限于:查询、更新和删除中的一种或多种。

具体实现时,部署在控制服务器上的数据访问控制代理网关获取针对目标数据库的登录请求,其中,登录请求包括用户账户信息。通过本申请实施例提供的数据访问控制方法,数据访问控制代理网关可以对登录请求进行认证,若认证通过之后,则数据访问控制代理网关响应于针对目标数据库的数据操作请求,根据登录请求中携带的用户账户信息对应的目标访问控制策略,对数据操作请求进行访问控制。访问控制具体可以为:可以连接并登录目标数据库。然后基于目标访问控制策略,判断数据操作请求是否有权限,目标访问控制策略是指用户应用程序对应的访问策略。如果有权限,则对指示信息指示的待操作数据执行操作类型指示的操作;如果没有权限,则不对指示信息指示的待操作数据执行操作类型指示的操作,或者记录用户账户信息、登录请求的源网络地址、登录时间以及操作类型指示的操作中的一种或多种。

如图3所示,图3是本申请实施例提供的一种用户终端的界面示意图。若用户终端需要针对目标数据库进行访问操作没有权限,则用户终端的界面中可以显示提示弹窗。进一步地,提示弹窗可以包括提示消息,提示消息具体可以为:“此次访问受限”。则意味着,本次需要访问的目标数据库中的目标操作数据(待操作数据)是没有权限的。后续,用户若想再一次访问目标操作数据,则可以通过换一台设备或者调整登录时间,或者通过其他用户账户信息进行登录并获取目标操作数据。

进一步地,提示弹窗中还可以包括“查询”按钮以及“退出”按钮。其中,若用户想要知道此次访问受限的具体原因,则用户可以点击“查询”按钮。例如,用户点击图3中左图(10)中提示弹窗中的“查询按钮”,则界面跳转为图3中右图所示(20)对应的界面。提示弹窗中显示此次访问受限的具体原因,假设为:“访问时间受限”。意思是说,在用户提交此次登录请求对应的时间不可访问目标操作数据。进一步地,系统还可以记录此次访问受限的具体原因。

通过本申请实施例提供的数据访问控制场景,可以通过配置并加载数据访问控制代理网关中的访问控制策略,对用户或者非预期的登录根据规则进行检测,发现其中的异常登录,并可根据规则进行防御拦截,从而提高了云上数据库中数据的安全性。

请参见图4,图4是本申请实施例提供的一种数据访问控制方法的流程示意图。该方法应用于控制服务器上部署的数据访问控制代理网关,如图4所示,该数据访问控制方法可包括步骤S410~S440。其中:

步骤S410:获取针对目标数据库的登录请求,所述登录请求包括用户账户信息。

具体实现时,控制服务器上部署的数据访问控制代理网关获取用户终端发送的针对目标数据库的登录请求。其中,数据访问控制代理网关处于云Underlay网络层,用户终端处于用户Overlay网络层,并且,用户终端与数据访问控制代理网关之间可以通过有线或者无线的方式建立通信连接。

其中,用户账户信息可以包括:用户账号和用户密码。账号和密码的数据形式不限,具体的,用户账号可以为中文,英文,数字,字符中的一种或多种,用户密码可以为中文,英文,数字,字符中的一种或多种。并且,用户账户对应的字符串长度和用户密码对应的字符串长度可以相同,也可以不相同。例如,用户账号为“ACE134HQD”,用户密码为“123456aa”。

在一种可能的实现方式中,数据访问控制代理网关获取针对目标数据库的登录请求之前,数据访问控制代理网关获取用户向策略控制台提交的配置数据,其中,配置数据包括目标数据库的网络地址、端口、账户信息、参考网络地址、参考登录时间段、参考登录频率以及防御策略中的一种或多种。数据访问控制代理网关生成用户账户信息,并将用户账户信息发送至用户对应的用户终端。

举例来说,用户向策略控制台(策略管理服务器)提交配置数据,配置数据可以包括被代理数据库的IP地址、端口、账号、密码,来源IP地址段(参考网络地址)、正常登录时间段(参考登录时间段)、正常访问频率(参考登录频率),以及异常登录或者异常访问对应的防御策略。用户在策略控制台配置好配置数据之后,策略控制台将数据发送给数据访问控制代理网关,数据访问控制代理网关向密钥管理服务器请求KMS密钥,并通过密钥管理服务器发送的KMS密钥对目标数据库进行加密处理,其中,KMS密钥与目标数据库的标识之间一一对应。然后,数据访问控制代理网关将加密后的配置数据保存至本地,并生成用户账户信息(包括用户账号和用户密码),需要说明的是,不同用户对应的用户账户信息不同。最后,数据访问控制代理网关将用户账户信息发送至用户对应的用户终端。

当然,用户终端可以将用户账户信息显示给用户,也可以不将用户账户信息向用户展示。后续,若用户想要登录数据访问控制代理网关,则可以通过用户账户信息进行登录。

在一种可行的实现方式中,控制服务器可将用户账户信息(包括用户账号和密码)上传至区块链网络,以防止用户账户信息被篡改。在具体实现中,任一节点接收到用户账户信息后,可对用户账户信息进行验证,当验证通过之后,将用户账户信息生成区块,并发送给区块链网络中的其他节点,其他节点对生成的区块进行校验后,将完成校验后将区块添加至区块链网络中。

步骤S420:在对所述登录请求认证通过的情况下,调用密钥管理服务获取所述目标数据库对应的密钥。

具体实现时,数据访问控制代理网关调用登录认证服务器中运行的登录认证服务对用户账户信息进行认证。在登录认证服务确定目标数据库的授权账户列表包括用户账户信息的情况下,确定对用户账户信息认证通过。然后,数据访问控制代理网关调用密钥管理服务器中的密钥管理服务获取目标数据库对应的密钥。

在一种可行的实现方式中,控制服务器可将目标数据库对应的密钥上传至区块链网络,以防止用户账户信息被篡改。在具体实现中,任一节点接收到目标数据库对应的密钥后,可对目标数据库对应的密钥进行验证,当验证通过之后,将用户账户信息生成区块,并发送给区块链网络中的其他节点,其他节点对生成的区块进行校验后,将完成校验后将区块添加至区块链网络中。

在一种可能的实现方式中,数据访问控制代理网关可以实现预设可允许正常登录数据访问控制代理网关的用户账户信息(授权账户列表),授权账户列表中可以包括多个用户账户信息,并且,针对每一个数据库,其对应的授权账户可以包括一个或者多个。若在登录认证服务确定目标数据库的授权账户列表包括用户账户信息的情况下,数据访问控制代理网关确定对用户账户信息认证通过。

然后,数据访问控制代理网关向密钥管理服务发送目标数据库的标识,以使得密钥管理服务根据目标数据库的标识获取目标数据库对应的密钥。其中,目标是数据库的标识可以为:目标数据库的账号、目标数据库的IP地址、目标数据库的端口名等等。由于KMS密钥与目标数据库的标识之间一一对应,因此通过目标数据库的标识可以通过访问密钥管理服务,获取相应的KMS密钥。即数据访问控制代理网关接收密钥管理服务返回的目标数据库对应的密钥。

在一种可能的实现方式中,数据访问控制代理网关调用登录认证服务对所述用户账户信息进行认证之前,数据访问控制代理网关获取登录请求的特征数据,其中,登录请求的特征数据包括源网络地址、登录时间以及登录频率中的一种或多种。数据访问控制代理网关获取用户在策略控制台中配置的参考登录数据,其中,参考登录数据包括参考网络地址、参考登录时间段以及参考登录频率中的一种或多种。

然后,数据访问控制代理网关根据参考登录数据对登录请求的特征数据进行校验,校验方式具体可以包括:特征数据中所有的数据均需要满足参考登录数据中的标准,即可认为校验通过;若特征数据中任一项的数据未需要满足参考登录数据中的标准,则认为校验不通过。具体来说,若特征数据包括源网络地址、登录时间以及登录频率,则源网络地址需要包含于参考网络地址内,登录时间需要满足参考登录时间段,以及登录频率需要满足参考登录频率,即可认为对特征数据校验通过。进一步地,若数据访问控制代理网关对登录请求的特征数据校验通过,则触发执行数据访问控制代理网关调用登录认证服务对用户账户信息进行认证的步骤。

另外,数据访问控制代理网关若对登录请求的特征数据校验不通过,则获取用户在策略控制台配置的防御策略。然后,数据访问控制代理网关根据防御策略,对登录请求进行防御拦截处理,或者记录登录请求的特征数据。其中,对登录请求进行防御拦截处理是指,数据访问控制代理网关不响应用户提交的登录请求,举例来说,如图3中左图(10)所示,若数据访问控制代理网关对登录请求进行防御拦截处理,则可以在用户终端的显示界面中显示提示弹窗,提示弹窗中可以包括提示消息,提示消息具体可以为:“访问受限”。

通过本方案,可以根据用户配置,对用户或者非预期的登录根据规则进行检测,发现其中的异常登录,并可根据规则进行防御拦截。保证了云上数据库中的数据安全。

步骤S430:利用所述密钥解密得到所述目标数据库的连接参数,并根据所述连接参数登录所述目标数据库。

具体实现时,目标数据库的连接参数可以包括:目标数据库的账户信息(账号和密码)、目标数据库的端口、目标数据库的网络地址。数据访问控制代理网关通过获得的KMS密钥对加密后的配置数据进行解密处理,其中,配置数据包括:目标数据库的网络地址、端口、账户信息、参考网络地址、参考登录时间段、参考登录频率以及防御策略中的一种或多种。然后,数据访问控制代理网关根据目标数据库的账户信息(账号和密码),连接与目标数据库的网络地址对应的数据库。

步骤S440:响应于针对所述目标数据库的数据操作请求,根据所述用户账户信息对应的目标访问控制策略,对所述数据操作请求进行访问控制,所述目标访问控制策略包括对所述目标数据库的表和字段的访问控制策略。

具体实现时,当用户终端通过数据访问控制代理网关成功连接目标数据库之后,用户终端会再次向数据访问控制代理网关发送针对目标数据库的数据操作请求,然后,数据访问控制代理网关响应针对目标数据库的数据操作请求。然后,数据访问控制代理网关根据用户账户信息对应的目标访问控制策略,对数据操作请求进行访问控制,其中,目标访问控制策略包括对目标数据库的表和字段的访问控制策略。

在一种可能的实现方式中,数据访问控制代理网关根据用户账户信息对应的目标访问控制策略,对数据操作请求进行访问控制之前,数据访问控制代理网关获取数据操作请求的数据格式,并根据数据格式在解析器集合中确定目标解析器。然后,数据访问控制代理网关根据目标解析器对所述数据操作请求进行解析,以获取待操作数据的指示信息,其中,指示信息包括表标识和字段标识中的一种或两种。最后,数据访问控制代理网关根据用户账户信息、待操作数据的指示信息、登录请求的源网络地址和登录时间中的一种或多种,从策略控制台中获取目标访问控制策略。

具体来说,数据访问控制代理网关中部署了多种类型的解析器,包括关系数据库解析器(Mysql,Oracle,SQLServer等)、非关系型数据库解析器(MongoDB、Redis等)等不同数据类型的解析器。其中,关系数据库是一种类型的数据库,其存储并提供访问被彼此相关的数据点。关系数据库基于关系模型,这是一种在表中表示数据的直观,直接的方法。在关系数据库中,表中的每一行都是一条记录,该记录具有唯一的ID(称为key)。该表的列保存数据的属性,每个记录通常为每个属性都有一个值,这使得在数据点之间建立关系变得容易。非关系型数据库可以包括:文档数据库,键值数据库,宽列存储和图形数据库等。数据访问控制代理网关根据数据操作请求中的明文数据,获取数据操作请求对应的数据格式,并根据数据格式确定数据操作请求对的目标解析器,然后通过目标解析器对数据操作请求中的明文数据进行解析,以获取待操作数据的指示消息,指示消息可以为数据的类型和元数据结构。指示消息具体可以为:需要访问哪些表,以及表中的哪些字段等等。

然后,数据访问控制代理网关根据用户账号、登录请求的源网络地址和登录时间、以及待操作数据的指示消息中的一种或多种,从策略控制台中获取目标访问控制策略。

在一种可能的实现方式中,数据操作请求包括字段信息以及操作类型,数据访问控制代理网关根据用户账户信息对应的目标访问控制策略,对数据操作请求进行访问控制,包括:数据访问控制代理网关基于目标访问控制策略,判断数据操作请求是否有权限。如果有权限,则数据访问控制代理网关对指示信息指示的待操作数据执行操作类型指示的操作,其中,操作类型包括查询、更新和删除中的一种或多种;如果没有权限,则数据访问控制代理网关不对指示信息指示的待操作数据执行操作类型指示的操作,或者记录用户账户信息、登录请求的源网络地址、登录时间以及操作类型指示的操作中的一种或多种。

具体实现时,目标访问控制策略是细粒度的控制策略,可以根据数据库中更小的单元(如字段或者表格),对用户的访问权限进行判定,如果用户有权限访问目标数据库中的待操作数据(如表格和相应字段),则用户可以对待操作数据进行查询、更新、删除、增加等等操作。如果用户没有权限访问待操作数据,则用户不可以对待操作数据进行查询、更新、删除、增加等等操作。并且,数据访问控制代理网关会记录登录请求的源网络地址、登录时间以及所述操作类型指示的操作中的一种或多种。

通过本申请实施例提供的数据访问控制方法,数据访问控制代理网关可以在对针对目标数据库的登录请求认证通过的情况下,调用密钥管理服务获取目标数据库对应的密钥,并利用密钥解密得到目标数据库的连接参数,并根据连接参数登录目标数据库。可以对登录请求进行鉴权认证,即对用户或者非预期的登录根据规则进行检测。进一步地,可以根据用户配置,对用户或者非预期的登录根据规则进行检测,发现其中的异常登录,并可根据规则进行防御拦截。保证了云上数据库中的数据安全。另外,数据访问控制代理网关可以根据包括表和字段的访问控制策略,相比于禁止用户访问数据库的所有权限,本申请可以更细粒度的控制用户的数据权限。

请参见图5,图5是本申请实施例提供的另一种数据访问控制方法的流程示意图。该方法应用于用户终端上运行的应用程序或者控制服务器上部署的数据访问控制代理网关,如图5所示,该数据访问控制方法可包括步骤S510~S513。

其中:

步骤S501:在策略控制台上配置策略。

具体实现时,用户可以在策略控制台(策略管理服务器)上提交配置数据,配置数据包括目标数据库的网络地址、端口、账户信息、参考网络地址、参考登录时间段、参考登录频率以及防御策略中的一种或多种。

举例来说,首先用户需要在策略控制台上配置KMS安全密钥,被代理的数据库的IP地址、端口、账号、密码信息,包括来源IP地址段、正常登录时间段、访问频率在内的安全检测策略,发现异常后的防御策略。

步骤S502:应用程序读取数据。

具体实现时,用户在策略控制台上提交配置数据之后,策略控制台将配置数据发送至数据访问控制代理网关。数据访问控制代理网关生成用户账户信息(用户账号和用户密码),并向用户所在的用户终端返回用户账户信息。接着,用户终端可以向数据访问控制代理网关发送针对目标数据库的登录请求,其中,登录请求包括用户账户信息。

步骤S503:应用程序发起连接请求。

具体实现时,应用程序运行在用户终端中,用户终端向数据访问控制代理网关发送连接请求(针对目标数据库的登录请求),其中,连接请求包括用户账户信息,即用户账号和密码。

步骤S504:网关接收连接请求。

具体实现时,数据访问控制代理网关接收用户终端发送的针对目标数据库的登录请求。

步骤S505:判断是否异常登录。

具体实现时,数据访问控制代理网关获取登录请求的特征数据,其中,登录请求的特征数据包括源网络地址、登录时间以及登录频率中的一种或多种。数据访问控制代理网关获取用户在策略控制台中配置的参考登录数据,其中,参考登录数据包括参考网络地址、参考登录时间段以及参考登录频率中的一种或多种。数据访问控制代理网关根据参考登录数据对登录请求的特征数据进行校验,若对登录请求的特征数据校验通过,则意味着,是正常登录,则触发执行调用登录认证服务对用户账户信息进行认证的步骤。

当然,若对登录请求的特征数据校验不通过,则数据访问控制代理网关获取用户在所述策略控制台配置的防御策略。数据访问控制代理网关根据防御策略,对登录请求进行防御拦截处理,或者记录登录请求的特征数据。

举例来说,数据访问控制代理网关接受用户连接请求后,系统记录访问者来源IP地址、登录时间信息,并根据用户配置的来源IP地址段、正常登录时间段、访问频率,判定是否是异常的登录。若判定为异常登录,则根据防御行为,记录日志或者阻止继续访问。

步骤S506:访问CAM进行认证。

具体实现时,数据访问控制代理网关调用登录认证服务对用户账户信息进行认证;在登录认证服务确定目标数据库的授权账户列表包括用户账户信息的情况下,数据访问控制代理网关确定对用户账户信息认证通过。

步骤S507:认证是否通过。

具体实现时,数据访问控制代理网关收到数据后,解析请求数据的认证信息,访问CAM系统进行账号认证和资源授权认证,检查用户、权限、资源是否有权限。若认证和授权未通过,系统记录访问者来源IP地址、登录时间、登录频率信息,用于后续同一个来源IP地址的登录访问请求的判断依据。

步骤S508:访问KMS获取安全密钥。

具体实现时,在对登录请求认证通过的情况下,数据访问控制代理网关调用密钥管理服务获取目标数据库对应的密钥。具体来说,数据访问控制代理网关向密钥管理服务发送目标数据库的标识,以使得密钥管理服务根据目标数据库的标识获取目标数据库对应的密钥。然后,数据访问控制代理网关接收密钥管理服务返回的目标数据库对应的密钥。

举例来说,认证和授权通过后,数据访问控制代理网关解析请求数据的密钥管理相关信息,访问KMS系统获取安全密钥信息,并根据解密后的数据库IP地址、端口、账号、密码信息连接到被代理的数据仓库。

步骤S509:根据数据格式加载解析器。

具体实现时,数据访问控制代理网关响应于用户终端发送的针对目标数据库的数据操作请求。例如,数据操作请求可以为:“select col_a,col_b,col_c,col_d fromtable_a where col_b='value_c'”。数据访问控制代理网关获取数据操作请求的数据格式,并根据数据格式在解析器集合中确定目标解析器。其中,数据控制访问代理网关中预置了各种类型的解析器,包括关系数据库解析器(Mysql,Oracle,SQLServer等)、非关系型数据库解析器(MongoDB、Redis等)等不同数据类型的解析器。其中,关系数据库是一种类型的数据库,其存储并提供访问被彼此相关的数据点。关系数据库基于关系模型,这是一种在表中表示数据的直观,直接的方法。在关系数据库中,表中的每一行都是一条记录,该记录具有唯一的ID(称为key)。非关系型数据库可以包括:文档数据库,键值数据库,宽列存储和图形数据库。

步骤S510:解析器解析数据,获取数据的类型和元数据结构。

具体实现时,数据访问控制代理网关根据目标解析器对数据操作请求进行解析,以获取待操作数据的指示信息。其中,指示信息包括表标识和字段标识中的一种或两种。例如指示信息可以为数据的类型和元数据结构。

步骤S511:加载访问控制策略。

具体实现时,数据访问控制代理网关根据用户账户信息、待操作数据的指示信息、登录请求的源网络地址和登录时间中的一种或多种,从策略控制台中获取目标访问控制策略。

其中,对于用户账户信息、待操作数据的指示信息、登录请求的源网络地址和登录时间中来说,用户账户信息是一定会影响目标访问控制策略的,待操作数据的指示信息、登录请求的源网络地址和登录时间是可选项。可以根据用户需求来配置,具体来说,用户在策略控制台配置数据时,可以将用户账户信息和登录请求的源网络地址共同控制访问控制策略;也可以是,用户账户信息、登录请求的源网络地址和登录时间共同控制访问控制策略;还可以是,用户账户信息、登录请求的源网络地址和登录时间,端口共同控制访问控制策略等等。本申请不作具体限制,可根据用户需求,做适应性地调整。

举例来说,访问控制策略可以为:

1、root账号,来源ip为192.168.0.1的情况下,允许在table_a中执行查询操作,不允许执行delete和update操作;

2、root账号,来源ip为192.168.0.2的情况下,允许在table_a中执行所有操作;

3、root账号,来源ip为192.168.0.3的情况下,允许在table_a中执行查询字段col_b,col_c的操作。

4、root账号,来源ip为192.168.0.4,访问时间在8:00--20:00的情况下,允许在table_a中执行查询字段col_b,col_c的操作;访问时间在20:00-8:00时间点不允许访问。

步骤S512:判断是否有访问权限。

具体实现时,数据操作请求包括字段信息以及操作类型。数据访问控制代理网关基于目标访问控制策略,判断数据操作请求是否有权限。如果有权限,则对指示信息指示的待操作数据执行操作类型指示的操作,其中,操作类型包括查询、更新和删除中的一种或多种;如果没有权限,则不对指示信息指示的待操作数据执行操作类型指示的操作,或者记录用户账户信息、登录请求的源网络地址、登录时间以及操作类型指示的操作中的一种或多种。

步骤S513:返回数据。

具体实现时,如果有权限,则对指示信息指示的待操作数据执行操作类型指示的操作,其中,操作类型包括查询、更新和删除中的一种或多种。并且,数据访问控制代理网关可以向用户终端返回待操作数据。数据访问控制代理网关根据细粒度的访问策略配置,判断是否有权限访问相应的字段,并根据防御行为记录日志或者阻断,保证了数据的安全。

通过本方案,用户可以根据数据结构更小单元的字段/key配置策略,实现细粒度的访问策略,无需禁止所有权限。并且,不同的用户对数据内的字段拥有不同的访问权限,更细粒度的控制用户的数据权限。用户应用无需底层驱动改造,只需连接数据访问控制代理网关即可。利用数据访问控制代理网关集中内置的解析器,可以支持关系型数据库、非关系型数据库、结构化配置等各种场景的细粒度数据权限管理。策略控制台集中管理策略,在控制台配置后,无需将策略下发到各个应用程序。

请参见图6,图6是本申请实施例提供的一种数据访问控制装置的结构示意图。图6是本申请实施例提供的一种数据访问控制装置的结构示意图。图6是本申请实施例提供的一种数据访问控制装置的结构示意图。该数据访问控制装置可应用于图4~图5对应的方法实施例中的控制服务器上部署的数据访问控制代理网关。数据访问控制装置可以是运行于轻量节点中的一个计算机程序(包括程序代码),例如该数据访问控制装置为一个应用软件;该装置可以用于执行本申请实施例提供的方法中的相应步骤。该数据访问控制装置可包括:

获取单元610,用于获取针对目标数据库的登录请求,所述登录请求包括用户账户信息;

调用单元620,用于在对所述登录请求认证通过的情况下,调用密钥管理服务获取所述目标数据库对应的密钥;

处理单元630,用于利用所述密钥解密得到所述目标数据库的连接参数,并根据所述连接参数登录所述目标数据库;

控制单元640,用于响应于针对所述目标数据库的数据操作请求,根据所述用户账户信息对应的目标访问控制策略,对所述数据操作请求进行访问控制,所述目标访问控制策略包括对所述目标数据库的表和字段的访问控制策略。

在一种可能的实现方式中,调用单元620调用登录认证服务对所述用户账户信息进行认证;

处理单元630在所述登录认证服务确定所述目标数据库的授权账户列表包括所述用户账户信息的情况下,确定对所述用户账户信息认证通过。

在一种可能的实现方式中,本申请实施例提供的数据访问控制装置还包括:校验单元650。

在调用单元620调用登录认证服务对所述用户账户信息进行认证之前,还包括:

获取单元610获取所述登录请求的特征数据,所述登录请求的特征数据包括源网络地址、登录时间以及登录频率中的一种或多种;

获取单元610获取用户在策略控制台中配置的参考登录数据,所述参考登录数据包括参考网络地址、参考登录时间段以及参考登录频率中的一种或多种;

校验单元650根据所述参考登录数据对所述登录请求的特征数据进行校验,若对所述登录请求的特征数据校验通过,则触发执行所述调用登录认证服务对所述用户账户信息进行认证的步骤。

在一种可能的实现方式中,若对所述登录请求的特征数据校验不通过,则获取单元610获取用户在所述策略控制台配置的防御策略;

根据所述防御策略,处理单元630对所述登录请求进行防御拦截处理,或者记录所述登录请求的特征数据。

在一种可能的实现方式中,获取单元610获取针对目标数据库的登录请求之前,还包括:

获取单元610获取用户向策略控制台提交的配置数据,所述配置数据包括目标数据库的网络地址、端口、账户信息、参考网络地址、参考登录时间段、参考登录频率以及防御策略中的一种或多种;

处理单元630生成用户账户信息,并将所述用户账户信息发送至所述用户对应的用户终端。

在一种可能的实现方式中,调用单元620调用密钥管理服务获取所述目标数据库对应的密钥,包括:

向密钥管理服务发送所述目标数据库的标识,以使得所述密钥管理服务根据所述目标数据库的标识获取所述目标数据库对应的密钥;

接收所述密钥管理服务返回的所述目标数据库对应的密钥。

在一种可能的实现方式中,本申请实施例提供的数据访问控制装置还包括:解析单元660。

控制单元640根据所述用户账户信息对应的目标访问控制策略,对所述数据操作请求进行访问控制之前,还包括:

获取单元610获取所述数据操作请求的数据格式,并根据所述数据格式在解析器集合中确定目标解析器;

解析单元660根据所述目标解析器对所述数据操作请求进行解析,以获取待操作数据的指示信息,所述指示信息包括表标识和字段标识中的一种或两种;

获取单元610根据所述用户账户信息、所述待操作数据的指示信息、所述登录请求的源网络地址和登录时间中的一种或多种,从所述策略控制台中获取目标访问控制策略。

在一种可能的实现方式中,数据操作请求包括字段信息以及操作类型;控制单元640根据所述用户账户信息对应的目标访问控制策略,对所述数据操作请求进行访问控制,包括:

基于所述目标访问控制策略,判断所述数据操作请求是否有权限;

如果有权限,则对所述指示信息指示的待操作数据执行所述操作类型指示的操作,所述操作类型包括查询、更新和删除中的一种或多种;

如果没有权限,则不对所述指示信息指示的待操作数据执行所述操作类型指示的操作,或者记录所述用户账户信息、所述登录请求的源网络地址、登录时间以及所述操作类型指示的操作中的一种或多种。

请参见图7,图7是本申请实施例提供的一种控制服务器的结构示意图。控制服务器上部署有数据访问控制代理网关。如图7所示,控制服务器可以包括:处理器701、存储器702、网络接口703。其中,处理器701用于调度计算机程序,可以包括中央处理器、控制器、微处理器;存储器702用于存储计算机程序,可以包括高速随机存取存储器,非易失性存储器,例如磁盘存储器件、闪存器件;网络接口703提供数据通信功能。

其中,处理器701可以用于调用存储器中的计算机程序,以执行如下操作:

获取针对目标数据库的登录请求,所述登录请求包括用户账户信息;

在对所述登录请求认证通过的情况下,调用密钥管理服务获取所述目标数据库对应的密钥;

利用所述密钥解密得到所述目标数据库的连接参数,并根据所述连接参数登录所述目标数据库;

响应于针对所述目标数据库的数据操作请求,根据所述用户账户信息对应的目标访问控制策略,对所述数据操作请求进行访问控制,所述目标访问控制策略包括对所述目标数据库的表和字段的访问控制策略。

在一种可能的实现方式中,处理器701还用于执行以下操作:

调用登录认证服务对所述用户账户信息进行认证;

在所述登录认证服务确定所述目标数据库的授权账户列表包括所述用户账户信息的情况下,确定对所述用户账户信息认证通过。

在一种可能的实现方式中,处理器701在调用登录认证服务对所述用户账户信息进行认证之前,还用于执行以下操作:

获取所述登录请求的特征数据,所述登录请求的特征数据包括源网络地址、登录时间以及登录频率中的一种或多种;

获取用户在策略控制台中配置的参考登录数据,所述参考登录数据包括参考网络地址、参考登录时间段以及参考登录频率中的一种或多种;

根据所述参考登录数据对所述登录请求的特征数据进行校验,若对所述登录请求的特征数据校验通过,则触发执行所述调用登录认证服务对所述用户账户信息进行认证的步骤。

在一种可能的实现方式中,处理器701还用于执行以下操作:

若对所述登录请求的特征数据校验不通过,则获取用户在所述策略控制台配置的防御策略;

根据所述防御策略,对所述登录请求进行防御拦截处理,或者记录所述登录请求的特征数据。

在一种可能的实现方式中,处理器701在获取针对目标数据库的登录请求之前,还用于执行以下操作:

获取用户向策略控制台提交的配置数据,所述配置数据包括目标数据库的网络地址、端口、账户信息、参考网络地址、参考登录时间段、参考登录频率以及防御策略中的一种或多种;

生成用户账户信息,并将所述用户账户信息发送至所述用户对应的用户终端。

在一种可能的实现方式中,处理器701调用密钥管理服务获取所述目标数据库对应的密钥,包括:

向密钥管理服务发送所述目标数据库的标识,以使得所述密钥管理服务根据所述目标数据库的标识获取所述目标数据库对应的密钥;

接收所述密钥管理服务返回的所述目标数据库对应的密钥。

在一种可能的实现方式中,处理器701在根据所述用户账户信息对应的目标访问控制策略,对所述数据操作请求进行访问控制之前,还用于执行以下操作:

获取所述数据操作请求的数据格式,并根据所述数据格式在解析器集合中确定目标解析器;

根据所述目标解析器对所述数据操作请求进行解析,以获取待操作数据的指示信息,所述指示信息包括表标识和字段标识中的一种或两种;

根据所述用户账户信息、所述待操作数据的指示信息、所述登录请求的源网络地址和登录时间中的一种或多种,从所述策略控制台中获取目标访问控制策略。

在一种可能的实现方式中,所述数据操作请求包括字段信息以及操作类型;处理器701根据所述用户账户信息对应的目标访问控制策略,对所述数据操作请求进行访问控制,包括:

基于所述目标访问控制策略,判断所述数据操作请求是否有权限;

如果有权限,则对所述指示信息指示的待操作数据执行所述操作类型指示的操作,所述操作类型包括查询、更新和删除中的一种或多种;

如果没有权限,则不对所述指示信息指示的待操作数据执行所述操作类型指示的操作,或者记录所述用户账户信息、所述登录请求的源网络地址、登录时间以及所述操作类型指示的操作中的一种或多种。

应当理解,本申请实施例中所描述的控制服务器可执行前述对应实施例中对数据访问控制方法的描述,也可执行前文图6对应实施例中对数据访问控制装置的描述,在此不再赘述。另外,对采用相同方法的有益效果描述,也不再进行赘述。

在本申请所提供的几个实施例中,应该理解到,所揭露的方法、装置和系统,可以通过其它的方式实现。例如,以上所描述的装置实施例仅仅是示意性的;例如,所述单元的划分,仅仅为一种逻辑功能划分,实际实现时可以有另外的划分方式;例如多个单元或组件可以结合或者可以集成到另一个系统,或一些特征可以忽略,或不执行。另一点,所显示或讨论的相互之间的耦合或直接耦合或通信连接可以是通过一些接口,装置或单元的间接耦合或通信连接,可以是电性,机械或其它的形式。

此外,这里需要指出的是:本申请实施例还提供了一种计算机存储介质,且计算机存储介质中存储有前文提及的数据访问控制装置所执行的计算机程序,且该计算机程序包括程序指令,当处理器执行上述程序指令时,能够执行前文对应实施例中的方法,因此,这里将不再进行赘述。另外,对采用相同方法的有益效果描述,也不再进行赘述。对于本申请所涉及的计算机存储介质实施例中未披露的技术细节,请参照本申请方法实施例的描述。作为示例,程序指令可以被部署在一个计算机设备上,或者在位于一个地点的多个计算机设备上执行,又或者,在分布在多个地点且通过通信网络互连的多个计算机设备上执行,分布在多个地点且通过通信网络互连的多个计算机设备可以组成区块链系统。

根据本申请的一个方面,提供了一种计算机程序产品或计算机程序,该计算机程序产品或计算机程序包括计算机指令,该计算机指令存储在计算机可读存储介质中。计算机设备的处理器从计算机可读存储介质读取该计算机指令,处理器执行该计算机指令,使得该计算机设备可以执行前文实施例中的方法,因此,这里将不再进行赘述。

本领域普通技术人员可以理解实现上述实施例方法中的全部或部分流程,是可以通过计算机程序来指令相关的硬件来完成,上述程序可存储于一计算机可读取存储介质中,该程序在执行时,可包括如上述各方法的实施例的流程。其中,上述存储介质可为磁碟、光盘、只读存储记忆体(Read-Only Memory,ROM)或随机存储记忆体(Random AccessMemory,RAM)等。

以上所揭露的仅为本申请的部分实施例而已,当然不能以此来限定本申请之权利范围,本领域普通技术人员可以理解实现上述实施例的全部或部分流程,并依本申请权利要求所作的等同变化,仍属于发明所涵盖的范围。

相关技术
  • 一种数据访问控制方法、装置及计算机可读存储介质
  • 医疗大数据访问控制方法、装置及计算机可读存储介质
技术分类

06120112965539