CN110941853B - 一种数据库的权限控制方法、计算机设备及存储介质 - Google Patents

一种数据库的权限控制方法、计算机设备及存储介质 Download PDF

Info

Publication number
CN110941853B
CN110941853B CN201911155602.3A CN201911155602A CN110941853B CN 110941853 B CN110941853 B CN 110941853B CN 201911155602 A CN201911155602 A CN 201911155602A CN 110941853 B CN110941853 B CN 110941853B
Authority
CN
China
Prior art keywords
access
policy
attribute
target user
target
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Active
Application number
CN201911155602.3A
Other languages
English (en)
Other versions
CN110941853A (zh
Inventor
钟晶晶
顾逸圣
王宾
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Transwarp Technology Shanghai Co Ltd
Original Assignee
Transwarp Technology Shanghai Co Ltd
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Transwarp Technology Shanghai Co Ltd filed Critical Transwarp Technology Shanghai Co Ltd
Priority to CN201911155602.3A priority Critical patent/CN110941853B/zh
Publication of CN110941853A publication Critical patent/CN110941853A/zh
Application granted granted Critical
Publication of CN110941853B publication Critical patent/CN110941853B/zh
Priority to PCT/CN2020/130732 priority patent/WO2021098873A1/zh
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F21/00Security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
    • G06F21/60Protecting data
    • G06F21/62Protecting access to data via a platform, e.g. using keys or access control rules
    • G06F21/6218Protecting access to data via a platform, e.g. using keys or access control rules to a system of files or objects, e.g. local or distributed file system or database
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F16/00Information retrieval; Database structures therefor; File system structures therefor
    • G06F16/20Information retrieval; Database structures therefor; File system structures therefor of structured data, e.g. relational data
    • G06F16/27Replication, distribution or synchronisation of data between databases or within a distributed database system; Distributed database system architectures therefor
    • G06F16/275Synchronous replication

Abstract

本发明实施例公开了一种数据库的权限控制方法、计算机设备及存储介质,其中,方法包括:获取目标用户针对目标数据库资源的数据库访问请求;所述数据库访问请求包括所述目标用户的访问属性信息;确定所述目标数据库资源的关联访问策略;其中,所述关联访问策略包括基于属性的访问策略和/或基于角色的访问策略,所述基于属性的访问策略的策略类型包括第一策略类型以及第二策略类型;根据所述关联访问策略以及所述目标用户的访问属性信息控制所述目标用户访问目标数据库。本发明实施例的技术方案能够自动化、智能化地控制数据库的访问权限,以提高数据库权限控制的整体性能。

Description

一种数据库的权限控制方法、计算机设备及存储介质
技术领域
本发明实施例涉及数据库技术领域,尤其涉及一种数据库的权限控制方法、计算机设备及存储介质。
背景技术
在大型数据库应用系统中往往都建有大量的表和视图,这使得对数据库资源的管理和授权变得十分复杂。为大型数据库应用系统设计一种简单、高效、安全的权限管理方案已经成为系统和系统用户的普遍需求。
在传统的数据库应用系统中,对用户的访问权限采用的控制方式为通过防火墙限制用户的访问。如果用户需要访问数据库,需要为该用户单独创建一个时刻跟主数据库同步的从数据库,并将该从数据库放在不同的节点或者端口上。然后把该用户加入从数据库防火墙的白名单中,此时该用户才能够访问到数据库。如果需要在时间方面对用户的访问权限进行控制,则需要人工手动在特定的时间段的将用户加入防火墙白名单或者从白名单中移除等来实现。
发明人在实现本发明的过程中,发现现有技术存在如下缺陷:主数据库与从数据库的同步过程会存在时差,同步过程受网络环境影响较大,并且从数据库的建立会影响数据库应用系统的整体性能。手动控制用户访问权限不仅会增加人工成本,同时扩展性差,难以兼容数据库应用系统的新增属性。综上,现有数据库的权限控制方案的性能较差。
发明内容
本发明实施例提供一种数据库的权限控制方法、计算机设备及存储介质,实现自动化、智能化地控制数据库的访问权限,以提高数据库权限控制的整体性能。
第一方面,本发明实施例提供了一种数据库的权限控制方法,包括:
获取目标用户针对目标数据库资源的数据库访问请求;所述数据库访问请求包括所述目标用户的访问属性信息;
确定所述目标数据库资源的关联访问策略;其中,所述关联访问策略包括基于属性的访问策略和/或基于角色的访问策略,所述基于属性的访问策略的策略类型包括第一策略类型以及第二策略类型;
根据所述关联访问策略以及所述目标用户的访问属性信息控制所述目标用户访问目标数据库。
第二方面,本发明实施例还提供了一种数据库的权限控制装置,包括:
数据库访问请求获取模块,用于获取目标用户针对目标数据库资源的数据库访问请求;所述数据库访问请求包括所述目标用户的访问属性信息;
关联访问策略确定模块,用于确定所述目标数据库资源的关联访问策略;其中,所述关联访问策略包括基于属性的访问策略和/或基于角色的访问策略,所述基于属性的访问策略的策略类型包括第一策略类型以及第二策略类型;
访问控制模块,用于根据所述关联访问策略以及所述目标用户的访问属性信息控制所述目标用户访问目标数据库。
第三方面,本发明实施例还提供了一种计算机设备,包括处理器和存储器,存储器用于存储指令,当指令执行时使得处理器执行以下操作:
获取目标用户针对目标数据库资源的数据库访问请求;所述数据库访问请求包括所述目标用户的访问属性信息;
确定所述目标数据库资源的关联访问策略;其中,所述关联访问策略包括基于属性的访问策略和/或基于角色的访问策略,所述基于属性的访问策略的策略类型包括第一策略类型以及第二策略类型;
根据所述关联访问策略以及所述目标用户的访问属性信息控制所述目标用户访问目标数据库。
第四方面,本发明实施例还提供了一种存储介质,存储介质用于存储指令,指令用于执行:
获取目标用户针对目标数据库资源的数据库访问请求;所述数据库访问请求包括所述目标用户的访问属性信息;
确定所述目标数据库资源的关联访问策略;其中,所述关联访问策略包括基于属性的访问策略和/或基于角色的访问策略,所述基于属性的访问策略的策略类型包括第一策略类型以及第二策略类型;
根据所述关联访问策略以及所述目标用户的访问属性信息控制所述目标用户访问目标数据库。
本发明实施例通过获取目标用户针对目标数据库资源的,包括目标用户的访问属性信息的数据库访问请求,确定目标数据库资源的关联访问策略,以根据关联访问策略以及目标用户的访问属性信息控制目标用户访问目标数据库,解决现有数据库权限控制方案性能较差的问题,实现自动化、智能化地控制数据库的访问权限,以提高数据库权限控制的整体性能。
附图说明
图1是本发明实施例提供的一种应用于数据库的基于属性的访问策略模型示意图;
图2是本发明实施例提供的一种定义基于属性的访问策略交互页面的主页面示意图;
图3是本发明实施例提供的一种基于属性的访问策略的请求条件的示意图;
图4是本发明实施例提供的一种基于属性的访问策略的请求条件的示意图;
图5是本发明实施例提供的一种基于属性的访问策略的请求条件的示意图;
图6是本发明实施例提供的一种基于属性的访问策略的请求条件的示意图;
图7是本发明实施例提供的一种基于属性的访问策略的请求条件的示意图;
图8是本发明实施例提供的一种基于属性的访问策略的请求条件的示意图;
图9是本发明实施例一提供的一种数据库的权限控制方法的流程图;
图10是本发明实施例二提供的一种数据库的权限控制方法的流程图;
图11是本发明实施例三提供的一种数据库的权限控制方法的流程图;
图12是本发明实施例四提供的一种数据库的权限控制装置的示意图;
图13为本发明实施例五提供的一种计算机设备的结构示意图。
具体实施方式
下面结合附图和实施例对本发明作进一步的详细说明。可以理解的是,此处所描述的具体实施例仅仅用于解释本发明,而非对本发明的限定。
另外还需要说明的是,为了便于描述,附图中仅示出了与本发明相关的部分而非全部内容。在更加详细地讨论示例性实施例之前应当提到的是,一些示例性实施例被描述成作为流程图描绘的处理或方法。虽然流程图将各项操作(或步骤)描述成顺序的处理,但是其中的许多操作可以被并行地、并发地或者同时实施。此外,各项操作的顺序可以被重新安排。当其操作完成时所述处理可以被终止,但是还可以具有未包括在附图中的附加步骤。所述处理可以对应于方法、函数、规程、子例程、子程序等等。
本文使用的术语“目标用户”即为需要访问目标数据库的用户。
本文使用的术语“目标数据库资源”可以是目标数据库的数据库资源,如数据库或表等。
本文使用的术语“数据库访问请求”可以是目标用户访问目标数据库时,向目标数据库发送的访问请求。
本文使用的术语“访问属性信息”可以用于标识目标用户。
本文使用的术语“关联访问策略”可以是包括基于属性的访问策略和/或基于角色的访问策略。
本文使用的术语“第一策略类型”和“第二策略类型”可以是基于属性的访问策略的两种不同的策略类型。
本文使用的术语“访问策略结果”可以是判断目标用户的访问属性信息与基于属性的访问策略中策略内容是否相符产生的结果。
本文使用的术语“第一访问策略结果”、“第二访问策略结果”及“第三访问策略结果”可以是三种不同类型的基于属性的访问策略的访问策略结果。
为了便于理解,将本发明实施例的主要发明构思进行简述。
在本发明实施例中,针对现有数据库的权限控制存在的性能较差的问题,发明人创造性地提出:获取目标用户针对目标数据库资源的,包括目标用户的访问属性信息的数据库访问请求,确定目标数据库资源的关联访问策略,以根据关联访问策略以及目标用户的访问属性信息控制目标用户访问目标数据库。
相应的,本发明实施例为了实现自动化、智能化地控制数据库的权限,设计了适用于数据库的基于属性的访问策略模型。图1是本发明实施例提供的一种应用于数据库的基于属性的访问策略模型示意图。如图1所示,一个基于属性的访问策略(也即ABAC(Attribute Based Access Control,基于属性的访问控制)策略)可以由effect(策略类型)、resources(数据库资源)、condition(访问条件)、actions(动作)、roles(角色)、groups(组)及users(用户)七个参数组成。其中,effect参数可以包括ALLOW(允许)和DENY(拒绝)两个可选参数,这两个可选参数定义了基于属性的访问策略的基调。例如,ALLOW参数可以设置允许用户访问的请求条件,DENY参数可以设置拒绝用户访问的请求条件。resources参数可以包括database(数据库)和table(表)两种可选类型,是基于属性的访问策略的主体。condition参数可以定义基于属性的访问策略的访问条件,也即定义基于属性的访问策略的策略内容,可以由conditionKey(访问条件主体)、qualifier(限定条件)、operator(操作符)和values(值)等参数构成。其中,conditionKey参数表示访问条件的主体,可选sourceIp(IP地址)、currentTime(访问时间)、resources、groupName(用户组)、roleName(用户角色)及userName(用户名)等类型。qualifier参数可以表示访问条件的限定词,可选contain_any_value(一个都不包括)和contain_all_value(所有都包括)等类型。Operator参数与访问条件绑定。例如SourceIp访问条件可以使用IpAddress和NotIpAddress两个操作符,IpAddress表示上下文的IP地址必须是IpAddress值中的IP,NotIpAddress表示上下文的IP地址不能是NotIpAddress值中的IP地址。Resource可以表示访问的数据库资源的名字,其对应的操作符可以包括以下几种:StringEquals(字符串相等)、StringNotEquals(字符串不相等)、StringEqualsIgnoreCase(忽略大小写字符串相等)、StringNotEqualsIgnoreCase(忽略大小写字符串不相等)、StringLike(字符串正则表达式匹配)及StringNotLike(字符串正则表达式不匹配)。values参数可以表示IP的具体的值,可以同时添加多个值。actions参数可以定义对数据库的可执行操作,包括但不限于select(选择)、insert(插入)、update(更新)、delete(删除)及admin(管理)等操作类型。其余的roles、groups及users参数是常规的参数,可以兼容基于角色的访问策略(也即RBAC(Role-Based Access Control,基于角色的权限访问控制)策略)策略模型的保留参数。
下面结合具体示例说明通过制定数据库访问策略实现数据库的权项控制。
图2是本发明实施例提供的一种定义基于属性的访问策略交互页面的主页面示意图。在一个具体的例子中,如图2所示,定义了一条对test数据库中表aaa、表bbb和表ccc对IP为172.26.5.93/24的用户在执行select操作的DENY策略。
图3是本发明实施例提供的一种基于属性的访问策略的请求条件的示意图。在一个具体的例子中,如图3所示,定义了一个SourceIp的请求条件,如果SourceIp来自10.12.0.1/24、10.32.0.1/24及10.42.0.1/24中任意一个地址,则请求条件成立。
图4是本发明实施例提供的一种基于属性的访问策略的请求条件的示意图。在一个具体的例子中,如图4所示,定义了一个Resource的请求条件,如果资源名满足正则表达式.*\.secret_.*,即表示以secret_开头的所有的表(例如default.secret_tbl,discover.secret_zone等),则请求条件成立。
图5是本发明实施例提供的一种基于属性的访问策略的请求条件的示意图。在一个具体的例子中,如图5所示,定义了一个currentTime的请求条件,如果用户的访问时间在15-10-2015 10:20:56以后,则请求条件成立。
图6是本发明实施例提供的一种基于属性的访问策略的请求条件的示意图。在一个具体的例子中,如图6所示,定义了一个GroupName的请求条件,如果用户对应的用户组不在sercet_group和test_group组内,则请求条件成立。
图7是本发明实施例提供的一种基于属性的访问策略的请求条件的示意图。在一个具体的例子中,如图7所示,定义了一个RoleName的请求条件,如果用户对应的用户角色中有secret_role或test_role(可以不分大小写)角色,则请求条件成立。
图8是本发明实施例提供的一种基于属性的访问策略的请求条件的示意图。在一个具体的例子中,如图8所示,定义了一个UserName的请求条件,如果用户的用户名不是aaa、bbb及ccc(可以不分大小写)中的任意一个,则请求条件成立。
实施例一
图9是本发明实施例一提供的一种数据库的权限控制方法的流程图,本实施例可适用于根据基于属性的访问策略和/或基于角色的访问策略对数据库的访问权限进行控制情况,该方法可以由数据库的权限控制装置来执行,该装置可以由软件和/或硬件的方式来实现,并一般可集成在计算机设备中。相应的,如图9所示,该方法包括如下操作:
步骤110、获取目标用户针对目标数据库资源的数据库访问请求;所述数据库访问请求包括所述目标用户的访问属性信息。
其中,目标用户即为需要访问目标数据库的用户。目标数据库资源可以是目标数据库的数据库资源,如数据库或表等。数据库访问请求可以是目标用户访问目标数据库时,向目标数据库发送的访问请求。数据库访问请求可以包括目标用户的访问属性信息,访问属性信息可以用于标识目标用户。示例性的,可以将用户的IP地址或用户角色等作为访问属性信息。
在本发明实施例中,目标用户访问目标数据库时,即向目标数据库发送了数据库访问请求。如当目标用户对目标数据库的表1的数据执行删除操作时,目标用户即向目标数据库发送了数据库访问请求,具体是请求访问目标数据库资源表1,请求访问的动作是删除操作。相应的,目标数据库可以获取目标用户针对目标数据库资源的数据库访问请求。
需要说明的是,可以将目标用户访问的数据库资源作为目标数据库资源,也可以将数据库的全局资源作为目标数据库资源,本发明实施例对此并不进行限制。
步骤120、确定所述目标数据库资源的关联访问策略;其中,所述关联访问策略包括基于属性的访问策略和/或基于角色的访问策略,所述基于属性的访问策略的策略类型包括第一策略类型以及第二策略类型。
其中,关联访问策略可以包括基于属性的访问策略和/或基于角色的访问策略,其数量可以是一条,也可以是多条。第一策略类型和第二策略类型可以是基于属性的访问策略的两种不同的策略类型。可选的,第一策略类型可以是ALLOW,即允许用户访问;第二策略类型可以是DENY,即拒绝用户访问。可选的,基于属性的访问策略的策略内容可以根据目标用户的访问属性信息和目标数据库的数据库资源制定。基于属性的访问策略的策略内容也即请求条件内容(condition参数内容)。基于角色的访问策略的策略内容可以根据具体的角色信息设定。
在本发明实施例中,目标数据库在应用之前可以首先根据实际需求预先定义一系列基于属性的访问策略和基于角色的访问策略。图2所示的示意图即定义了一条基于属性的访问策略。需要说明的是,可以将基于属性的访问策略存储在策略存储数据库中,其中,策略存储数据库可以是与目标数据库相独立的数据库。进一步的,还可以将策略存储数据库中存储的基于属性的访问策略读取到缓存中。相应的,对目标数据库的权限进行判断时,可以访问缓存中存储的基于属性的访问策略确定目标数据库资源的关联访问策略,以减少对策略存储数据库的访问次数,从而降低策略存储数据库的响应时间。需要说明的是,缓存可以按照设定周期定时更新,以保障缓存数据与策略存储数据库数据的一致性。同时,缓存的容量也可以根据实际需求设定,以存储策略存储数据库中全部的基于属性的访问策略。另外还需说明的是,可以由目标数据库本身执行权限判断功能,也可以由独立权限判断系统执行权限判断功能,本发明实施例对此并不进行限制。
步骤130、根据所述关联访问策略以及所述目标用户的访问属性信息控制所述目标用户访问目标数据库。
相应的,在确定目标数据库资源的关联访问策略以后,即可根据关联访问策略以及目标用户的访问属性信息控制目标用户访问目标数据库,即允许或拒绝目标用户访问目标数据库。
具体的,如果确定存在基于属性的访问策略,则可以根据基于属性的访问策略或者根据基于属性的访问策略和基于角色的访问策略来控制目标用户访问目标数据库。如果确定不存在基于属性的访问策略,则可以根据基于角色的访问策略来控制目标用户访问目标数据库。
在本发明的一个可选实施例中,所述确定所述目标数据库资源的关联访问策略,可以包括:根据所述数据库访问请求包括的请求服务标识确定所述数据库访问请求的访问策略集;其中,所述访问策略集包括全局访问策略集和目标数据库资源关联的访问策略集;如果所述访问策略集不为空,则将所述基于角色的访问策略和/或所述访问策略集包括的基于属性的访问策略作为所述关联访问策略;否则,将所述基于角色的访问策略作为所述关联访问策略。
其中,请求服务标识可以是数据库访问请求中包括的服务标识,如服务ID等。访问策略及可以用于存储与目标数据库资源相关联的基于属性的访问策略。全局访问策略集中包括的访问策略可以是全局资源的基于属性的访问策略;目标数据库资源关联的访问策略集中包括的访问策略可以是与目标数据库资源相关联的基于属性的访问策略。
可以理解的是,数据库访问请求中包括带有访问的服务和目标数据库资源的信息。在本发明实施例中,当获取到目标用户针对目标数据库资源的数据库访问请求后,可以根据数据库访问请求中包括的请求服务标识确定该数据库访问请求的访问策略集。具体的,可以根据请求服务标识从缓存中提取该请求服务标识对应服务的基于属性的访问策略,并根据基于属性的访问策略对应资源的属性将相应的基于属性的访问策略存储在全局访问策略集或目标数据库资源关联的访问策略集中。例如,如果基于属性的访问策略对应资源的属性为全局资源,则将该基于属性的访问策略存储在全局访问策略集中;否则,将该基于属性的访问策略存储在目标数据库资源关联的访问策略集中。相应的,在确定访问策略集后,如果访问策略集不为空,表示存在与目标数据库资源匹配的基于属性的访问策略,则将基于角色的访问策略和/或访问策略集包括的基于属性的访问策略作为关联访问策略;否则,表明不存在与目标数据库资源匹配的基于属性的访问策略,则将基于角色的访问策略作为关联访问策略。
在本发明的一个可选实施例中,所述根据所述关联访问策略以及所述目标用户的访问属性信息控制所述目标用户访问目标数据库,包括:如果所述关联访问策略包括所述基于属性的访问策略,则根据所述基于属性的访问策略的数量和/或所述基于角色的访问策略,以及所述目标用户的访问属性信息控制所述目标用户访问目标数据库;否则,根据所述基于角色的访问策略以及所述目标用户的访问属性信息控制所述目标用户访问目标数据库。
在本发明实施例中,根据关联访问策略以及目标用户的访问属性信息控制目标用户访问目标数据库时,可以首先判断关联访问策略是否包括基于属性的访问策略,如果确定关联访问策略包括基于属性的访问策略,则根据基于属性的访问策略的数量和/或基于角色的访问策略,以及目标用户的访问属性信息控制目标用户访问目标数据库;否则,根据基于角色的访问策略以及目标用户的访问属性信息控制目标用户访问目标数据库。
在本发明的一个可选实施例中,所述关联访问策略包括所述基于属性的访问策略,所述基于属性的访问策略的数量为一条;相应的,所述根据所述关联访问策略以及所述目标用户的访问属性信息控制所述目标用户访问目标数据库,可以包括:如果所述基于属性的访问策略的策略类型为第一策略类型,且所述目标用户的访问属性信息与所述基于属性的访问策略的策略内容全部相符,则允许所述目标用户访问目标数据库;如果所述基于属性的访问策略的策略类型为第一策略类型,且所述目标用户的访问属性信息与所述基于属性的访问策略的策略内容部分或全部不相符,则拒绝所述目标用户访问目标数据库。
在本发明的一个可选实施例中,所述关联访问策略包括所述基于属性的访问策略,所述基于属性的访问策略的数量为一条;相应的,所述根据所述关联访问策略以及所述目标用户的访问属性信息控制所述目标用户访问目标数据库,可以包括:如果所述基于属性的访问策略的策略类型为第二策略类型,且所述目标用户的访问属性信息与所述基于属性的访问策略的策略内容全部相符,则拒绝所述目标用户访问目标数据库。
在本发明的一个可选实施例中,所述关联访问策略包括所述基于属性的访问策略和所述基于角色的访问策略,所述基于属性的访问策略的数量为一条;相应的,所述根据所述关联访问策略以及所述目标用户的访问属性信息控制所述目标用户访问目标数据库,可以包括:如果所述基于属性的访问策略的策略类型为第二策略类型,且所述目标用户的访问属性信息与所述基于属性的访问策略的策略内容部分或全部不相符,则判断所述目标用户的访问属性信息与所述基于角色的访问策略的策略内容是否相符,若是,则允许所述目标用户访问目标数据库;否则,拒绝所述目标用户访问目标数据库。
在本发明的一个可选实施例中,所述关联访问策略包括所述基于属性的访问策略和所述基于角色的访问策略,所述基于属性的访问策略的数量为至少两条;相应的,所述根据所述关联访问策略以及所述目标用户的访问属性信息控制所述目标用户访问目标数据库,可以包括:根据各所述基于属性的访问策略以及所述目标用户的访问属性信息确定访问策略结果,并将所述访问策略结果加入策略结果集合中;其中,所述访问策略结果包括第一访问策略结果、第二访问策略结果或第三访问策略结果;根据所述策略结果集合控制所述目标用户访问目标数据库。
在本发明的一个可选实施例中,所述根据所述策略结果集合控制所述目标用户访问目标数据库,可以包括:如果所述策略结果集合包括所述第二访问策略结果,则拒绝所述目标用户访问目标数据库;如果所述策略结果集合不包括所述第二访问策略结果且包括所述第一访问策略结果,则允许所述目标用户访问目标数据库;如果所述策略结果集合不包括所述第二访问策略结果和所述第一访问策略结果,且包括所述第三访问策略结果,则判断所述目标用户的访问属性信息与所述基于角色的访问策略的策略内容是否相符,若是,则允许所述目标用户访问目标数据库;否则,拒绝所述目标用户访问目标数据库。
在本发明的一个可选实施例中,所述根据各所述基于属性的访问策略以及所述目标用户的访问属性信息确定访问策略结果,可以包括:如果所述目标用户的访问属性信息与所述基于属性的访问策略的策略内容全部相符,则确定所述访问策略结果为所述第一访问策略结果或所述第二访问策略结果;如果所述目标用户的访问属性信息与所述基于属性的访问策略的策略内容部分或全部不相符,且所述基于属性的访问策略的策略类型为所述第一策略类型,则确定所述访问策略结果为所述第二访问策略结果;如果所述目标用户的访问属性信息与所述基于属性的访问策略的策略内容部分或全部不相符,且所述基于属性的访问策略的策略类型为所述第二策略类型,则确定所述访问策略结果为所述第三访问策略结果。
在本发明的一个可选实施例中,所述关联访问策略可以包括所述基于角色的访问策略,相应的,根据所述关联访问策略以及所述目标用户的访问属性信息控制所述目标用户访问目标数据库,包括:根据所述基于角色的访问策略以及所述目标用户的访问属性信息控制所述目标用户访问目标数据库。
在本发明实施例中,如果关联访问策略不包括基于属性的访问策略,仅包括基于角色的访问策略,此时可直接根据基于角色的访问策略以及目标用户的访问属性信息控制所述目标用户访问目标数据库。
在本发明的一个可选实施例中,所述目标用户的访问属性信息包括但不限于目标用户的IP地址、访问时间、用户名、用户组和用户角色。
综上所述,本发明实施例所提供的数据库的权限控制不需要增加额外的从数据库,且权限控制无需人工参与,实现了自动化、智能化地控制数据库的访问权限,从而提高数据库权限控制的整体性能。
本发明实施例通过获取目标用户针对目标数据库资源的,包括目标用户的访问属性信息的数据库访问请求,确定目标数据库资源的关联访问策略,以根据关联访问策略以及目标用户的访问属性信息控制目标用户访问目标数据库,解决现有数据库权限控制方案性能较差的问题,实现自动化、智能化地控制数据库的访问权限,以提高数据库权限控制的整体性能。
实施例二
图10是本发明实施例二提供的一种数据库的权限控制方法的流程图,本实施例以上述实施例为基础进行具体化,在本实施例中,给出了基于属性的访问策略的数量为一条的情况下,根据所述关联访问策略以及所述目标用户的访问属性信息控制所述目标用户访问目标数据库的具体实现方式。相应的,如图10所示,本实施例的方法可以包括:
步骤210、获取目标用户针对目标数据库资源的数据库访问请求。
步骤220、确定所述目标数据库资源的关联访问策略。
步骤230、根据所述关联访问策略以及所述目标用户的访问属性信息控制所述目标用户访问目标数据库。
其中,所述关联访问策略包括所述基于属性的访问策略,或,所述关联访问策略包括所述基于属性的访问策略和所述基于角色的访问策略,或,所述关联访问策略包括所述基于角色的访问策略。当所述关联访问策略包括所述基于属性的访问策略,或,所述关联访问策略包括所述基于属性的访问策略和所述基于角色的访问策略时,基于属性的关联访问策略的数量可以是一条。
相应的,步骤230具体可以包括以下操作:
步骤231、判断基于属性的访问策略的策略类型是否为第一策略类型,若是,则执行步骤233,否则,执行步骤232。
在本发明实施例中,可以首先判断基于属性的访问策略的策略类型是否为第一策略类型,若是,则进一步判断目标用户的访问属性信息与所述基于属性的访问策略的策略内容是否相符,否则确定基于属性的访问策略的策略类型为第二策略类型。
步骤232、基于属性的访问策略的策略类型为第二策略类型,执行步骤234。
相应的,如果基于属性的访问策略的策略类型为第二策略类型,可以进一步判断目标用户的访问属性信息与所述基于属性的访问策略的策略内容是否相符。
步骤233、判断目标用户的访问属性信息与所述基于属性的访问策略的策略内容是否全部相符,若是,则执行步骤236,否则,目标用户的访问属性信息与所述基于属性的访问策略的策略内容部分或全部不相符,执行步骤237。
在本发明实施例中,如果基于属性的访问策略的策略类型为第一策略类型,且目标用户的访问属性信息与基于属性的访问策略的策略内容相符,则允许目标用户访问目标数据库。
步骤234、判断目标用户的访问属性信息与所述基于属性的访问策略的策略内容是否全部相符,若是,则执行步骤237,否则,目标用户的访问属性信息与所述基于属性的访问策略的策略内容部分或全部不相符,执行步骤235。
在本发明实施例中,如果基于属性的访问策略的策略类型为第二策略类型,则可以判断目标用户的访问属性信息与基于属性的访问策略的策略内容是否全部相符。只要目标用户的访问属性信息与基于属性的访问策略的策略内容全部相符,即可拒绝目标用户访问目标数据库。如果目标用户的访问属性信息与基于属性的访问策略的策略内容部分或全部不相符,则可以进一步判断目标用户的访问属性信息与基于角色的访问策略的策略内容是否相符。
步骤235、判断所述目标用户的访问属性信息与基于角色的访问策略的策略内容是否相符,若是,则执行步骤236,否则执行步骤237。
相应的,如果基于属性的访问策略的策略类型为第二策略类型,且目标用户的访问属性信息与基于属性的访问策略的策略内容部分或全部不相符,且目标用户的访问属性信息与基于角色的访问策略的策略内容相符,则允许目标用户访问目标数据库。如果基于属性的访问策略的策略类型为第二策略类型,且目标用户的访问属性信息与基于属性的访问策略的策略内容部分或全部不相符,且目标用户的访问属性信息与基于角色的访问策略的策略内容不相符,则拒绝目标用户访问目标数据库。
示例性的,判断目标用户的访问属性信息与基于角色的访问策略的策略内容是否相符,可以判断目标用户的用户名、用户组或用户角色等是否为允许访问目标数据库的用户名、用户组或用户角色。
步骤236、允许所述目标用户访问目标数据库。
步骤237、拒绝所述目标用户访问目标数据库。
本发明实施例通过获取目标用户针对目标数据库资源的,包括目标用户的访问属性信息的数据库访问请求,确定目标数据库资源的关联访问策略,以根据关联访问策略以及目标用户的访问属性信息控制目标用户访问目标数据库,解决现有数据库权限控制方案性能较差的问题,实现自动化、智能化地对数据库进行细粒度的权限控制,以提高数据库权限控制的整体性能。
实施例三
图11是本发明实施例三提供的一种数据库的权限控制方法的流程图,本实施例以上述实施例为基础进行具体化,在本实施例中,给出了基于属性的访问策略的数量为至少两条的情况下,根据所述关联访问策略以及所述目标用户的访问属性信息控制所述目标用户访问目标数据库的具体实现方式。相应的,如图11所示,本实施例的方法可以包括:
步骤310、获取目标用户针对目标数据库资源的数据库访问请求。
步骤320、确定所述目标数据库资源的关联访问策略。
步骤330、根据所述关联访问策略以及所述目标用户的访问属性信息控制所述目标用户访问目标数据库。
其中,所述关联访问策略包括所述基于属性的访问策略和所述基于角色的访问策略,所述基于属性的访问策略的数量为至少两条。
相应的,步骤330具体可以包括以下操作:
步骤331、根据各所述基于属性的访问策略以及所述目标用户的访问属性信息确定访问策略结果,并将所述访问策略结果加入策略结果集合中。
其中,访问策略结果可以是判断目标用户的访问属性信息与基于属性的访问策略中策略内容是否相符产生的结果。访问策略结果可以包括第一访问策略结果、第二访问策略结果或第三访问策略结果。
在本发明的一个可选实施例中,根据各所述基于属性的访问策略以及所述目标用户的访问属性信息确定访问策略结果,可以包括:如果所述目标用户的访问属性信息与所述基于属性的访问策略的策略内容全部相符,则确定所述访问策略结果为所述第一访问策略结果或所述第二访问策略结果;如果所述目标用户的访问属性信息与所述基于属性的访问策略的策略内容部分或全部不相符,且所述基于属性的访问策略的策略类型为所述第一策略类型,则确定所述访问策略结果为所述第二访问策略结果;如果所述目标用户的访问属性信息与所述基于属性的访问策略的策略内容部分或全部不相符,且所述基于属性的访问策略的策略类型为所述第二策略类型,则确定所述访问策略结果为所述第三访问策略结果。
在本发明实施例中,如果基于属性的访问策略的数量为至少两条,可以首先根据各基于属性的访问策略以及目标用户的访问属性信息确定访问策略结果,并将确定的访问策略结果加入策略结果集合中。
步骤332、判断所述策略结果集合是否包括所述第二访问策略结果,若是,执行步骤336,否则执行步骤333。
在本发明实施例中,可以首先判断策略结果集合是否包括第二访问策略结果,若是,则拒绝目标用户访问目标数据库。否则,进一步判断策略结果集合是否包括所述第一访问策略结果。
步骤333、判断所述策略结果集合是否包括所述第一访问策略结果,若是,执行步骤337,否则执行步骤334。
相应的,如果所述策略结果集合不包括所述第二访问策略结果且包括所述第一访问策略结果,则允许所述目标用户访问目标数据库。
步骤334、判断所述策略结果集合是否包括所述第三访问策略结果,若是,执行步骤335,否则执行步骤336。
相应的,如果策略结果集合不包括第二访问策略结果和第一访问策略结果,且包括第三访问策略结果,则进一步判断目标用户的访问属性信息与RBAC策略的策略内容是否相符。
步骤335、判断所述目标用户的访问属性信息与基于角色的访问策略的策略内容是否相符,若是,则执行步骤237,否则执行步骤236。
具体的,如果目标用户的访问属性信息与基于角色的访问策略的策略内容相符,则允许所述目标用户访问目标数据库;否则,拒绝所述目标用户访问目标数据库。
步骤336、拒绝所述目标用户访问目标数据库。
步骤337、允许所述目标用户访问目标数据库。
在一个具体的例子中,假设ALLOW1为第一访问策略结果,DENY1为第二访问策略结果,NOT_APPLY1为第三访问策略结果。对于资源的某条基于属性的访问策略,假定基于属性的访问策略中定义了IP网段的策略内容,在判断IP网段时,从缓存中读取到目标数据库资源(如用户访问的数据库资源或全局资源)的所有基于属性的访问策略,并从基于属性的访问策略的策略内容中读取IP网段字符串。依次检查目标用户的IP地址是否满足各基于属性的访问策略关于IP网段字符串的策略内容。如果全部符合,则根据基于属性的访问策略的策略类型确定访问策略结果为ALLOW1或DENY1如果目标用户的访问属性信息与基于属性的访问策略的策略内容部分或全部不相符,且基于属性的访问策略的策略类型为第一策略类型,则确定访问策略结果为所述第二访问策略结果DENY1;如果目标用户的访问属性信息与基于属性的访问策略的策略内容部分或全部不相符,且基于属性的访问策略的策略类型为第二策略类型,则确定访问策略结果为第三访问策略结果NOT_APPLY1。。然后将每条访问策略结果放在策略结果集合中。拿到策略结果集合后,首先判断策略结果集合中有没有DENY1,如果有则直接拒绝目标用户访问目标数据库;否则,判断策略结果集合有没有ALLOW1,如果有则允许目标用户访问目标数据库;否则,判断策略结果集合有没有NOT_APPLY1,如果有,则根据RBAC策略再次判断,否则,说明策略结果集合为空,则可以默认拒绝目标用户访问目标数据库。
综上所述,本发明实施例所提供的数据库的权限控制方法能够根据IP地址、访问时间、用户组、用户名及用户角色等不同属性信息去区分识别目标用户,通过基于属性的访问策略以及基于角色的访问策略的自由组合,可以实现对数据库细粒度的权限控制。
本发明实施例通过获取目标用户针对目标数据库资源的,包括目标用户的访问属性信息的数据库访问请求,确定目标数据库资源的关联访问策略,以根据关联访问策略以及目标用户的访问属性信息控制目标用户访问目标数据库,解决现有数据库权限控制方案性能较差的问题,自动化、智能化地对数据库进行细粒度的权限控制,以提高数据库权限控制的整体性能。
需要说明的是,以上各实施例中各技术特征之间的任意排列组合也属于本发明的保护范围。
实施例四
图12是本发明实施例四提供的一种数据库的权限控制装置的示意图,如图12所示,所述装置包括:数据库访问请求获取模块410、关联访问策略确定模块420以及访问控制模块430,其中:
数据库访问请求获取模块410,用于获取目标用户针对目标数据库资源的数据库访问请求;所述数据库访问请求包括所述目标用户的访问属性信息;
关联访问策略确定模块420,用于确定所述目标数据库资源的关联访问策略;其中,所述关联访问策略包括基于属性的访问策略和/或基于角色的访问策略,所述基于属性的访问策略的策略类型包括第一策略类型以及第二策略类型;
访问控制模块430,用于根据所述关联访问策略以及所述目标用户的访问属性信息控制所述目标用户访问目标数据库。
本发明实施例通过获取目标用户针对目标数据库资源的,包括目标用户的访问属性信息的数据库访问请求,确定目标数据库资源的关联访问策略,以根据关联访问策略以及目标用户的访问属性信息控制目标用户访问目标数据库,解决现有数据库权限控制方案性能较差的问题,实现自动化、智能化地控制数据库的访问权限,以提高数据库权限控制的整体性能。
可选的,关联访问策略确定模块420,具体用于根据所述数据库访问请求包括的请求服务标识确定所述数据库访问请求的访问策略集;其中,所述访问策略集包括全局访问策略集和目标数据库资源关联的访问策略集;如果所述访问策略集不为空,则将所述基于角色的访问策略和/或所述访问策略集包括的基于属性的访问策略作为所述关联访问策略;否则,将所述基于角色的访问策略作为所述关联访问策略。
可选的,访问控制模块430,具体用于如果所述关联访问策略包括所述基于属性的访问策略,则根据所述基于属性的访问策略的数量和/或所述基于角色的访问策略,以及所述目标用户的访问属性信息控制所述目标用户访问目标数据库;否则,根据所述基于角色的访问策略以及所述目标用户的访问属性信息控制所述目标用户访问目标数据库。
可选的,所述关联访问策略包括所述基于属性的访问策略,所述基于属性的访问策略的数量为一条;访问控制模块430,具体用于:如果所述基于属性的访问策略的策略类型为第一策略类型,且所述目标用户的访问属性信息与所述基于属性的访问策略的策略内容全部相符,则允许所述目标用户访问目标数据库;如果所述基于属性的访问策略的策略类型为第一策略类型,且所述目标用户的访问属性信息与所述基于属性的访问策略的策略内容部分或全部不相符,则拒绝所述目标用户访问目标数据库。
可选的,所述关联访问策略包括所述基于属性的访问策略,所述基于属性的访问策略的数量为一条;访问控制模块430,具体用于:如果所述基于属性的访问策略的策略类型为第二策略类型,且所述目标用户的访问属性信息与所述基于属性的访问策略的策略内容全部相符,则拒绝所述目标用户访问目标数据库。
可选的,所述关联访问策略包括所述基于属性的访问策略和所述基于角色的访问策略,所述基于属性的访问策略的数量为一条;访问控制模块430,具体用于:如果所述基于属性的访问策略的策略类型为第二策略类型,且所述目标用户的访问属性信息与所述基于属性的访问策略的策略内容部分或全部不相符,则判断所述目标用户的访问属性信息与所述基于角色的访问策略的策略内容是否相符,若是,则允许所述目标用户访问目标数据库;否则,拒绝所述目标用户访问目标数据库。
可选的,所述关联访问策略包括所述基于属性的访问策略和所述基于角色的访问策略,所述基于属性的访问策略的数量为至少两条;访问控制模块430,具体用于:根据各所述基于属性的访问策略以及所述目标用户的访问属性信息确定访问策略结果,并将所述访问策略结果加入策略结果集合中;其中,所述访问策略结果包括第一访问策略结果、第二访问策略结果或第三访问策略结果;根据所述策略结果集合控制所述目标用户访问目标数据库。
可选的,访问控制模块430,具体用于:如果所述策略结果集合包括所述第二访问策略结果,则拒绝所述目标用户访问目标数据库;如果所述策略结果集合不包括所述第二访问策略结果且包括所述第一访问策略结果,则允许所述目标用户访问目标数据库;如果所述策略结果集合不包括所述第二访问策略结果和所述第一访问策略结果,且包括所述第三访问策略结果,则判断所述目标用户的访问属性信息与所述基于角色的访问策略的策略内容是否相符,若是,则允许所述目标用户访问目标数据库;否则,拒绝所述目标用户访问目标数据库;如果所述策略结果集合为空,则拒绝所述目标用户访问目标数据库。
可选的,访问控制模块430,具体用于:如果所述目标用户的访问属性信息与所述基于属性的访问策略的策略内容全部相符,则确定所述访问策略结果为所述第一访问策略结果或所述第二访问策略结果;如果所述目标用户的访问属性信息与所述基于属性的访问策略的策略内容部分或全部不相符,且所述基于属性的访问策略的策略类型为所述第一策略类型,则确定所述访问策略结果为所述第二访问策略结果;如果所述目标用户的访问属性信息与所述基于属性的访问策略的策略内容部分或全部不相符,且所述基于属性的访问策略的策略类型为所述第二策略类型,则确定所述访问策略结果为所述第三访问策略结果。
可选的,所述目标用户的访问属性信息包括目标用户的IP地址、访问时间、用户名、用户组和用户角色。
可选的,所述基于属性的访问策略的策略内容根据所述目标用户的访问属性信息和目标数据库的数据库资源制定。
上述数据库的权限控制装置可执行本发明任意实施例所提供的数据库的权限控制方法,具备执行方法相应的功能模块和有益效果。未在本实施例中详尽描述的技术细节,可参见本发明任意实施例提供的数据库的权限控制方法。
实施例五
图13为本发明实施例五提供的一种计算机设备的结构示意图。如图13所示,本申请中的计算机设备可以包括:
一个或多个处理器51和存储装置52;该计算机设备的处理器51可以是一个或多个,图13中以一个处理器51为例;存储装置52用于存储一个或多个程序;所述一个或多个程序被所述一个或多个处理器51执行。
计算机设备中的处理器51、存储装置52可以通过总线或其他方式连接,图13中以通过总线连接为例。
存储装置52作为一种计算机可读存储介质,可设置为存储软件程序、计算机可执行程序以及模块。存储装置52可包括存储程序区和存储数据区,其中,存储程序区可存储操作系统、至少一个功能所需的应用程序;存储数据区可存储根据设备的使用所创建的数据等。此外,存储装置52可以包括高速随机存取存储器,还可以包括非易失性存储器,例如至少一个磁盘存储器件、闪存器件、或其他非易失性固态存储器件。在一些实例中,存储装置52可进一步包括相对于处理器51远程设置的存储器,这些远程存储器可以通过网络连接至计算机设备。上述网络的实例包括但不限于互联网、企业内部网、局域网、移动通信网及其组合。
处理器51通过运行存储在存储装置52中的程序,从而执行各种功能应用以及数据处理,例如实现本发明上述实施例所提供的数据库的权限控制方法。
也即,所述处理单元执行所述程序时实现:获取目标用户针对目标数据库资源的数据库访问请求;所述数据库访问请求包括所述目标用户的访问属性信息;确定所述目标数据库资源的关联访问策略;其中,所述关联访问策略包括基于属性的访问策略和/或基于角色的访问策略,所述基于属性的访问策略的策略类型包括第一策略类型以及第二策略类型;根据所述关联访问策略以及所述目标用户的访问属性信息控制所述目标用户访问目标数据库。
在上述各实施例的基础上,处理器51是设置为通过以下方式确定所述目标数据库资源的关联访问策略:根据所述数据库访问请求包括的请求服务标识确定所述数据库访问请求的访问策略集;其中,所述访问策略集包括全局访问策略集和目标数据库资源关联的访问策略集;如果所述访问策略集不为空,则将所述访问策略集包括的基于属性的访问策略和/或基于角色的访问策略作为所述关联访问策略;否则,将所述基于角色的访问策略作为所述关联访问策略。
在上述各实施例的基础上,处理器51是设置为通过以下方式根据所述关联访问策略以及所述目标用户的访问属性信息控制所述目标用户访问目标数据库:如果所述关联访问策略包括所述基于属性的访问策略,则根据所述基于属性的访问策略的数量和/或所述基于角色的访问策略,以及所述目标用户的访问属性信息控制所述目标用户访问目标数据库;否则,根据所述基于角色的访问策略以及所述目标用户的访问属性信息控制所述目标用户访问目标数据库。
在上述各实施例的基础上,所述关联访问策略包括所述基于属性的访问策略,所述基于属性的访问策略的数量为一条;处理器51是设置为通过以下方式根据所述基于属性的访问策略的数量和/或所述基于角色的访问策略,以及所述目标用户的访问属性信息控制所述目标用户访问目标数据库:如果所述基于属性的访问策略的策略类型为第一策略类型,且所述目标用户的访问属性信息与所述基于属性的访问策略的策略内容全部相符,则允许所述目标用户访问目标数据库;如果所述基于属性的访问策略的策略类型为第一策略类型,且所述目标用户的访问属性信息与所述基于属性的访问策略的策略内容部分或全部不相符,则拒绝所述目标用户访问目标数据库。
在上述各实施例的基础上,所述关联访问策略包括所述基于属性的访问策略,所述基于属性的访问策略的数量为一条;处理器51是设置为通过以下方式根据所述基于属性的访问策略的数量和/或所述基于角色的访问策略,以及所述目标用户的访问属性信息控制所述目标用户访问目标数据库:如果所述基于属性的访问策略的策略类型为第二策略类型,且所述目标用户的访问属性信息与所述基于属性的访问策略的策略内容全部相符,则拒绝所述目标用户访问目标数据库。
在上述各实施例的基础上,所述关联访问策略包括所述基于属性的访问策略和所述基于角色的访问策略,所述基于属性的访问策略的数量为一条;处理器51是设置为通过以下方式根据所述基于属性的访问策略的数量和/或所述基于角色的访问策略,以及所述目标用户的访问属性信息控制所述目标用户访问目标数据库:如果所述基于属性的访问策略的策略类型为第二策略类型,且所述目标用户的访问属性信息与所述基于属性的访问策略的策略内容部分或全部不相符,则判断所述目标用户的访问属性信息与所述基于角色的访问策略的策略内容是否相符,若是,则允许所述目标用户访问目标数据库;否则,拒绝所述目标用户访问目标数据库。
在上述各实施例的基础上,所述关联访问策略包括所述基于属性的访问策略和所述基于角色的访问策略,所述基于属性的访问策略的数量为至少两条;处理器51是设置为通过以下方式根据所述基于属性的访问策略的数量和/或所述基于角色的访问策略,以及所述目标用户的访问属性信息控制所述目标用户访问目标数据库:根据各所述基于属性的访问策略以及所述目标用户的访问属性信息确定访问策略结果,并将所述访问策略结果加入策略结果集合中;其中,所述访问策略结果包括第一访问策略结果、第二访问策略结果或第三访问策略结果;根据所述策略结果集合控制所述目标用户访问目标数据库。
在上述各实施例的基础上,处理器51是设置为通过以下方式根据所述策略结果集合控制所述目标用户访问目标数据库:如果所述策略结果集合包括所述第二访问策略结果,则拒绝所述目标用户访问目标数据库;如果所述策略结果集合不包括所述第二访问策略结果且包括所述第一访问策略结果,则允许所述目标用户访问目标数据库;如果所述策略结果集合不包括所述第二访问策略结果和所述第一访问策略结果,且包括所述第三访问策略结果,则判断所述目标用户的访问属性信息与所述基于角色的访问策略的策略内容是否相符,若是,则允许所述目标用户访问目标数据库;否则,拒绝所述目标用户访问目标数据库。
在上述各实施例的基础上,处理器51是设置为通过以下方式根据各所述基于属性的访问策略以及所述目标用户的访问属性信息确定访问策略结果:如果所述目标用户的访问属性信息与所述基于属性的访问策略的策略内容全部相符,则确定所述访问策略结果为所述第一访问策略结果或所述第二访问策略结果;如果所述目标用户的访问属性信息与所述基于属性的访问策略的策略内容部分或全部不相符,且所述基于属性的访问策略的策略类型为所述第一策略类型,则确定所述访问策略结果为所述第二访问策略结果;如果所述目标用户的访问属性信息与所述基于属性的访问策略的策略内容部分或全部不相符,且所述基于属性的访问策略的策略类型为所述第二策略类型,则确定所述访问策略结果为所述第三访问策略结果。
在上述各实施例的基础上,所述目标用户的访问属性信息包括目标用户的IP地址、访问时间、用户名、用户组和用户角色。
在上述各实施例的基础上,所述基于属性的访问策略的策略内容根据所述目标用户的访问属性信息和目标数据库的数据库资源制定。
实施例六
本发明实施例六还提供一种存储计算机程序的计算机存储介质,所述计算机程序在由计算机处理器执行时用于执行本发明上述实施例任一所述的数据库的权限控制方法:获取目标用户针对目标数据库资源的数据库访问请求;所述数据库访问请求包括所述目标用户的访问属性信息;确定所述目标数据库资源的关联访问策略;其中,所述关联访问策略包括基于属性的访问策略和/或基于角色的访问策略,所述基于属性的访问策略的策略类型包括第一策略类型以及第二策略类型;根据所述关联访问策略以及所述目标用户的访问属性信息控制所述目标用户访问目标数据库。
本发明实施例的计算机存储介质,可以采用一个或多个计算机可读的介质的任意组合。计算机可读介质可以是计算机可读信号介质或者计算机可读存储介质。计算机可读存储介质例如可以是——但不限于——电、磁、光、电磁、红外线、或半导体的系统、装置或器件,或者任意以上的组合。计算机可读存储介质的更具体的例子(非穷举的列表)包括:具有一个或多个导线的电连接、便携式计算机磁盘、硬盘、随机存取存储器(RAM)、只读存储器(Read Only Memory,ROM)、可擦式可编程只读存储器((Erasable Programmable ReadOnly Memory,EPROM)或闪存)、光纤、便携式紧凑磁盘只读存储器(CD-ROM)、光存储器件、磁存储器件、或者上述的任意合适的组合。在本文件中,计算机可读存储介质可以是任何包含或存储程序的有形介质,该程序可以被指令执行系统、装置或者器件使用或者与其结合使用。
计算机可读的信号介质可以包括在基带中或者作为载波一部分传播的数据信号,其中承载了计算机可读的程序代码。这种传播的数据信号可以采用多种形式,包括但不限于电磁信号、光信号或上述的任意合适的组合。计算机可读的信号介质还可以是计算机可读存储介质以外的任何计算机可读介质,该计算机可读介质可以发送、传播或者传输用于由指令执行系统、装置或者器件使用或者与其结合使用的程序。
计算机可读介质上包含的程序代码可以用任何适当的介质传输,包括——但不限于无线、电线、光缆、射频(Radio Frequency,RF)等等,或者上述的任意合适的组合。
可以以一种或多种程序设计语言或其组合来编写用于执行本发明操作的计算机程序代码,所述程序设计语言包括面向对象的程序设计语言—诸如Java、Smalltalk、C++,还包括常规的过程式程序设计语言——诸如“C”语言或类似的程序设计语言。程序代码可以完全地在用户计算机上执行、部分地在用户计算机上执行、作为一个独立的软件包执行、部分在用户计算机上部分在远程计算机上执行、或者完全在远程计算机或服务器上执行。在涉及远程计算机的情形中,远程计算机可以通过任意种类的网络——包括局域网(LAN)或广域网(WAN)—连接到用户计算机,或者,可以连接到外部计算机(例如利用因特网服务提供商来通过因特网连接)。
注意,上述仅为本发明的较佳实施例及所运用技术原理。本领域技术人员会理解,本发明不限于这里所述的特定实施例,对本领域技术人员来说能够进行各种明显的变化、重新调整和替代而不会脱离本发明的保护范围。因此,虽然通过以上实施例对本发明进行了较为详细的说明,但是本发明不仅仅限于以上实施例,在不脱离本发明构思的情况下,还可以包括更多其他等效实施例,而本发明的范围由所附的权利要求范围决定。

Claims (21)

1.一种数据库的权限控制方法,其特征在于,包括:
获取目标用户针对目标数据库资源的数据库访问请求;所述数据库访问请求包括所述目标用户的访问属性信息;
在所述获取目标用户针对目标数据库资源的数据库访问请求之前,包括:预先定义基于属性的访问策略和基于角色的访问策略;其中,所述基于属性的访问策略存储在策略存储数据库中;将策略存储数据库中存储的基于属性的访问策略读取到缓存中;
确定所述目标数据库资源的关联访问策略;所述确定所述目标数据库资源的关联访问策略,包括:访问缓存中存储的基于属性的访问策略;其中,所述关联访问策略包括基于属性的访问策略和/或基于角色的访问策略,所述基于属性的访问策略的策略类型包括第一策略类型以及第二策略类型;
根据所述关联访问策略以及所述目标用户的访问属性信息控制所述目标用户访问目标数据库;
其中,所述基于属性的访问策略的数量为一条或者多条,若基于属性的访问策略的数量为至少两条;
根据所述基于属性的访问策略的数量和/或所述基于角色的访问策略,以及所述目标用户的访问属性信息控制所述目标用户访问目标数据库,包括:
根据各所述基于属性的访问策略以及所述目标用户的访问属性信息确定访问策略结果,并将所述访问策略结果加入策略结果集合中;其中,所述访问策略结果包括第一访问策略结果、第二访问策略结果或第三访问策略结果;
根据所述策略结果集合控制所述目标用户访问目标数据库。
2.根据权利要求1所述的方法,其特征在于,所述确定所述目标数据库资源的关联访问策略,包括:
根据所述数据库访问请求包括的请求服务标识确定所述数据库访问请求的访问策略集;其中,所述访问策略集包括全局访问策略集和目标数据库资源关联的访问策略集;
如果所述访问策略集不为空,则将所述基于角色的访问策略和/或所述访问策略集包括的基于属性的访问策略作为所述关联访问策略;否则,将所述基于角色的访问策略作为所述关联访问策略。
3.根据权利要求1所述的方法,其特征在于,所述根据所述关联访问策略以及所述目标用户的访问属性信息控制所述目标用户访问目标数据库,包括:
如果所述关联访问策略包括所述基于属性的访问策略,则根据所述基于属性的访问策略的数量和/或所述基于角色的访问策略,以及所述目标用户的访问属性信息控制所述目标用户访问目标数据库;
否则,根据所述基于角色的访问策略以及所述目标用户的访问属性信息控制所述目标用户访问目标数据库。
4.根据权利要求3所述的方法,其特征在于,所述关联访问策略包括所述基于属性的访问策略,所述基于属性的访问策略的数量为一条;
所述根据所述基于属性的访问策略的数量和/或所述基于角色的访问策略,以及所述目标用户的访问属性信息控制所述目标用户访问目标数据库,包括:
如果所述基于属性的访问策略的策略类型为第一策略类型,且所述目标用户的访问属性信息与所述基于属性的访问策略的策略内容全部相符,则允许所述目标用户访问目标数据库;
如果所述基于属性的访问策略的策略类型为第一策略类型,且所述目标用户的访问属性信息与所述基于属性的访问策略的策略内容部分或全部不相符,则拒绝所述目标用户访问目标数据库。
5.根据权利要求3所述的方法,其特征在于,所述关联访问策略包括所述基于属性的访问策略,所述基于属性的访问策略的数量为一条;
所述根据所述基于属性的访问策略的数量和/或所述基于角色的访问策略,以及所述目标用户的访问属性信息控制所述目标用户访问目标数据库,包括:
如果所述基于属性的访问策略的策略类型为第二策略类型,且所述目标用户的访问属性信息与所述基于属性的访问策略的策略内容全部相符,则拒绝所述目标用户访问目标数据库。
6.根据权利要求3所述的方法,其特征在于,所述关联访问策略包括所述基于属性的访问策略和所述基于角色的访问策略,所述基于属性的访问策略的数量为一条;
所述根据所述基于属性的访问策略的数量和/或所述基于角色的访问策略,以及所述目标用户的访问属性信息控制所述目标用户访问目标数据库,包括:
如果所述基于属性的访问策略的策略类型为第二策略类型,且所述目标用户的访问属性信息与所述基于属性的访问策略的策略内容部分或全部不相符,则判断所述目标用户的访问属性信息与所述基于角色的访问策略的策略内容是否相符,若是,则允许所述目标用户访问目标数据库;否则,拒绝所述目标用户访问目标数据库。
7.根据权利要求1所述的方法,其特征在于,所述根据所述策略结果集合控制所述目标用户访问目标数据库,包括:
如果所述策略结果集合包括所述第二访问策略结果,则拒绝所述目标用户访问目标数据库;
如果所述策略结果集合不包括所述第二访问策略结果且包括所述第一访问策略结果,则允许所述目标用户访问目标数据库;
如果所述策略结果集合不包括所述第二访问策略结果和所述第一访问策略结果,且包括所述第三访问策略结果,则判断所述目标用户的访问属性信息与所述基于角色的访问策略的策略内容是否相符,若是,则允许所述目标用户访问目标数据库;否则,拒绝所述目标用户访问目标数据库;
如果所述策略结果集合为空,则拒绝所述目标用户访问目标数据库。
8.根据权利要求7所述的方法,其特征在于,所述根据各所述基于属性的访问策略以及所述目标用户的访问属性信息确定访问策略结果,包括:
如果所述目标用户的访问属性信息与所述基于属性的访问策略的策略内容全部相符,则确定所述访问策略结果为所述第一访问策略结果或所述第二访问策略结果;
如果所述目标用户的访问属性信息与所述基于属性的访问策略的策略内容部分或全部不相符,且所述基于属性的访问策略的策略类型为所述第一策略类型,则确定所述访问策略结果为所述第二访问策略结果;
如果所述目标用户的访问属性信息与所述基于属性的访问策略的策略内容部分或全部不相符,且所述基于属性的访问策略的策略类型为所述第二策略类型,则确定所述访问策略结果为所述第三访问策略结果。
9.根据权利要求1-8任一所述的方法,其特征在于,所述目标用户的访问属性信息包括目标用户的IP地址、访问时间、用户名、用户组和用户角色。
10.根据权利要求1-8任一所述的方法,其特征在于,所述基于属性的访问策略的策略内容根据所述目标用户的访问属性信息和目标数据库的数据库资源制定。
11.一种计算机设备,包括处理器和存储器,所述存储器用于存储指令,当所述指令执行时使得所述处理器执行以下操作:
获取目标用户针对目标数据库资源的数据库访问请求;所述数据库访问请求包括所述目标用户的访问属性信息;
在所述获取目标用户针对目标数据库资源的数据库访问请求之前,包括:预先定义基于属性的访问策略和基于角色的访问策略;其中,所述基于属性的访问策略存储在策略存储数据库中;将策略存储数据库中存储的基于属性的访问策略读取到缓存中;
确定所述目标数据库资源的关联访问策略;所述确定所述目标数据库资源的关联访问策略,包括:访问缓存中存储的基于属性的访问策略;其中,所述关联访问策略包括基于属性的访问策略和/或基于角色的访问策略,所述基于属性的访问策略的策略类型包括第一策略类型以及第二策略类型;
根据所述关联访问策略以及所述目标用户的访问属性信息控制所述目标用户访问目标数据库;
其中,所述基于属性的访问策略的数量可以为一条或者多条,若基于属性的访问策略的数量为至少两条;
所述处理器是设置为通过以下方式根据所述基于属性的访问策略的数量和/或所述基于角色的访问策略,以及所述目标用户的访问属性信息控制所述目标用户访问目标数据库:
根据各所述基于属性的访问策略以及所述目标用户的访问属性信息确定访问策略结果,并将所述访问策略结果加入策略结果集合中;其中,所述访问策略结果包括第一访问策略结果、第二访问策略结果或第三访问策略结果;
根据所述策略结果集合控制所述目标用户访问目标数据库。
12.根据权利要求11所述的计算机设备,其特征在于,所述处理器是设置为通过以下方式确定所述目标数据库资源的关联访问策略:
根据所述数据库访问请求包括的请求服务标识确定所述数据库访问请求的访问策略集;其中,所述访问策略集包括全局访问策略集和目标数据库资源关联的访问策略集;
如果所述访问策略集不为空,则将所述访问策略集包括的基于属性的访问策略和/或基于角色的访问策略作为所述关联访问策略;否则,将所述基于角色的访问策略作为所述关联访问策略。
13.根据权利要求11所述的计算机设备,其特征在于,所述处理器是设置为通过以下方式根据所述关联访问策略以及所述目标用户的访问属性信息控制所述目标用户访问目标数据库:
如果所述关联访问策略包括所述基于属性的访问策略,则根据所述基于属性的访问策略的数量和/或所述基于角色的访问策略,以及所述目标用户的访问属性信息控制所述目标用户访问目标数据库;
否则,根据所述基于角色的访问策略以及所述目标用户的访问属性信息控制所述目标用户访问目标数据库。
14.根据权利要求13所述的计算机设备,其特征在于,所述关联访问策略包括所述基于属性的访问策略,所述基于属性的访问策略的数量为一条;
所述处理器是设置为通过以下方式根据所述基于属性的访问策略的数量和/或所述基于角色的访问策略,以及所述目标用户的访问属性信息控制所述目标用户访问目标数据库:
如果所述基于属性的访问策略的策略类型为第一策略类型,且所述目标用户的访问属性信息与所述基于属性的访问策略的策略内容全部相符,则允许所述目标用户访问目标数据库;
如果所述基于属性的访问策略的策略类型为第一策略类型,且所述目标用户的访问属性信息与所述基于属性的访问策略的策略内容部分或全部不相符,则拒绝所述目标用户访问目标数据库。
15.根据权利要求13所述的计算机设备,其特征在于,所述关联访问策略包括所述基于属性的访问策略,所述基于属性的访问策略的数量为一条;
所述处理器是设置为通过以下方式根据所述基于属性的访问策略的数量和/或所述基于角色的访问策略,以及所述目标用户的访问属性信息控制所述目标用户访问目标数据库:
如果所述基于属性的访问策略的策略类型为第二策略类型,且所述目标用户的访问属性信息与所述基于属性的访问策略的策略内容全部相符,则拒绝所述目标用户访问目标数据库。
16.根据权利要求13所述的计算机设备,其特征在于,所述关联访问策略包括所述基于属性的访问策略和所述基于角色的访问策略,所述基于属性的访问策略的数量为一条;
所述处理器是设置为通过以下方式根据所述基于属性的访问策略的数量和/或所述基于角色的访问策略,以及所述目标用户的访问属性信息控制所述目标用户访问目标数据库:
如果所述基于属性的访问策略的策略类型为第二策略类型,且所述目标用户的访问属性信息与所述基于属性的访问策略的策略内容部分或全部不相符,则判断所述目标用户的访问属性信息与所述基于角色的访问策略的策略内容是否相符,若是,则允许所述目标用户访问目标数据库;否则,拒绝所述目标用户访问目标数据库。
17.根据权利要求11所述的计算机设备,其特征在于,所述处理器是设置为通过以下方式根据所述策略结果集合控制所述目标用户访问目标数据库:
如果所述策略结果集合包括所述第二访问策略结果,则拒绝所述目标用户访问目标数据库;
如果所述策略结果集合不包括所述第二访问策略结果且包括所述第一访问策略结果,则允许所述目标用户访问目标数据库;
如果所述策略结果集合不包括所述第二访问策略结果和所述第一访问策略结果,且包括所述第三访问策略结果,则判断所述目标用户的访问属性信息与所述基于角色的访问策略的策略内容是否相符,若是,则允许所述目标用户访问目标数据库;否则,拒绝所述目标用户访问目标数据库。
18.根据权利要求17所述的计算机设备,其特征在于,所述处理器是设置为通过以下方式根据各所述基于属性的访问策略以及所述目标用户的访问属性信息确定访问策略结果:
如果所述目标用户的访问属性信息与所述基于属性的访问策略的策略内容全部相符,则确定所述访问策略结果为所述第一访问策略结果或所述第二访问策略结果;
如果所述目标用户的访问属性信息与所述基于属性的访问策略的策略内容部分或全部不相符,且所述基于属性的访问策略的策略类型为所述第一策略类型,则确定所述访问策略结果为所述第二访问策略结果;
如果所述目标用户的访问属性信息与所述基于属性的访问策略的策略内容部分或全部不相符,且所述基于属性的访问策略的策略类型为所述第二策略类型,则确定所述访问策略结果为所述第三访问策略结果。
19.根据权利要求11-18任一所述的计算机设备,其特征在于,所述目标用户的访问属性信息包括目标用户的IP地址、访问时间、用户名、用户组和用户角色。
20.根据权利要求11-18任一所述的计算机设备,其特征在于,所述基于属性的访问策略的策略内容根据所述目标用户的访问属性信息和目标数据库的数据库资源制定。
21.一种计算机存储介质,其上存储有计算机程序,其特征在于,该程序被处理器执行时实现如权利要求1-10中任一所述的数据库的权限控制方法。
CN201911155602.3A 2019-11-22 2019-11-22 一种数据库的权限控制方法、计算机设备及存储介质 Active CN110941853B (zh)

Priority Applications (2)

Application Number Priority Date Filing Date Title
CN201911155602.3A CN110941853B (zh) 2019-11-22 2019-11-22 一种数据库的权限控制方法、计算机设备及存储介质
PCT/CN2020/130732 WO2021098873A1 (zh) 2019-11-22 2020-11-23 数据库的权限控制方法、计算机设备及存储介质

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN201911155602.3A CN110941853B (zh) 2019-11-22 2019-11-22 一种数据库的权限控制方法、计算机设备及存储介质

Publications (2)

Publication Number Publication Date
CN110941853A CN110941853A (zh) 2020-03-31
CN110941853B true CN110941853B (zh) 2020-11-10

Family

ID=69907889

Family Applications (1)

Application Number Title Priority Date Filing Date
CN201911155602.3A Active CN110941853B (zh) 2019-11-22 2019-11-22 一种数据库的权限控制方法、计算机设备及存储介质

Country Status (2)

Country Link
CN (1) CN110941853B (zh)
WO (1) WO2021098873A1 (zh)

Families Citing this family (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN110941853B (zh) * 2019-11-22 2020-11-10 星环信息科技(上海)有限公司 一种数据库的权限控制方法、计算机设备及存储介质
CN111917739A (zh) * 2020-07-15 2020-11-10 傲普(上海)新能源有限公司 一种基于RESTful规范的ACBC的权限管理模型
CN112818309A (zh) * 2021-03-04 2021-05-18 重庆度小满优扬科技有限公司 数据访问权限的控制方法、装置以及存储介质
CN114938288B (zh) * 2022-04-08 2024-04-26 北京指掌易科技有限公司 一种数据访问方法、装置、设备以及存储介质

Citations (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN101729403A (zh) * 2009-12-10 2010-06-09 上海电机学院 基于属性和规则的访问控制方法
CN104217146A (zh) * 2014-09-04 2014-12-17 浪潮通用软件有限公司 一种基于abac和rbac的权限控制方法
CN104243453A (zh) * 2014-08-26 2014-12-24 中国科学院信息工程研究所 基于属性和角色的访问控制方法及系统
CN104683348A (zh) * 2015-03-13 2015-06-03 河南理工大学 一种基于属性的访问控制策略合成方法
CN104735055A (zh) * 2015-02-12 2015-06-24 河南理工大学 一种基于信任度的跨域安全访问控制方法

Family Cites Families (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US9396343B2 (en) * 2014-10-20 2016-07-19 International Business Machines Corporation Policy access control lists attached to resources
CN107506658A (zh) * 2017-07-10 2017-12-22 上海最会保网络科技有限公司 一种用户权限管理系统及方法
CN110941853B (zh) * 2019-11-22 2020-11-10 星环信息科技(上海)有限公司 一种数据库的权限控制方法、计算机设备及存储介质

Patent Citations (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN101729403A (zh) * 2009-12-10 2010-06-09 上海电机学院 基于属性和规则的访问控制方法
CN104243453A (zh) * 2014-08-26 2014-12-24 中国科学院信息工程研究所 基于属性和角色的访问控制方法及系统
CN104217146A (zh) * 2014-09-04 2014-12-17 浪潮通用软件有限公司 一种基于abac和rbac的权限控制方法
CN104735055A (zh) * 2015-02-12 2015-06-24 河南理工大学 一种基于信任度的跨域安全访问控制方法
CN104683348A (zh) * 2015-03-13 2015-06-03 河南理工大学 一种基于属性的访问控制策略合成方法

Also Published As

Publication number Publication date
CN110941853A (zh) 2020-03-31
WO2021098873A1 (zh) 2021-05-27

Similar Documents

Publication Publication Date Title
CN110941853B (zh) 一种数据库的权限控制方法、计算机设备及存储介质
US10263993B2 (en) Access guards for multi-tenant logging
US9075955B2 (en) Managing permission settings applied to applications
US10296440B2 (en) Multi-tenant aware debugging methods and systems
CN102917346B (zh) 一种基于Android的应用程序运行时安全策略管理系统及方法
US9900775B2 (en) On-device authorization of devices for collaboration and association
US10275607B2 (en) Location and time based mobile app policies
EP3547634B1 (en) Method and apparatus for determining access permission, and terminal
US20130125217A1 (en) Authorization Control
US20210314322A1 (en) Method, apparatus, system and storage medium for access control policy configuration
WO2020156135A1 (zh) 一种访问控制策略的处理方法、装置及计算机可读存储介质
CN107306247B (zh) 资源访问控制方法及装置
CA2830880C (en) Managing permission settings applied to applications
WO2017121240A1 (zh) 一种资源访问控制方法、装置及系统
US10616281B1 (en) Service-level authorization policy management
CN104079437B (zh) 实现权限管理控制的方法及终端
CN116566656A (zh) 资源访问方法、装置、设备及计算机存储介质
WO2020173266A1 (en) Method for creating and managing permissions for accessing yang data in yang-based datastores.
US10616228B2 (en) Enhanced permissions for enabling re-purposing of resources while maintaining integrity
CN110378086B (zh) 权限的管理方法和装置
CN108664805A (zh) 一种应用程序安全校验方法及系统
CN105808989B (zh) 一种权限稽核方法及装置
US9754121B2 (en) System and methods for live masking file system access control entries
CN112613075A (zh) 权限的确定方法及装置、存储介质及电子装置
CN112000968A (zh) 一种访问的控制方法及装置、存储介质、电子装置

Legal Events

Date Code Title Description
PB01 Publication
PB01 Publication
SE01 Entry into force of request for substantive examination
SE01 Entry into force of request for substantive examination
GR01 Patent grant
GR01 Patent grant
CP01 Change in the name or title of a patent holder

Address after: 200233 11-12 / F, building B, 88 Hongcao Road, Xuhui District, Shanghai

Patentee after: Star link information technology (Shanghai) Co.,Ltd.

Address before: 200233 11-12 / F, building B, 88 Hongcao Road, Xuhui District, Shanghai

Patentee before: TRANSWARP TECHNOLOGY (SHANGHAI) Co.,Ltd.

CP01 Change in the name or title of a patent holder