CN113392415A - 数据仓库的访问控制方法、系统和电子设备 - Google Patents

数据仓库的访问控制方法、系统和电子设备 Download PDF

Info

Publication number
CN113392415A
CN113392415A CN202110675621.XA CN202110675621A CN113392415A CN 113392415 A CN113392415 A CN 113392415A CN 202110675621 A CN202110675621 A CN 202110675621A CN 113392415 A CN113392415 A CN 113392415A
Authority
CN
China
Prior art keywords
account
access
information
service
database
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.)
Pending
Application number
CN202110675621.XA
Other languages
English (en)
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.)
Zuoyebang Education Technology Beijing Co Ltd
Original Assignee
Zuoyebang Education Technology Beijing 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 Zuoyebang Education Technology Beijing Co Ltd filed Critical Zuoyebang Education Technology Beijing Co Ltd
Priority to CN202110675621.XA priority Critical patent/CN113392415A/zh
Publication of CN113392415A publication Critical patent/CN113392415A/zh
Pending legal-status Critical Current

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/604Tools and structures for managing or administering access control systems
    • 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
    • G06F2221/00Indexing scheme relating to security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
    • G06F2221/21Indexing scheme relating to G06F21/00 and subgroups addressing additional information or applications relating to security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
    • G06F2221/2141Access rights, e.g. capability lists, access control lists, access tables, access matrices

Abstract

本发明提供了一种数据仓库的访问控制方法、系统和计算机设备,该方法包括:存储授权账户关联信息,并通过周期性获取元数据以更新该授权账户关联信息,授权账户关联信息包括授权账号信息及其对应的数据库信息;在数据仓库内建立独立于所述数据库访问服务及元数据访问服务的账户认证服务,以调用所存储的授权账户关联信息;响应于客户端的访问请求;调用账户认证服务,以根据所存储的授权账户关联信息对访问请求中的账户信息进行识别处理,以进行身份认证;将通过所述身份认证的用户请求返回数据库访问服务及元数据访问服务中进行权限验证。本发明可靠保证了Hive数据仓库中数据的安全性,实现了更有效的身份认证和权限验证过程,有效预防了用户的误操作和恶意操作。

Description

数据仓库的访问控制方法、系统和电子设备
技术领域
本发明涉及测试技术领域,具体而言,涉及一种数据仓库的访问控制方法、系统和电子设备。
背景技术
在基于互联网的应用技术中,常常需要在不同的参与方之间进行资源的交换。这里所称的资源是指任何可被利用的物质、信息、金钱、时间等。信息资源包括计算资源和各种类型的数据资源。数据资源包括各个领域中的各种专用数据。
数据对于企业来说是重要资产,数据安全和访问可控对于企业而言,是非常重要的。Hive作为大数据存储和访问的入口,也是业界关注的焦点之一。行业中涌现了Ranger,Sentry等权限管理框架。但是都是针对HiveServer2服务端进行统一管控,不能对元数据服务端进行账号认证和权限验证。
目前HiveServer2支持多种用户安全认证方式:NONE,NOSASL,KERBEROS,LDAP,PAM,CUSTOM等等,其中属于安全管控级别的认证为Kerberos,LDAP,PAM,CUSTOM。但是上述几种安全认证在实际应用上都存在不同的缺陷。Kerberos,LDAP都是登陆开发机用户名,认证会导致大量公共账号环境无法被个人账号使用,面临大量历史包袱,迁移难度大。当使用PAM时,如果用户的密码已过期,用于提供PAM身份验证模式的JPAM库可能会导致HiveServer2关闭。在其他情况下,某些用户在登录过程中会出现崩溃的情况。而在实际生产环境中,每次添加账号需重启Hive系统加载配置文件,不适合公司级别大量用户实时增添账号的场景,对于用户账号管理存在不合理或不当的情况。此外,Hive系统无法支持数据库(例如MYSQL)存储的账号密码校验的方式,并且Hive系统对于直连元数据库的访问请求无法进行权限管控。此外,还存在无法有效预防用户的误操作和恶意操作,数据安全性低等的技术问题。
因此,有必要提供一种更有效的数据仓库的访问控制方法。
发明内容
由于现有方案中,存在如下问题:Hive系统无法支持MYSQL存储的账号密码校验的方式,Hive对于直连元数据库的访问请求无法进行权限管控,数据安全性低等的技术问题。
鉴于上述问题,本发明第一方面提供了一种数据仓库的访问控制方法,包括:存储授权账户关联信息,并通过周期性获取元数据以更新该授权账户关联信息,所述授权账户关联信息包括授权账号信息及其对应的数据库信息;在所述数据仓库内建立独立于数据库访问服务及元数据访问服务的账户认证服务,以调用所存储的授权账户关联信息;响应于客户端的访问请求;调用所述账户认证服务,以根据所存储的授权账户关联信息对所述访问请求中的账户信息进行识别处理,以进行身份认证;将通过所述身份认证的用户请求返回数据库访问服务及元数据访问服务中进行权限验证。
根据本发明的可选实施方式,当所述访问请求是元数据访问请求时,将该访问请求中的账户信息,通过用户组信息传递到元数据访问服务中,并调用所述账户认证服务进行身份认证。
根据本发明的可选实施方式,所述将该访问请求中的账户信息通过用户组信息传递到元数据访问服务中包括:在所述用户组信息的前缀添加特定标识。
根据本发明的可选实施方式,所述权限验证包括:当所述访问请求是元数据访问请求时,通过钩子函数对该元数据访问请求的执行事件进行监听,并在该执行事件进行时进行权限验证。
根据本发明的可选实施方式,所述访问请求是对Hive数据仓库的Metastore的访问请求,所述权限验证包括:在原始Metastore的权限验证中添加对于数据库的表和数据库的权限验证。
根据本发明的可选实施方式,还包括:设置所述数据仓库的访问过渡期及与该访问过渡期对应的账户白名单;在所述访问过渡期内,当所述访问请求中未包含账户名称和密码时,判断所述访问请求中的账户信息是否在所述白名单内,如果在,则将该访问请求作为公共账号的访问请求,对所述公共账号的访问请求不作身份认证和权限管理。
根据本发明的可选实施方式,还包括:定期从数据仓库的审计日志中捞出公共账号对应的来源信息,根据该来源信息向该公共账号发出提示信息。
根据本发明的可选实施方式,在所述过渡期结束时,删除所述白名单,并对访问数据库访问服务和元数据访问服务的所有访问请求进行身份认证和权限管理。
此外,本发明第二方面提供了一种数据仓库的访问控制系统,包括:存储模块,用于存储授权账户关联信息,并通过周期性获取元数据以更新该授权账户关联信息,所述授权账户关联信息包括授权账号信息及其对应的数据库信息;建立模块,用于在所述数据仓库内建立独立于数据库访问服务及元数据访问服务的账户认证服务,以调用所存储的授权账户关联信息;接收模块,用于响应于客户端的访问请求;调用模块,用于调用所述账户认证服务,以根据所存储的授权账户关联信息对所述访问请求中的账户信息进行识别处理,以进行身份认证;验证模块,用于将通过所述身份认证的用户请求返回数据库访问服务及元数据访问服务中进行权限验证。
根据本发明的可选实施方式,当所述访问请求是元数据访问请求时,将该访问请求中的账户信息,通过用户组信息传递到元数据访问服务中,并调用所述账户认证服务进行身份认证。
根据本发明的可选实施方式,所述将该访问请求中的账户名称和密码通过用户组信息传递到元数据访问服务中包括:在所述用户组信息的前缀添加特定标识。
根据本发明的可选实施方式,所述权限验证包括:当所述访问请求是元数据访问请求时,通过钩子函数对该元数据访问请求的执行事件进行监听,并在该执行事件进行时进行权限验证。
根据本发明的可选实施方式,所述访问请求是对Hive数据仓库的Metastore的访问请求,所述权限验证包括:在原始Metastore的权限验证中添加对于数据库的表和数据库的权限验证。
根据本发明的可选实施方式,还包括设置模块,所述设置模块用于设置所述数据仓库的访问过渡期及与该访问过渡期对应的账户白名单;在所述访问过渡期内,当所述访问请求中未包含账户名称和密码时,判断所述访问请求中的账户信息是否在所述白名单内,如果在,则将该访问请求作为公共账号的访问请求,对所述公共账号的访问请求不作身份认证和权限管理。
根据本发明的可选实施方式,还包括:定期从数据仓库的审计日志中捞出公共账号对应的来源信息,根据该来源信息向该公共账号发出提示信息。
根据本发明的可选实施方式,在所述过渡期结束时,删除所述白名单,并对访问数据库访问服务和元数据访问服务的所有访问请求进行身份认证和权限管理。
此外,本发明第三方面提供了一种计算机设备,其中,该计算机设备包括:处理器;以及,存储计算机可执行指令的存储器,所述可执行指令在被执行时使所述处理器执行本发明第一方面所述的数据仓库的访问控制方法。
此外,本发明第四方面提供了一种计算机程序产品,其中,所述计算机程序产品存储一个或多个程序,所述一个或多个程序当被处理器执行时,实现本发明第一方面所述的数据仓库的访问控制方法。
有益效果
与现有技术相比,本发明通过存储授权账户关联信息,并周期性更新所述授权账户关联信息,能够为账号认证服务提供更精确的数据依据;建立有效的账号认证服务,并调用所存储的授权账户关联信息进行账号认证服务,对访问请求进行认证,能够可靠地保证Hive数据仓库中数据的安全性,能够实现更有效的身份认证和权限验证过程,能够有效预防用户的误操作和恶意操作。
进一步地,通过采取周期性更新数据,能够有效避免因账号认证模块中的授权账户关联信息和元数据库中的数据库信息的数据不一致导致在线账号认证失败的问题;通过元数据库增设本地数据库(或者本地MAP),不仅能够保证在元数据库访问出现问题时、使用本地数据库中的相关数据进行认证,还能够大大降低元数据库的访问压力;通过增设访问过渡期及与该访问过渡期对应的账户白名单,并增加白名单判断的步骤,能够保证老访问方式在访问过渡期间的正常访问,即过渡期间兼容老方式,以有效避免影响线上生产环境;通过调用所述账户认证服务,对不同客户端访问数据库服务端和元数据服务端的访问请求进行身份认证,能够限制非法用户使用未升级客户端的恶意访问,能够实现更有效的身份认证过程;能够实现同一次连接多元数据请求的用户组信息,并能够区分不同连接的客户端的用户组信息,由此,能够更有效地进行权限验证。
附图说明
为了使本发明所解决的技术问题、采用的技术手段及取得的技术效果更加清楚,下面将参照附图详细描述本发明的具体实施例。但需声明的是,下面描述的附图仅仅是本发明本发明示例性实施例的附图,对于本领域的技术人员来讲,在不付出创造性劳动的前提下,可以根据这些附图获得其他实施例的附图。
图1是本发明的实施例1的数据仓库的访问控制方法的一示例的流程图。
图2是本发明的实施例1的数据仓库的访问控制方法的一应用场景的示意框图。
图3是本发明的实施例1的数据仓库的访问控制方法的另一示例的示意图。
图4是本发明的实施例1的数据仓库的访问控制方法中访问入口的示意框图。
图5是本发明的实施例1的数据仓库的访问控制方法中账号认证模块的示意框图。
图6是本发明的实施例2的数据仓库的访问控制系统的一示例的示意图。
图7是本发明的实施例2的数据仓库的访问控制系统的另一示例的示意图。
图8是根据本发明的计算机设备的示例性实施例的结构框图。
图9是根据本发明的计算机程序产品的示例性实施例的结构框图。
具体实施方式
现在将参考附图更全面地描述本发明的示例性实施例。然而,示例性实施例能够以多种形式实施,且不应被理解为本发明仅限于在此阐述的实施例。相反,提供这些示例性实施例能够使得本发明更加全面和完整,更加便于将发明构思全面地传达给本领域的技术人员。在图中相同的附图标记表示相同或类似的元件、组件或部分,因而将省略对它们的重复描述。
在符合本发明的技术构思的前提下,在某个特定的实施例中描述的特征、结构、特性或其他细节不排除可以以合适的方式结合在一个或更多其他的实施例中。
在对于具体实施例的描述中,本发明描述的特征、结构、特性或其他细节是为了使本领域的技术人员对实施例进行充分理解。但是,并不排除本领域技术人员可以实践本发明的技术方案而没有特定特征、结构、特性或其他细节的一个或更多。
附图中所示的流程图仅是示例性说明,不是必须包括所有的内容和操作/步骤,也不是必须按所描述的顺序执行。例如,有的操作/步骤还可以分解,而有的操作/步骤可以合并或部分合并,因此实际执行的顺序有可能根据实际情况改变。
附图中所示的方框图仅仅是功能实体,不一定必须与物理上独立的实体相对应。即,可以采用软件形式来实现这些功能实体,或在一个或多个硬件模块或集成电路中实现这些功能实体,或在不同网络和/或处理器装置和/或微控制器装置中实现这些功能实体。
应理解,虽然本文中可能使用第一、第二、第三等表示编号的定语来描述各种器件、元件、组件或部分,但这不应受这些定语限制。这些定语乃是用以区分一者与另一者。例如,第一器件亦可称为第二器件而不偏离本发明实质的技术方案。
术语“和/或”或者“及/或”包括相关联的列出项目中的任一个及一或多者的所有组合。
现有技术中,用户对于例如Hive等数据仓库内数据的操作,是不可撤回的。所以为了预防用户的误操作和恶意操作,有必要对用户访问数据仓库时的身份进行确认(认证),同时限制用户可进行的操作(授权),由此,为了进一步优化数据仓库权限管控,从账户认证和权限管理两个部分进行研发改进,提出了本发明的数据仓库的访问控制方法,该方法通过存储授权账户关联信息,并周期性更新所述授权账户关联信息,能够为账号认证服务提供更精确的数据依据;建立有效的账号认证服务,并调用所存储的授权账户关联信息进行账号认证服务,对访问请求进行认证,能够可靠地保证数据仓库中数据的安全性,能够实现更有效的身份认证和权限验证过程,能够有效预防用户的误操作和恶意操作。
需要说明的是,在本发明中,所述数据仓库(Data Warehouse)是一个面向主题的(Subject Oriented)、集成的(Integrated)、相对稳定的(Non-Volatile)、反映历史变化(Time Variant)的数据集合。数据仓库是面向主题的,数据仓库中的数据是按照一定的主题域进行组织。主题是指用户使用数据仓库进行决策时所关心的重点方面,一个主题通常与多个操作型信息系统相关。数据仓库是集成的,其数据有来自于分散的操作型数据,将所需数据从原来的数据中抽取出来,进行加工与集成,统一与综合之后才能进入数据仓库。例如,基于Hadoop的一个hive数据仓库用来进行数据提取、转化、加载,是一种可以存储、查询和分析存储在Hadoop中的大规模数据的机制,能将结构化的数据文件映射为一张数据库表,能提供SQL查询功能,能将SQL语句转变成MapReduce任务来执行。并且,Hive数据仓库具有数据存储与处理的功能。
为使本发明的目的、技术方案和优点更加清楚明白,以下结合具体实施例,并参照附图,对本发明作进一步的详细说明。
实施例1
下面,将参照图1至图5描述本发明的数据仓库的访问控制方法的实施例。
本发明的访问控制方法用于数据仓库的访问控制,特别适用于提供数据库访问服务及元数据访问服务的数据仓库,例如基于Hive的数据仓库(以下,将简称为Hive数据仓库),即,本发明中的所述数据仓库用于提供数据库访问服务及元数据访问服务,所述元数据用于描述所述数据仓库中的数据库。作为具体实施方式,所述元数据包括表名,表所属的数据库(默认是default)、表的列和分区及其属性,表的类型(是否为外部表等),表的数据所在目录等。
图1为本发明的数据仓库的访问控制方法的流程图。如图1所示,该方法包括如下步骤。
步骤S101,存储授权账户关联信息,并通过周期性获取元数据以更新该授权账户关联信息,授权账户关联信息包括授权账号信息及其对应的数据库信息。
具体地,所述数据仓库包括数据库访问服务和元数据访问服务。
本步骤中,将可访问所述数据仓库的授权账号关联信息进行存储,并周期性从元数据库获取最新的元数据,以更新相应授权关联信息,其中,所述元数据包括表名,表所属的数据库(默认是default)、表的列和分区及其属性,表的类型(是否为外部表等),表的数据所在目录等;所述授权账户关联信息包括授权账号信息及其对应的数据库信息,该授权账号信息包括账号ID、账号名称(或用户名称)、密码等,该数据库信息包括与授权账号相对应的数据访问权限信息、数据所在数据表、数据表所属的数据库等信息。
授权账户关联信息可以存储为数据仓库内的数据表或数据库,并提供访问接口。
为了解决现有Hive系统无法支持数据库(例如MYSQL)存储的账号密码校验的方式,以及Hive系统对于直连元数据库的访问请求无法进行权限管控的技术问题,本方案在数据仓库内建立账户认证服务。
具体地,在步骤S102中,在所述数据仓库内建立独立于所述数据库访问服务及元数据访问服务的账户认证服务,以调用所存储的授权账户关联信息。
更具体地,作为一种具体实施方式,可以为数据仓库配置专用于用户认证的认证模块,该认证模块包含用于用于存储账户关联信息的数据表或数据库。并且,所述认证模块能够周期性地访问所述数据仓库内用于存储元数据的数据库以拉取最新的元数据,使用所述最新的元数据更新所述授权账户关联信息。由此,所述认证模块可以被调用以用于对访问数据仓库的用户进行身份认证,即通过该认证模块提供账户认证服务,以能够实现数据库(例如MYSQL)存储的账号密码校验的方式,并能够对Hive系统的访问请求(特别是直连元数据库的访问请求)进行身份认证。
步骤S103,响应于客户端的访问请求。
图2是本发明的实施例1的数据仓库的访问控制方法的一应用场景的示意框图。
如图2所示,当用户想要访问所述数据仓库时,通过客户端向所述数据仓库发送访问请求,其中,所述客户端包括用于访问数据库服务端和元数据服务端的第一类客户端和第二类客户端,所述数据库服务端用于提供数据库访问服务,所述元数据服务端用于提供元数据访问服务。
使用数据仓库(特别是Hive数据仓库)的用户为研发工程师,数据分析师,产品,运营等相关业务人员。
步骤S104,调用所述账户认证服务,以根据所存储的授权账户关联信息对所述访问请求中的账户信息进行识别处理,以进行身份认证。
本步骤中,数据仓库在接收客户端的访问请求时,调用所述账户认证服务。在具体实施方式中,通过调用认证模块,根据所述认证模块所存储的授权账户关联信息对所述访问请求中的账户信息(例如名称和密码)进行识别处理,以进行身份认证。由此,能够更可靠地实现数据库(例如MYSQL)存储的账号密码校验的方式,并能够更有效对Hive系统的访问请求(特别是直连元数据库的访问请求)进行身份认证。
为了进一步解决Hive系统对于直连元数据库的访问请求无法进行权限管控的技术问题。本方案通过使用账号认证模块进一步进行权限验证。
具体地,在步骤S105中,将通过所述身份认证的用户请求返回数据库访问服务及元数据访问服务中进行权限验证。
根据所述认证模块的身份认证结果,将通过身份认证的用户请求返回数据库访问服务或元数据访问服务,进行进一步权限验证。由此,能够更有效对Hive系统的所有访问请求(包括直连元数据库的访问请求)进行权限验证。
进一步地,在所述用户请求通过权限验证时,向所述客户端返回相应数据。
而对未通过身份认证的用户请求,向所述客户端返回例如未通过身份认证等的响应消息。
对未通过权限验证的用户请求,向所述客户端返回例如未通过身份认证等的响应消息。
需要说明的是,上述仅作为示例进行说明,不能理解成对本发明的限制。
图3是本发明的实施例1的数据仓库的访问控制方法的另一示例的示意图。
首先,在步骤S201中,存储授权账户关联信息,并通过周期性获取元数据以更新该授权账户关联信息,授权账户关联信息包括授权账号信息及其对应的数据库信息。
图4是本发明的实施例1的数据仓库的访问控制方法中访问入口的示意框图。
具体地,所述Hive数据仓库包括数据库访问服务和元数据访问服务,并且包括与数据库访问服务和元数据访问服务相对应的第一访问入口和第二访问入口,具体参见图4。
由于不同数据具有不同的保密级别,根据保密级别和允许可操行为,对Hive数据仓库中的数据进行不用用户授予不同用户行为(包括用户对数据的可操作行为)的权限。例如,对于有些数据,允许所有用户访问;但是有些数据,允许一些用户访问;而还有些数据,只允许一些用户查看,其中有几个用户可下载保存,有几个用户可进行删除或增加等等。即,不同账号(即不同用户)授予不同权限,由此产生了授权账号。
为了实现Hive系统中数据库(例如MYSQL)存储的账号密码校验的方式,并为了保证数据库中数据的安全性,本发明的Hive数据仓库增设了认证模块,所述认证模块用于提供账户认证服务,以对客户端的访问请求进行身份认证,由此,能够更可靠地保证数据的安全性。
图5是本发明的实施例1的数据仓库的访问控制方法中账号认证模块的示意框图。
如图5所示,该账号认证模块包括本地MAP,使用该本地MAP存储授权账户关联信息。
具体地,授权账号信息包括账号、账户名称、密码以及与该账号相对应的数据库信息,该数据库信息包括数据所在数据表、数据表所属的数据库、数据库名称、数据表名称、数据表属性、数据所在数据表的位置等。
由此,通过存储授权账户关联信息,并周期性更新所述授权账户关联信息,能够为账号认证服务提供更精确的数据依据。
需要说明的是,上述仅作为示例进行说明,不能理解成对本发明的限制。
为了能够实现对多种访问方式的身份认证、以及数据访问的权限管理,本方案在数据仓库内建立账户认证服务,即提供账户认证服务。
接下来,在步骤S202中,在所述数据仓库内建立独立于所述数据库访问服务及元数据访问服务的账户认证服务,该账户认证服务可调用所存储的授权账户关联信息。
在本示例中,所述数据仓库还提供账户认证服务,具体地,使用账号认证模块提供独立于数据库访问服务和元数据访问服务的账户认证服务。
具体地,例如基于Hive开源代码,继承(例如,org.apache.hive.service.auth.PasswdAuthenticationProvider类等)开发账号认证模块,通过配置文件添加数据源参数以生成所述账号认证模块。例如在实际项目中,可采用MYSQL作为存储账户关联信息的数据源,所述数据源参数包括数据库地址、端口、数据库、账号、密码,数据更新周期等。
作为一种具体实施方式,对于Hive数据仓库来说,所述认证模模块实施为一个Jar包,由函数内部初始化加载配置,同时开启一个全局单独线程,周期性访问数据库拉取最新数据,采取周期性更新可以避免因数据库问题导致在线账号认证失败。也就是说,由所述Jar包进行账号认证,返回True或False。Hive数据仓库的HiveServer端和MetaServer端分别提供数据库访问服务和元数据访问服务,二者通过引用Jar和调用函数,即可进行用户的身份验证。由此,能够有效实现对HiveServer端和MetaServer端访问的访问请求中用户的身份验证。
作为一种优选实施方式,周期性访问数据库拉取的最新数据更新至数据结构MAP,由此,当出现数据库访问问题时,在线账号认证仍可使用本地MAP中的数据进行认证,并且大大降低了作为认证账号信息源的MYSQL的访问压力。
需要说明的是,上述仅作为示例进行说明,不能理解成对本发明的限制。
接下来,在步骤S203中,接收客户端的访问请求。
具体地,当用户想要访问所述数据仓库时,通过客户端向所述数据仓库发送访问请求,其中,所述客户端包括图4所示的第一访问入口和第二访问入口,第一访问入口与提供数据库服务的数据库服务端相对应,第二访问入口与提供元数据服务的元数据服务端相对应。
更具体地,访问Hive数据仓库的方式有两种,一种是访问Hive服务端(即数据库服务端),另一种是直接访问Hive元数据服务端(即元数据服务端),具体参见图2。可通过两种方式中任意一种,来访问Hive数据仓库获取与访问请求相对应的数据。
需要说明的是,本方案的Hive数据仓库增加账号认证和权限认证功能,所有访问Hive数据仓库的服务都需要携带账户信息才可访问。例如,通过Spark,Flink,Beeline,Hive等客户端(client)访问Hive数据仓库时,都会进行账号认证(即身份认证)和权限管理(或权限验证)的安全管控,以保证Hive数据仓库中数据的安全性。
进一步地,根据所接收的访问请求,使用账号认证模块进行账号认证,并向客户端作出响应信息,例如账号认证通过、账号认证通过、账号异常等响应信息。
由此,通过对不同客户端的访问请求的账号认证,能够可靠地保证Hive数据仓库中数据的安全性,能够有效预防用户的误操作和恶意操作。
为了保证客户端升级过程中兼容原有访问方式,本方案增设访问过渡期和账户白名单。
具体地,在步骤S204中,设置所述数据仓库的访问过渡期及与该访问过渡期对应的账户白名单。
在实际项目使用时,通常情况下,在现有线上集群基础上,进行功能迭代。对于大数据业务部门来说,日均实时和离线的数据访问量都是极大的,但在该情况下,也需要保证用户无感知,并降低线上影响。
例如,存在客户端或服务端的组件或软件等升级的情况,为了确保项目的平滑升级,同时保证数据仓库中数据的安全性。针对不同项目(例如教育服务拍搜产品项目),例如根据项目类型、参与人员的数量、数据量大小等参数,设定数据仓库的访问过渡期及与该访问过渡期对应的账户白名单。
具体地,根据客户端所升级的组件或软件,配置白名单,并设定与所述升级过程相对应的访问过渡期,或者设定时间节点(即Deadline),其中,该访问过渡期例如为1~3个月等。
需要说明的是,在本发明中,所述访问过渡期是指客户端升级(也称为用户升级)的过渡期,在所述访问过渡期结束之后关闭旧的访问入口。在访问过渡期结束之前就是客户端升级的过渡期。在所述访问过渡期间兼容原有访问方式、账号认证和权限验证方式。此外,对于是时间节点(Deadline)是项目服务方规定的一个时间节点,在这个时间节点前,给用户特定时间段,将客户端升级到最新版本,同时验证升级后的客户端是否可用。在这个时间节点之前,原有访问方式仍可用,以防止影响正常业务,在时间节点之后,服务端将只允许最新客户端的访问。Deadline的时间结点和客户端升级过渡期都是为了让整个项目平滑的升级,在不影响线上生产,不影响原有访问方式的同时,给到用户升级客户端,调试新客户端的时间。
例如,在进行账号认证之前,增加白名单判断的步骤。通过白名单判断的方式,在账号认证之前,过滤白名单账号,从而兼容原有服务账号访问的原有方式(或旧方式),由此能够保证老访问方式在访问过渡期间的正常访问,即过渡期间兼容老方式,以有效避免影响线上生产环境。
需要说明的是,对于访问过渡期、白名单,上述仅作为示例进行说明,不能理解成对本发明的限制。在其他示例中,所述访问过渡期的时间还会因项目的不同而增加或减少。
具体地,在所述访问过渡期内,在进行账号认证之前,先根据白名单对访问请求对应的用户进行是否是所述白名单中的用户(或账号)的判断。
例如,当所述访问请求中未包含账户名称和密码时,判断所述访问请求中的账户信息是否在所述白名单内,如果在(即在判断所述用户或账号在所述白名单中时),则将该访问请求作为公共账号的访问请求,则将该访问请求作为公共账号的访问请求,对所述公共账号的访问请求不作身份认证和权限管理。
例如,当所述访问请求中未包含账户名称和密码时,例如使用set_ugi传递过来的账号判断是否在所述白名单中(即是否为公共账号)。
可选地,定期从Hive数据仓库的审计日志中捞出公共账号对应的来源信息,根据该来源信息向该公共账号发出提示信息。
例如,以每一小时地间隔等,从Hive数据仓库的审计日志捞出公共账号,进行数据处理,并统计未迁移流量,判断非个人账号访问的访问请求均为未迁移流量。根据请求来源(IP)和访问的表查找用户或账号,例如提供一对一升级指导,实时进行相关答疑,介绍文档等,由此能够提高用户升级效率。
在判断所述用户或账号不在所述白名单中时(即如果不在),则会使用账号认证模块对所述访问请求进行账号认证。
进一步地,在访问过渡期结束时,删除所述白名单,并对访问数据库访问服务和元数据访问服务的所有访问请求进行身份认证和权限管理。换言之,在访问过渡期结束后,对全部访问请求均开启身份认证和权限管理。
由此,通过增设访问过渡期及与该访问过渡期对应的账户白名单,并增加白名单判断的步骤,能够保证老访问方式在访问过渡期间的正常访问,即过渡期间兼容老方式,以有效避免影响线上生产环境。
需要说明的是,上述仅作为示例进行说明,不能理解成对本发明的限制。
为了实现多种不同客户端提供账号认证服务,增设账号认证模块,在接收到客户端的访问请求时,调用通过账号认证模块实现的账户认证服务。
具体地,在步骤S205中,调用所述账户认证服务,以根据所存储的授权账户关联信息对所述访问请求中的账户信息进行识别处理,以进行身份认证(即账号认证)。
具体地,使用步骤S202所述的账号认证模块,调用账户认证服务,进行身份认证。
例如,当所述访问请求是元数据访问请求时,获取该访问请求中的账户名称和密码(例如为quhao和12**6),通过用户组信息(例如为user1:passwd1)传递到元数据访问服务中,并调用所述账户认证服务进行身份认证。
可选地,在所述用户组信息的前缀添加特定标识,例如@quhao:mima,其中“@”是特定标识,在该实施方式中,所述用户组信息为@quhao:mima。
需要说明的是,上述仅作为可选的示例进行说明,不能理解成对本发明的限制,在其他示例中,所述特定标识还可以使用其他符号表示,例如“&”等。
具体地,在客户端与元数据服务端建立连接时,使用set_ugi方法向该元数据服务端提供用户组信息,但是本方案对set_ugi方法进行改进,在set_ugi里存储信息时添加用户组信息(例如为一个字符串,如quhao:mima;user:passwd;user:mima)等数据,并在该数据前缀添加用于区分与其他内容的特定标识(例如,特定标识为@),由此,能够有效对所述访问请求中的账户信息(包括账号、密码)进行账号认证,因此,能实现透传账号密码的功能。而元数据服务端在获取到用户组信息中的账号密码后,使用账号认证模块,调用账户认证服务(即引入例如hiveauth-1.0.jar等的jar包中的认证函数),传入所获取的账户信息(例如账号和密码),判断所存储的授权账户关联信息中账号和密码与所传入的账号和密码是否一致,向元数据服务端传送认证结果,再由所述元数据服务端向客户端返回身份认证通或未通过的响应信息。例如,所述元数据访问请求例如为“hive-hiveconfhive.metastore.cu**om.se***ity.userpass=username:password”。所述用户组信息例如为“username=q**ao:password=mima”。
例如,当所述访问请求是数据库访问请求时,例如通过Session(即服务端服务器临时创建的内存),获取用户组信息(具体包括账号(或账户名称)和密码),使用账号认证模块,调用所述账户认证服务,判断所存储的授权账户关联信息中账号和密码与所述访问请求中的账户信息(例如账号或账户名称以及密码)是否一致,以进行账号认证,向数据库服务端传送认证结果,再由所述数据库服务端向客户端返回身份认证通或未通过的响应信息,例如该响应信息为True或False。具体地,所述数据库访问请求例如为“beeline-u“j dbc:hive2://……%##@”-nusername-ppassword”。所述用户组信息被改写为例如为user2:passwd2。
例如,身份认证未通过的情况还包括账号密码不正确的情况,在该情况下,向客户端返回错误的账号或密码的提示信息。
需要说明的是,本发明可为多种不同客户端提供账号认证服务。对于不同客户端的账号认证服务。例如,对于Hive客户端(即Hiveclient),可直接替换hive-metastore.jar包,例如直接通过set命令设置来进行账号认证服务。例如,对于Spark客户端(即Sparkclient),可直接调用的hive-metastorejar包,其中,需要通过例如“-conf”的方式设置参数,并且参数名前添加spark.hadoop.的前缀等,来进行账号认证服务。
由此,通过调用所述账户认证服务对不同客户端访问数据库服务端和元数据服务端的访问请求进行身份认证,能够限制非法用户使用未升级客户端的恶意访问,能够实现更有效的身份认证过程。
需要说明的是,上述仅作为示例进行说明,不能理解成对本发明的限制。
为了进一步解决Hive系统对于直连元数据库的访问请求无法进行权限管控的技术问题。本方案还通过使用所述认证模块进一步进行权限验证。
具体地,在步骤S206中,将通过所述身份认证的用户请求返回数据库访问服务及元数据访问服务中进行权限验证。
例如,在访问数据库的访问请求通过身份认证时,将该访问请求返回数据库访问服务中进行权限验证。
具体地,所述数据库服务端对所述访问请求中的数据访问信息进行解析,并将所述数据访问信息拆分成多个执行事件(例如拆分成访问数据表1,该数据表1属于数据库k1等),所述数据库服务端根据所述多个执行事件,确定所述用户是否有访问权限。在该访问权限验证时,在原始Metastore的权限验证中添加对于数据库的表和数据库的权限验证
例如,当访问元数据的访问请求通过身份认证时(即在访问请求是元数据访问请求时),通过钩子函数对该元数据访问请求的执行事件进行监听,并在该执行事件进行时进行权限验证。
具体地,例如,基于Sentry本身的鉴权原理,对元数据库的权限验证。具体地,Sentry的鉴权过程中,通过在Hive数据仓库增加钩子函数,在hive数据仓库执行前后调用所添加的钩子函数,比如编译前或编译后,执行前或执行后。例如,在执行客户端的请求命令之前或之后都可调用相应的钩子函数。例如,通过添加例如“org.apache.sentry.binding.metastore.MetastoreAuthzBinding”的类,这个类继承MetaStorePreEventListener,在客户端的请求命令之前调用。由此,实现权限验证(或者权限管控),例如添加了对gettable和get database的限制。因此,能够对访问数据库服务端的权限限制的同时,对访问元数据服务端的权限限制,由此能够有效实现了各访问入口的权限限制。
在另一示例中,客户端调用了set_ugi之后,元数据服务端在接收到set_ugi请求之后也要做相应的处理,例如隔离式的内存保存用户组信息,例如使用ThreadLocal变量对每个客户端的连接都会分配一个单独的线程来处理,所有ThreadLocal变量都用于绑定所述线程,由此能够独立保存各客户端的用户组信息,并能够解决多并发的问题。
需要说明的是,上述这些线程都是放在线程池里的,当客户端的连接释放掉之后需要清空ThreadLocal变量。
由此,能够实现同一次连接多元数据请求的用户组信息,并能够区分不同连接的客户端的用户组信息,由此,能够更有效地进行权限验证。
需要说明的是,上述仅作为示例进行说明,不能理解成对本发明的限制。
本领域技术人员可以理解,实现上述实施例的全部或部分步骤被实现为由计算机数据处理设备执行的程序(计算机程序)。在该计算机程序被执行时,可以实现本发明提供的上述方法。而且,所述的计算机程序可以存储于计算机可读存储介质中,该存储介质可以是磁盘、光盘、ROM、RAM等可读存储介质,也可以是多个存储介质组成的存储阵列,例如磁盘或磁带存储阵列。所述的存储介质不限于集中式存储,其也可以是分布式存储,例如基于云计算的云存储。
与现有技术相比,本发明通过存储授权账户关联信息,并周期性更新所述授权账户关联信息,能够为账号认证服务提供更精确的数据依据;建立有效的账号认证服务,并调用所存储的授权账户关联信息进行账号认证服务,对访问请求进行认证,能够可靠地保证Hive数据仓库中数据的安全性,能够实现更有效的身份认证和权限验证过程,能够有效预防用户的误操作和恶意操作。
进一步地,通过采取周期性更新数据,能够有效避免因账号认证模块中的授权账户关联信息和元数据库中的数据库信息的数据不一致导致在线账号认证失败的问题;通过元数据库增设本地数据库(或者本地MAP),不仅能够保证在元数据库访问出现问题时、使用本地数据库中的相关数据进行认证,还能够大大降低元数据库的访问压力;通过增设访问过渡期及与该访问过渡期对应的账户白名单,并增加白名单判断的步骤,能够保证在访问过渡期间达到所有账号的认证和权限管理;通过调用所述账户认证服务,对不同客户端访问数据库服务端和元数据服务端的访问请求进行身份认证,能够限制非法用户使用未升级客户端的恶意访问,能够实现更有效的身份认证过程;能够实现同一次连接多元数据请求的用户组信息,并能够区分不同连接的客户端的用户组信息,由此,能够更有效地进行权限验证。
实施例2
下面描述本发明的系统实施例,该系统可以用于执行本发明的方法实施例。对于本发明系统实施例中描述的细节,应视为对于上述方法实施例的补充;对于在本发明系统实施例中未披露的细节,可以参照上述方法实施例来实现。
参照图2、图4至图7,本发明还提供了一种数据仓库的访问控制系统500,所述数据仓库用于提供数据库访问服务及元数据访问服务,所述元数据用于描述所述数据仓库中的数据库。
如图6所示,所述访问控制系统600包括:存储模块601,用于存储授权账户关联信息,并通过周期性获取元数据以更新该授权账户关联信息,授权账户关联信息包括授权账号信息及其对应的数据库信息;建立模块602,用于在所述数据仓库内建立独立于所述数据库访问服务及元数据访问服务的账户认证服务,以调用所存储的授权账户关联信息;接收模块603,用于接收客户端的访问请求;调用模块604,用于调用所述账户认证服务,以根据所存储的授权账户关联信息对所述访问请求中的账户信息(在本示例中,为名称和密码)进行识别处理,以进行身份认证;验证模块605,用于将通过所述身份认证的用户请求返回数据库访问服务及元数据访问服务中进行权限验证。
具体地,所述Hive数据仓库包括数据库访问服务和元数据访问服务,并且包括与数据库访问服务和元数据访问服务相对应的第一访问入口和第二访问入口,具体参见图4。
更具体地,由于不同数据具有不同的保密级别,根据保密级别和允许可操行为,对Hive数据仓库中的数据进行不用用户授予不同用户行为(包括用户对数据的可操作行为)的权限。例如,对于有些数据,允许所有用户访问;但是有些数据,允许一些用户访问;而还有些数据,只允许一些用户查看,其中有几个用户可下载保存,有几个用户可进行删除或增加等等。即,不同账号(即不同用户)授予不同权限,由此产生了授权账号。
本发明的Hive数据仓库增设了认证模块,所述认证模块用于提供账户认证服务,通过调用所书账号认证服务进行身份认证,能够更可靠地保证数据的安全性,并能够有效预防用户的误操作和恶意操作。
具体地,使用认证模块(例如本地MAP)存储授权账户关联信息。
更具体地,授权账号信息包括账号、账户名称、密码以及与该账号相对应的数据库信息,该数据库信息包括数据所在数据表、数据表所属的数据库、数据库名称、数据表名称、数据表属性、数据所在数据表的位置等。
由此,通过存储授权账户关联信息,并周期性更新所述授权账户关联信息,能够为账号认证服务提供更精确的数据依据。
例如,当所述访问请求是元数据访问请求时,将该访问请求中的账户信息(账户名称和密码)通过用户组信息传递到元数据访问服务中,并调用所述账户认证服务进行身份认证。
可选地,所述将该访问请求中的账户信息(例如账户名称和密码)通过用户组信息传递到元数据访问服务中包括:在所述用户组信息的前缀添加特定标识。
需要说明的是,由于本实施例中的用户组信息和特定标识与实施例1中的用户组信息和特定标识相同,因此,省略了对它们的描述。
例如,当所述访问请求是元数据访问请求时,通过钩子函数对该元数据访问请求的执行事件进行监听,并在该执行事件进行时进行权限验证。
具体地,在原始Metastore的权限验证中添加对于数据库的表和数据库的权限验证。
如图7所示,在另一示例中,所述访问控制系统600还包括设置模块701,即将调用模块604拆分成调用模块604和设置模块701,所述设置模块701用于设置所述数据仓库的访问过渡期及与该访问过渡期对应的账户白名单。
具体地,在所述访问过渡期内,当所述访问请求中未包含账户名称和密码时,判断所述访问请求中的账户信息是否在所述白名单内,如果在,则将该访问请求作为公共账号的访问请求,由所述数据库访问服务及元数据访问服务直接进行身份认证和权限管理。
可选地,定期从数据仓库的审计日志中捞出公共账号对应的来源信息,根据该来源信息向该公共账号发出提示信息。
具体地,在所述过渡期结束时,删除所述白名单,并对访问数据库访问服务和元数据访问服务的所有访问请求进行身份认证和权限管理。换言之,在过渡期结束后,对所有访问请求均开启身份认证和权限管理。
需要说明的是,本实施例中访问过渡期、与该访问过渡期对应的账户白名单以及白名单判断的步骤与实施例1中的访问过渡期、与该访问过渡期对应的账户白名单以及白名单判断的步骤相同,因此,省略了对它们的描述。
由此,通过增设访问过渡期及与该访问过渡期对应的账户白名单,并增加白名单判断的步骤,能够保证老访问方式在访问过渡期间的正常访问,即过渡期间兼容老方式,以有效避免影响线上生产环境。
需要说明的是,在实施例2中,省略了与实施例1相同的部分的说明。
本领域技术人员可以理解,上述系统实施例中的各模块可以按照描述分布于系统中,也可以进行相应变化,分布于不同于上述实施例的一个或多个系统中。上述实施例的模块可以合并为一个模块,也可以进一步拆分成多个子模块。
与现有技术相比,本发明通过存储授权账户关联信息,并周期性更新所述授权账户关联信息,能够为账号认证服务提供更精确的数据依据;建立有效的账号认证服务,并调用所存储的授权账户关联信息进行账号认证服务,对访问请求进行认证,能够可靠地保证Hive数据仓库中数据的安全性,能够实现更有效的身份认证和权限验证过程,能够有效预防用户的误操作和恶意操作。
进一步地,通过采取周期性更新数据,能够有效避免因账号认证模块中的授权账户关联信息和元数据库中的数据库信息的数据不一致导致在线账号认证失败的问题;通过元数据库增设本地数据库(或者本地MAP),不仅能够保证在元数据库访问出现问题时、使用本地数据库中的相关数据进行认证,还能够大大降低元数据库的访问压力;通过增设访问过渡期及与该访问过渡期对应的账户白名单,并增加白名单判断的步骤,能够保证老访问方式在访问过渡期间的正常访问,即过渡期间兼容老方式,以有效避免影响线上生产环境;通过调用所述账户认证服务,对不同客户端访问数据库服务端和元数据服务端的访问请求进行身份认证,能够限制非法用户使用未升级客户端的恶意访问,能够实现更有效的身份认证过程;能够实现同一次连接多元数据请求的用户组信息,并能够区分不同连接的客户端的用户组信息,由此,能够更有效地进行权限验证。
实施例3
下面描述本发明的计算机设备实施例,该计算机设备可以视为对于上述本发明的方法和装置实施例的具体实体实施方式。对于本发明计算机设备实施例中描述的细节,应视为对于上述方法或装置实施例的补充;对于在本发明计算机设备实施例中未披露的细节,可以参照上述方法或装置实施例来实现。
图8是本发明的一个实施例的计算机设备的结构示意图,该计算机设备包括处理器和存储器,所述存储器用于存储计算机可执行程序,当所述计算机程序被所述处理器执行时,所述处理器执行图1的方法。
如图8所示,计算机设备以通用计算设备的形式表现。其中处理器可以是一个,也可以是多个并且协同工作。本发明也不排除进行分布式处理,即处理器可以分散在不同的实体设备中。本发明的计算机设备并不限于单一实体,也可以是多个实体设备的总和。
所述存储器存储有计算机可执行程序,通常是机器可读的代码。所述计算机可读程序可以被所述处理器执行,以使得计算机设备能够执行本发明的方法,或者方法中的至少部分步骤。
所述存储器包括易失性存储器,例如随机存取存储单元(RAM)和/或高速缓存存储单元,还可以是非易失性存储器,如只读存储单元(ROM)。
可选的,该实施例中,计算机设备还包括有I/O接口,其用于计算机设备与外部的设备进行数据交换。I/O接口可以为表示几类总线结构中的一种或多种,包括存储单元总线或者存储单元控制器、外围总线、图形加速端口、处理单元或者使用多种总线结构中的任意总线结构的局域总线。
应当理解,图8显示的计算机设备仅仅是本发明的一个示例,本发明的计算机设备中还可以包括上述示例中未示出的元件或组件。例如,有些计算机设备中还包括有显示屏等显示单元,有些计算机设备还包括人机交互元件,例如按扭、键盘等。只要该计算机设备能够执行存储器中的计算机可读程序以实现本发明方法或方法的至少部分步骤,均可认为是本发明所涵盖的计算机设备。
图9是本发明的一个实施例的计算机程序产品的示意图。如图9所示,计算机程序产品中存储有计算机可执行程序,所述计算机可执行程序被执行时,实现本发明上述方法。所述计算机可读存储介质可以包括在基带中或者作为载波一部分传播的数据信号,其中承载了可读程序代码。这种传播的数据信号可以采用多种形式,包括但不限于电磁信号、光信号或上述的任意合适的组合。可读存储介质还可以是可读存储介质以外的任何可读介质,该可读介质可以发送、传播或者传输用于由指令执行系统、装置或者器件使用或者与其结合使用的程序。可读存储介质上包含的程序代码可以用任何适当的介质传输,包括但不限于无线、有线、光缆、RF等等,或者上述的任意合适的组合。
可以以一种或多种程序设计语言的任意组合来编写用于执行本发明操作的程序代码,所述程序设计语言包括面向对象的程序设计语言—诸如Java、C++等,还包括常规的过程式程序设计语言—诸如“C”语言或类似的程序设计语言。程序代码可以完全地在用户计算设备上执行、部分地在用户设备上执行、作为一个独立的软件包执行、部分在用户计算设备上部分在远程计算设备上执行、或者完全在远程计算设备或服务器上执行。在涉及远程计算设备的情形中,远程计算设备可以通过任意种类的网络,包括局域网(LAN)或广域网(WAN),连接到用户计算设备,或者,可以连接到外部计算设备(例如利用因特网服务提供商来通过因特网连接)。
通过以上对实施方式的描述,本领域的技术人员易于理解,本发明可以由能够执行特定计算机程序的硬件来实现,例如本发明的系统,以及系统中包含的电子处理单元、服务器、客户端、手机、控制单元、处理器等。本发明也可以由执行本发明的方法的计算机软件来实现,例如由微处理器、电子控制单元,客户端、服务器端等执行的控制软件来实现。但需要说明的是,执行本发明的方法的计算机软件并不限于由一个或特定个的硬件实体中执行,其也可以是由不特定具体硬件的以分布式的方式来实现。对于计算机软件,软件产品可以存储在一个计算机可读的存储介质(可以是CD-ROM,U盘,移动硬盘等)中,也可以分布式存储于网络上,只要其能使得计算机设备执行根据本发明的方法。
以上所述的具体实施例,对本发明的目的、技术方案和有益效果进行了进一步详细说明,应理解的是,本发明不与任何特定计算机、虚拟装置或者计算机设备固有相关,各种通用装置也可以实现本发明。以上所述仅为本发明的具体实施例而已,并不用于限制本发明,凡在本发明的精神和原则之内,所做的任何修改、等同替换、改进等,均应包含在本发明的保护范围之内。

Claims (10)

1.一种数据仓库的访问控制方法,其特征在于,包括:
存储授权账户关联信息,并通过周期性获取元数据以更新该授权账户关联信息,所述授权账户关联信息包括授权账号信息及其对应的数据库信息;
建立独立于数据库访问服务及元数据访问服务的账户认证服务,以调用所存储的授权账户关联信息;
响应于客户端的访问请求;调用所述账户认证服务,根据所存储的授权账户关联信息对所述访问请求中的账户信息识别处理,以进行身份认证;
将通过所述身份认证的请求返回数据库访问服务及元数据访问服务中进行权限验证。
2.根据权利要求1所述的数据仓库的访问控制方法,其特征在于,当所述访问请求是元数据访问请求时,将该访问请求中的账户信息通过用户组信息传递到元数据访问服务中,并调用所述账户认证服务进行身份认证;
可选地,在所述用户组信息的前缀添加特定标识。
3.根据权利要求1所述的数据仓库的访问控制方法,其特征在于,所述权限验证包括:
当所述访问请求是元数据访问请求时,通过钩子函数对该元数据访问请求的执行事件进行监听,并在该执行事件进行时进行权限验证。
4.根据权利要求3所述的数据仓库的访问控制方法,其特征在于,所述访问请求是对Hive数据仓库的Metastore的访问请求,所述权限验证包括:在原始Metastore的权限验证中添加对于数据库的表和数据库的权限验证。
5.根据权利要求1所述的数据仓库的访问控制方法,其特征在于,还包括:
设置所述数据仓库的访问过渡期及与该访问过渡期对应的账户白名单;
在所述访问过渡期内,当所述访问请求中未包含账户名称和密码时,判断所述访问请求中的账户信息是否在所述白名单内,如果在,则将该访问请求作为公共账号的访问请求,对所述公共账号的访问请求不作身份认证和权限管理。
6.根据权利要求5所述的数据仓库的访问控制方法,其特征在于,还包括:
定期从数据仓库的审计日志中捞出公共账号对应的来源信息,根据该来源信息向该公共账号发出提示信息。
7.根据权利要求5所述的数据仓库的访问控制方法,其特征在于,在所述过渡期结束时,删除所述白名单,并对访问数据库访问服务和元数据访问服务的所有访问请求进行身份认证和权限管理。
8.一种数据仓库的访问控制系统,其特征在于,包括:
存储模块,用于存储授权账户关联信息,并通过周期性获取元数据以更新该授权账户关联信息,授权账户关联信息包括授权账号信息及其对应的数据库信息;
建立模块,用于在数据仓库内建立独立于所述数据库访问服务及元数据访问服务的账户认证服务,以调用所存储的授权账户关联信息;
接收模块,用于响应于客户端的访问请求;
调用模块,用于调用所述账户认证服务,以根据所存储的授权账户关联信息对所述访问请求中的账户信息进行识别处理,以进行身份认证;
验证模块,用于将通过所述身份认证的用户请求返回数据库访问服务及元数据访问服务中进行权限验证。
9.一种计算机设备,其中,该计算机设备包括:
处理器;以及,
存储计算机可执行指令的存储器,所述可执行指令在被执行时使所述处理器执行根据权利要求1-7中任一项所述的数据仓库的访问控制方法。
10.一种计算机可读存储介质,其中,所述计算机可读存储介质存储一个或多个程序,所述一个或多个程序当被处理器执行时,实现权利要求1-7中任一项所述的数据仓库的访问控制方法。
CN202110675621.XA 2021-06-18 2021-06-18 数据仓库的访问控制方法、系统和电子设备 Pending CN113392415A (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN202110675621.XA CN113392415A (zh) 2021-06-18 2021-06-18 数据仓库的访问控制方法、系统和电子设备

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN202110675621.XA CN113392415A (zh) 2021-06-18 2021-06-18 数据仓库的访问控制方法、系统和电子设备

Publications (1)

Publication Number Publication Date
CN113392415A true CN113392415A (zh) 2021-09-14

Family

ID=77621913

Family Applications (1)

Application Number Title Priority Date Filing Date
CN202110675621.XA Pending CN113392415A (zh) 2021-06-18 2021-06-18 数据仓库的访问控制方法、系统和电子设备

Country Status (1)

Country Link
CN (1) CN113392415A (zh)

Cited By (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN114697084A (zh) * 2022-03-14 2022-07-01 浙江大豪科技有限公司 缝纫设备数据访问方法
CN115062092A (zh) * 2022-08-10 2022-09-16 阿里云计算有限公司 数据库访问方法、设备、系统及存储介质
CN115134112A (zh) * 2022-05-12 2022-09-30 山东鲁软数字科技有限公司 一种内网环境下统一浏览器账户管理系统及方法
CN115470217A (zh) * 2022-11-14 2022-12-13 云筑信息科技(成都)有限公司 一种实时解决数仓模型变化响应问题的方法
CN115828308A (zh) * 2023-02-13 2023-03-21 本原数据(北京)信息技术有限公司 数据访问方法、数据访问装置、电子设备及存储介质

Cited By (7)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN114697084A (zh) * 2022-03-14 2022-07-01 浙江大豪科技有限公司 缝纫设备数据访问方法
CN114697084B (zh) * 2022-03-14 2024-03-26 浙江大豪科技有限公司 缝纫设备数据访问方法
CN115134112A (zh) * 2022-05-12 2022-09-30 山东鲁软数字科技有限公司 一种内网环境下统一浏览器账户管理系统及方法
CN115134112B (zh) * 2022-05-12 2024-02-02 山东鲁软数字科技有限公司 一种内网环境下统一浏览器账户管理系统及方法
CN115062092A (zh) * 2022-08-10 2022-09-16 阿里云计算有限公司 数据库访问方法、设备、系统及存储介质
CN115470217A (zh) * 2022-11-14 2022-12-13 云筑信息科技(成都)有限公司 一种实时解决数仓模型变化响应问题的方法
CN115828308A (zh) * 2023-02-13 2023-03-21 本原数据(北京)信息技术有限公司 数据访问方法、数据访问装置、电子设备及存储介质

Similar Documents

Publication Publication Date Title
CN113392415A (zh) 数据仓库的访问控制方法、系统和电子设备
US9667661B2 (en) Privileged account manager, dynamic policy engine
US10263993B2 (en) Access guards for multi-tenant logging
US8955037B2 (en) Access management architecture
JP5787640B2 (ja) 認証システムおよび認証方法およびプログラム
CN108289098B (zh) 分布式文件系统的权限管理方法和装置、服务器、介质
WO2020238359A1 (zh) 分区授权方法、装置、设备及计算机可读存储介质
US20110314520A1 (en) Online service access controls using scale out directory features
CN113612740B (zh) 权限管理方法、装置、计算机可读介质及电子设备
CN112149109B (zh) 模块化权限控制管理方法及系统
EP4158518A1 (en) Secure resource authorization for external identities using remote principal objects
CN115758459A (zh) 数据权限管理方法及装置
US9715513B2 (en) System, method and computing apparatus to isolate a database in a database system
US11783049B2 (en) Automated code analysis tool
CN114896584B (zh) 一种Hive数据权限控制代理层方法及系统
US10951600B2 (en) Domain authentication
CN116488836A (zh) 基于多租户的kubernetes集群资源管理方法及系统
US20200104696A1 (en) Service account prediction using user name
CN111723401A (zh) 数据访问权限控制方法、装置、系统、存储介质及设备
Mustafa DevOps Security (DevSecOps)
US11669527B1 (en) Optimized policy data structure for distributed authorization systems
Lamouchi Adding Anti-Disaster Layers
US20230077995A1 (en) Application Programming Interface (API) Automation Framework
JP4489634B2 (ja) JavaサーブレットによるWebサーバシステム
CN117061167A (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