CN117828567A - 一种外部表安全访问控制方法、装置、设备及介质 - Google Patents

一种外部表安全访问控制方法、装置、设备及介质 Download PDF

Info

Publication number
CN117828567A
CN117828567A CN202311866701.9A CN202311866701A CN117828567A CN 117828567 A CN117828567 A CN 117828567A CN 202311866701 A CN202311866701 A CN 202311866701A CN 117828567 A CN117828567 A CN 117828567A
Authority
CN
China
Prior art keywords
user
data
external
external table
sql
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
CN202311866701.9A
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.)
Hangzhou Dt Dream Technology Co Ltd
Original Assignee
Hangzhou Dt Dream Technology 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 Hangzhou Dt Dream Technology Co Ltd filed Critical Hangzhou Dt Dream Technology Co Ltd
Priority to CN202311866701.9A priority Critical patent/CN117828567A/zh
Publication of CN117828567A publication Critical patent/CN117828567A/zh
Pending legal-status Critical Current

Links

Landscapes

  • Storage Device Security (AREA)

Abstract

本申请提供一种外部表安全访问控制方法、装置、设备及介质。所述方法包括:响应于创建外部表,获取与所述外部表对应的来源业务库和来源业务库表,并保存所述外部表和来源业务库表的映射关系;响应于用户发送的执行涉及所述外部表的SQL脚本的请求,基于所述外部表对应的来源业务库表的安全策略,对所述用户进行鉴权;如果鉴权通过,则将所述SQL脚本提交到数据库执行,等待数据库执行完成后,向用户返回查询结果。

Description

一种外部表安全访问控制方法、装置、设备及介质
技术领域
本申请涉及大数据技术领域,尤其涉及一种外部表安全访问控制方法、装置、设备及介质。
背景技术
在数据库管理系统中,可以通过定义外部表的方式,允许用户将外部数据源中的数据以表的形式在数据库中进行访问和查询。用户无需将外部数据源的数据复制到数据库中,而是通过建立与外部数据源的连接,可以直接在数据库中使用SQL语句来查询和操作外部数据。
但是,由于外部表中的数据实际在外部数据源中,通常需要针对外部表单独进行安全策略配置。用户访问外部表时,根据外部表上的安全策略进行用户权限验证、查询结果数据脱敏。
发明内容
有鉴于此,本说明书提供以下方法、装置、设备及介质。
在本申请的第一方面,提供一种外部表安全访问控制方法,所述方法包括:
响应于创建外部表,获取与所述外部表对应的来源业务库和来源业务库表,并保存所述外部表和来源业务库表的映射关系;
响应于用户发送的执行涉及所述外部表的SQL脚本的请求,基于所述外部表对应的来源业务库表的安全策略,对所述用户进行鉴权;
如果鉴权通过,则将所述SQL脚本提交到数据库执行,等待数据库执行完成后,向用户返回查询结果。
在本申请的第二方面,提供一种外部表安全访问控制装置,所述装置包括:
获取单元,用于响应于创建外部表,获取与所述外部表对应的来源业务库和来源业务库表,并保存所述外部表和来源业务库表的映射关系;
鉴权单元,用于响应于用户发送的执行涉及所述外部表的SQL脚本的请求,基于所述外部表对应的来源业务库表的安全策略,对所述用户进行鉴权;
执行单元,用于如果鉴权通过,则将所述SQL脚本提交到数据库执行,等待数据库执行完成后,向用户返回查询结果。
在本申请的第三方面,提供了一种电子设备,包括通信接口、处理器、存储器和总线,所述通信接口、所述处理器和所述存储器之间通过总线相互连接;
所述存储器中存储机器可读指令,所述处理器通过调用所述机器可读指令,执行以上方法。
在本申请的第四方面,提供了一种机器可读存储介质,所述机器可读存储介质存储有机器可读指令,所述机器可读指令在被处理器调用和执行时,实现以上方法。
本说明书以上的实施方式,至少具有如下的有益效果:
以上技术方案通过将外部表与来源业务表的关系进行保存,在用户访问外部表时,基于来源业务表的安全策略,对用户权限进行安全控制,从而降低了维护成本和安全风险。
附图说明
图1是一示意性的实施例示出的一种外部表安全访问控制方法的流程图;
图2是一示意性的实施例示出的一种外部表安全访问控制方法的示意图;
图3是一示意性的实施例示出的一种外部表安全访问控制装置所在电子设备的硬件结构图;
图4是一示意性的实施例示出的一种外部表安全访问控制装置的框图。
具体实施方式
这里将详细地对示例性实施例进行说明,其示例表示在附图中。下面的描述涉及附图时,除非另有表示,不同附图中的相同数字表示相同或相似的要素。以下示例性实施例中所描述的实施方式并不代表与本申请相一致的所有实施方式。相反,它们仅是与如所附权利要求书中所详述的、本申请的一些方面相一致的装置和方法的例子。
需要说明的是:在其他实施例中并不一定按照本说明书示出和描述的顺序来执行相应方法的步骤。在一些其他实施例中,其方法所包括的步骤可以比本说明书所描述的更多或更少。此外,本说明书中所描述的单个步骤,在其他实施例中可能被分解为多个步骤进行描述;而本说明书中所描述的多个步骤,在其他实施例中也可能被合并为单个步骤进行描述。
为了使本技术领域的人员更好地理解本说明书实施例中的技术方案,下面先对本说明书实施例涉及的家具溯源的相关技术,进行简要说明。
外部表:外部表是数据库管理系统(DBMS)中的一个概念,允许用户将外部数据源中的数据以表的形式在数据库中进行访问和查询。外部数据源可以是其他数据库、文本文件、电子表格、Web服务等。外部表允许用户无需将外部数据源的数据复制到数据库中,而是通过建立与外部数据源的连接,实时地访问和查询外部数据。外部表在数据库中类似于普通表,但其数据实际上存储在外部数据源中。数据库系统通过外部表定义来描述外部数据源中的数据结构和访问方式,使得用户可以直接在数据库中使用SQL语句来查询和操作外部数据。
SQL:全称Structured Query Language,结构化查询语言,是一种标准的计算机语言,用于访问和处理数据库,包括数据插入、查询、更新和删除,数据库模式创建和修改,以及数据访问控制等。
数据鉴权:数据鉴权是一种用于控制数据访问和操作权限的机制,确保只有经过认证和授权的用户或系统可以访问和修改数据。数据鉴权是数据安全的重要组成部分,通过对用户和操作进行身份验证和授权,可以防止未经授权的访问和数据泄露。
数据脱敏:数据脱敏是一种用于保护敏感数据的隐私的技术,是一种数据保护策略,旨在替换敏感数据或对其进行修改,以防止未经授权的访问和泄露。数据脱敏的目标是保护敏感信息,同时保持数据的可用性和实用性。
在相关技术中,通常通过数据集成任务将业务库中的数据定期抽取到大数据平台,再对数据进行清洗、加工处理。使用外部表则可以直接在大数据平台中通过SQL访问和操作业务库中的数据,直接进行数据清洗、加工处理。
而外部表使用过程中需要安全控制,现有技术方案通常通过单独对外部表配置安全策略,例如用户授权、数据分类分级规则等。当用户访问外部表时,根据外部表上的安全策略进行用户权限验证、查询结果数据脱敏。
这样,业务库资源上配置过的安全策略,外部表引用业务库资源后,还需要再次对外部表进行安全策略配置,并且当业务资源库的安全策略发生改变时,需要及时对外部表的安全策略进行重新配置,增加了维护成本和安全风险。
有鉴于此,本说明书提出一种通过保存外部表与业务库来源表的对应关系,在访问外部表时,使用业务来源表对应的安全策略进行安全控制的外部表安全访问控制方法。
下面通过具体实施例,并结合具体的应用场景对本申请进行描述。
请参见图1,图1是一示意性的实施例示出的一种外部表安全访问控制方法的流程图。
上述方法可以执行以下步骤:
步骤102:响应于创建外部表,获取与所述外部表对应的来源业务库和来源业务库表,并保存所述外部表和来源业务库表的映射关系。
当在数据库中建立外部表时,可以保存外部表对应的来源业务库和来源业务表的信息,将外部表和来源业务表的映射关系保存在数据库本地。
具体的,建立外部表时,用户需要输入需要建立外部表的数据库名、外部表名、外部表来源业务库名和来源业务表名。元数据服务可以根据用户输入的上述信息,生成外部表定义语句,提交到制定的数据库中进行执行,完成数据库层面的外部表创建,以使用户后续可以使用SQL在数据库中访问或操作外部表中的数据。元数据服务可以存储外部表和来源业务表的映射关系。
步骤104:响应于用户发送的执行涉及所述外部表的SQL脚本的请求,基于所述外部表对应的来源业务库表的安全策略,对所述用户进行鉴权。
当用户需要对外部表中的数据进行访问时,可以发起执行使用SQL脚本的请求,SQL脚本中可以包括涉及外部表的SQL语句。
元数据服务可以识别涉及外部表的SQL语句,并查询与该外部表存在映射关系的来源业务表上配置的安全策略,基于该安全策略对发起请求的用户进行鉴权,确认该用户是否具备访问外部表中数据的权限。
如果根据来源业务表上的安全策略,确认该用户不具备访问外部表中数据的权限,则鉴权失败,流程中断,用户请求执行的SQL脚本将不能得到执行。
步骤106:如果鉴权通过,则将所述SQL脚本提交到数据库执行,等待数据库执行完成后,向用户返回查询结果。
如果根据来源业务表上的安全策略,确认该用户具备访问外部表中数据的权限,则鉴权成功,用户请求执行的SQL脚本可以进入数据库中进行执行。
当SQL脚本执行完成,数据库可以返回执行结果。
根据已配置的安全策略,返回用户的执行结果还可以是经过数据脱敏的脱敏数据,本说明书不对此进行具体限定。
以上实施例,通过将外部表与来源业务表的关系进行保存,在用户访问外部表时,基于来源业务表的安全策略,对用户权限进行安全控制,从而降低了维护成本和安全风险。
用户在访问数据库时,访问的对象可能只包括内部表数据,可能只包括外部表数据,也可能同时包括内部表数据和外部表数据。
因此,可以对用户请求执行的SQL脚本进行分析,判断其是否需要访问外部表中的数据。
在本说明示出的一个示意性的实施例中,当用户发送执行SQL脚本的请求时,可以基于SQL解析器解析待执行的SQL脚本。
针对SQL脚本中的每一句待执行的SQL语句,进行词法分析和语义分析,判断SQL语句的访问对象是否为外部表;
如果SQL语句的访问对象为外部表,则查询该外部表对应的来源业务表,并基于该来源业务表的安全策略,对用户进行权限计算,判断该用户是否具备访问该来源业务表的权限。
如果用户不具备访问该来源业务表的权限则鉴权不通过,用户不可以访问该外部表,SQL语句不可以执行。
如果用户具备访问该来源业务表的权限则鉴权通过,用户可以访问该外部表,SQL语句可以执行。
对于SQL脚本中的部分SQL语句鉴权成功的情况,可以只将鉴权成功的部分SQL语句传入数据库进行执行,而阻断鉴权失败的部分SQL语句。
可以将鉴权失败信息返回给用户,以提示用户不具备外部表的访问权限。鉴权失败信息中还可以包括SQL脚本中那些语句未被执行的信息。
除了外部表以外,用户访问数据库中内部表时,也可能存在用户权限不足,无法访问数据的情况。用户访问的所有数据表,都可以存在对应的鉴权操作。
因此,可以将用户访问的所有表进行统一处理,由数据库的数据安全服务根据各表的安全策略进行用户鉴权,其中,外部表的安全策略根据其对应的来源业务表的安全策略确定。
具体的,可以基于SQL解析器对SQL脚本进行词法分析和语义分析,从各个SQL语句中提取出SQL语句操作的目标字段,目标字段所在的目标数据库、目标数据表,以及对应的操作类型。
例如,在一个实施例中,提交SQL的数据库为DB1,跨库访问的DB2为同一个数据库地址的另一个数据库实例,SQL脚本中可以包括如下数个SQL语句:
select id from property;
select id,name from people;
select*from DB2.people;
insert into people select*from DB2.people;
以上SQL语句分别代表:
查询数据库DB1中的数据表property中的id字段;
查询数据库DB1中的数据表people中的id字段和name字段;
查询数据表DB2中的数据表people中的所有字段;
查询数据表DB2中的数据表people中的所有字段,并将这些字段更新到数据库DB1中的数据表people中。
基于上述SQL语句,可以提取出如下表1中信息:
表1
当SQL语句的目标数据表包含外部表时,可以将提取出的信息中外部表的库、表信息替换为对应的来源业务库和来源业务表的信息。
例如,数据库DB1中的数据表people和数据库DB2中的数据表people为外部表;
其中,数据库DB1中的数据表people对应的来源业务库为数据库OUT1,来源业务表为数据表people1;数据库DB2中的数据表people对应的来源业务库为数据库OUT2,来源业务表为数据表people2。
那么,对上述表1进行信息替换后,可以得到如下表2中的信息:
表2
将提取出的信息中外部表的库、表信息替换为对应的来源业务库和来源业务表的信息后,可以根据替换后的信息,根据每个SQL语句中涉及的每个目标数据表,针对用户进行权限计算,得到用户的鉴权结果。
上述过程中已将外部表信息替换为来源业务库表信息,因此基于来源业务库表的权限配置进行用户权限校验即可,而不需要再对外部表进行权限配置。
例如,用户有数据表DB1.property和数据表OUT1.people1的查询、更新权限,而不具有数据表OUT2.people2的查询权限,则上述SQL语句1、2鉴权可以通过,而SQL语句3、4无法通过。
后续可以将SQL语句1、2传入数据库进行执行,并向用户返回SQL语句3、4因用户不具备数据表OUT2.people2的查询权限而无法执行的信息。
当用户鉴权通过,SQL语句传入数据库中进行执行,得到执行结果后,可以根据安全策略,返回的数据进行数据脱敏,并将脱敏后的数据返回给用户。
对于外部表中的数据,其安全策略也可以包括数据敏感性策略。类似的,外部表的数据敏感性策略也可以根据其对应的来源业务表的安全策略中的数据敏感等级,进行判定。数据表中的不同字段可以具备不同的数据敏感性,对应不同的数据敏感等级。
可以将基于数据敏感等级,定义用户的权限等级。例如,用户的权限等级可以定义如下:对于数据敏感等级不高于用户的权限等级的数据,用户可以直接查看;对于数据敏感等级高于用户的权限等级的数据,用户无法直接查看,只能查看进行数据脱敏后的数据。
对于SQL语句执行后返回的数据的敏感等级,也可以采用对SQL语句进行分析的方式进行判断。
具体的,可以采用如下方法:
基于SQL解析器解析用户执行的SQL脚本,对SQL脚本进行词法分析和语义分析,从各个SQL语句中提取出SQL语句的目标字段,以及目标字段所在的目标数据库、目标数据表信息;
其中,对于SQL语句中使用通配符表示目标字段的SQL语句,可以通过查询目标数据表的元数据信息,获取其目标字段。
例如,对于用通配符*表示目标字段的以下SQL语句:
select*from DB.table;
该SQL语句表示从数据库DB中的数据表table中查询所有字段。
可以通过查询该数据表table的元数据信息,获取其所有字段的字段名,并将其所有字段作为所述SQL语句的目标字段。
基于目标字段所在的目标数据库和目标数据表的信息,可以得到目标字段的血缘信息。
例如,在一个实施例中,提交SQL脚本的数据库为DB3,跨库访问的DB4为同一个数据库地址的另一个数据库实例,SQL脚本中可以包括如下数个SQL语句:
用户执行的SQL脚本包括以下SQL语句:
select id from goods;
select id,name from staff;
select*from DB4.staff;
以上SQL语句分别代表:
查询数据库DB3中的数据表goods中的id字段;
查询数据库DB3中的数据表staff中的id字段和name字段;
查询数据表DB4中的数据表staff中的所有字段;
基于上述SQL语句,可以提取出如下表3中信息:
表3
其中,根据查询数据表DB4.staff的元数据信息,获取到了其所有字段的字段名id,name,sex。
当SQL语句的目标数据表包含外部表时,可以将提取出的信息中外部表的库、表信息替换为对应的来源业务库和来源业务表的信息。
提取出的库名及表名,查询元数据服务可知该表是否为外部表以及外部表与业务库来源表的对应关系,如果表为外部表则将库、表信息替换为业务库来源表信息。
例如,数据表DB3.staff对应的来源业务表为数据表OUT3.staff1;数据表DB4.staff对应的来源业务表为数据表OUT4.staff 2。
那么,对上述表3进行信息替换后,可以得到如下表4中的信息:
表4
基于以上方法提取出的血缘信息,可以分别查询各个SQL语句涉及的数据库、数据表、字段的数据敏感等级;然后,查询用户的权限级别,对于数据敏感等级不高于用户的权限等级的数据,用户可以直接查看,无需进行数据脱敏;对于数据敏感等级高于用户的权限等级的数据,用户无法直接查看,只能查看进行数据脱敏后的数据。
例如,SQL语句3中的部分目标字段的数据敏感等级如下表5所示,且用户的安全等级为8。
库名 表名 字段 数据敏感等级
OUT4 staff2 id 5
OUT4 staff2 name 10
OUT4 staff2 sex 10
表5
上述过程中已将外部表信息替换为来源业务库表信息,因此基于来源业务库表的权限配置进行用户权限校验即可,而不需要再对外部表进行权限配置。
那么对于SQL语句3:select*from OUT4.staff;的查询结果,id字段不需要脱敏,name字段和sex字段则需要按配置的脱敏规则进行数据脱敏后,才能返回用户。
以上实施例,通过将外部表与来源业务表的关系进行保存,在用户访问外部表时,基于来源业务表的安全策略,对用户的访问权限和数据敏感度权限进行安全控制,从而降低了维护成本和安全风险。
请参见图2,图2是一示意性的实施例示出的一种外部表安全访问控制方法的示意图。
以下结合图3,详细描述该外部表安全访问控制方法的具体步骤。
1.用户向元数据发起创建外部表的请求,输入数据库、外部表名称、外部表来源业务库、来源业务表;
2.元数据服务根据用户输入信息生成外部表定义语句,提交到指定的数据库执行,完成数据库层面的外部表创建;
3.元数据服务存储外部表与来源业务库表的映射关系;
4.元数据服务向用户反馈外部表创建成功信息;
5.用户在数据开发平台,输入涉及外部表使用的SQL脚本,请求执行SQL语句;
6.数据开发平台首先会调用数据安全服务对用户鉴权;
7.根据输入的数据库信息及SQL脚本,使用SQL解析器对SQL脚本进行词法分析和语义分析,可以从SQL语句中提取出库、表、字段以及操作类型;
8.查询元数据服务确认表是否为外部表以及外部表的业务库来源表映射关系;
9.如果表为外部表则将库、表信息替换为业务库来源表信息;进行权限计算,得到用户鉴权结果;
10.数据安全服务将用户鉴权结果返回数据开发平台;如果用户无访问资源的权限则流程中断,提示用户无相应的资源权限;如果鉴权通过,则继续执行;
11.将SQL脚本提交到数据库执行,等待数据库执行完成后获取查询结果;
12.数据库将查询结果返回到数据开发平台;
13.数据开发平台调用数据安全服务对查询结果进行数据脱敏;
14.根据输入的数据库信息及SQL脚本,使用SQL解析器对SQL脚本进行词法分析和语义分析,可以从SQL语句中提取出库、表、字段以及血缘信息;
15.查询元数据服务确认表是否为外部表以及外部表的业务库来源表映射关系;
16.如果表为外部表则将库、表信息替换为业务库来源表信息;根据提取出的血缘信息,查询库、表、字段的分类分级规则计算安全生效等级;然后,查询用户的安全级别,如果用户的安全级别低于数据的生效等级,则对数据的结果集对应字段进行数据脱敏;
17.数据安全服务将脱敏后的数据返回数据开发平台;
18.数据开发平台将脱敏后的数据向用户返回。
以上实施例,通过将外部表与来源业务表的关系进行保存,在用户访问外部表时,基于来源业务表的安全策略,对用户的访问权限和敏感数据查看进行安全控制,外部表不需要再人工配置安全策略,降低维护成本,来源表安全策略修改后,外部表使用即时生效,不会存在安全策略不一致问题,降低安全风险。
请参见图3,图3是一示意性的实施例示出的一种外部表安全访问控制装置所在电子设备的硬件结构图。在硬件层面,该设备包括处理器302、内部总线304、网络接口306、内存308以及非易失性存储器310,当然还可能包括其他业务所需要的硬件。本说明书一个或多个实施例可以基于软件方式来实现,比如由处理器302从非易失性存储器310中读取对应的计算机程序到内存308中然后运行。当然,除了软件实现方式之外,本说明书一个或多个实施例并不排除其他实现方式,比如逻辑器件抑或软硬件结合的方式等等,也就是说以下处理流程的执行主体并不限定于各个逻辑单元,也可以是硬件或逻辑器件。
请参见图4,图4是一示意性的实施例示出的一种外部表安全访问控制装置的框图。
上述外部表安全访问控制装置可以包括:
获取单元410,用于响应于创建外部表,获取与所述外部表对应的来源业务库和来源业务库表,并保存所述外部表和来源业务库表的映射关系;
鉴权单元420,用于响应于用户发送的执行涉及所述外部表的SQL脚本的请求,基于所述外部表对应的来源业务库表的安全策略,对所述用户进行鉴权;
执行单元430,用于如果鉴权通过,则将所述SQL脚本提交到数据库执行,等待数据库执行完成后,向用户返回查询结果。
在一个实施例中,所述鉴权单元420,具体用于:
响应于用户发送的执行SQL脚本的请求,基于SQL解析器解析所述SQL脚本,判断所述SQL脚本是否为涉及外部表的SQL脚本;
如果所述SQL脚本为涉及外部表的脚本,获取与所述外部表对应的来源业务库表,并基于所述来源业务库表的安全策略,对所述用户进行鉴权。
在一个实施例中,所述鉴权单元420,具体用于:
基于SQL解析器解析用户执行的SQL脚本,获取所述SQL脚本涉及的目标字段的信息,所述目标字段的信息包括所述目标字段所在的目标数据库名、目标数据表名,目标字段列表和针对所述目标字段的目标操作;
将所述目标字段中属于外部表的目标字段的信息中的目标数据库名、目标数据表名替换为与所述外来表对应的来源业务库表的目标数据库名、目标数据表名;
查询所述用户的用户权限,基于各个目标数据表的权限配置,判断用户是否具备针对所述目标字段进行目标操作的权限。
在一个实施例中,所述执行单元430,具体用于:
对查询结果基于所述来源业务库表的安全策略进行数据脱敏,并向用户返回脱敏后的数据。
在一个实施例中,所述执行单元430,具体用于:
基于所述SQL解析器解析用户执行的SQL脚本,获取所述SQL脚本涉及的目标字段,以及所述目标字段的血缘信息;
基于所述外部表和来源业务库表的映射关系,将属于外部表的目标字段替换为对应的目标业务来源表中的目标字段,并更新目标字段的血缘信息;
基于目标字段列表的血缘信息,查询针对各个目标字段的数据敏感等级,并将数据敏感等级高于所述用户的权限等级的目标字段的数据进行数据脱敏。
在一个实施例中,所述执行单元430,具体用于:
基于所述SQL解析器解析用户执行的SQL脚本,获取所述SQL脚本涉及的目标字段;其中,对于SQL脚本中使用通配符表示目标字段的语句,通过查询元数据服务,得到目标字段;
根据所述目标字段所在的数据库和数据表,确定所述目标字段的血缘信息。
在一个实施例中,所述装置还包括:
通知单元440,用于:
如果鉴权不通过,向用户发送无相应资源权限的通知。
上述装置中各个单元的功能和作用的实现过程具体详见上述方法中对应步骤的实现过程,在此不再赘述。
对于装置实施例而言,由于其基本对应于方法实施例,所以相关之处参见方法实施例的部分说明即可。以上所描述的装置实施例只是示意性的,其中所述作为分离部件说明的单元可以是或者也可以不是物理上分开的,作为单元显示的部件可以是或者也可以不是物理单元,即可以位于一个地方,或者也可以分布到多个网络单元上。可以根据实际的需要选择其中的部分或者全部模块来实现本说明书方案的目标。本领域普通技术人员在不付出创造性劳动的情况下,即可以理解并实施。
上述实施例阐明的系统、装置、模块或单元,具体可以由计算机芯片或实体实现,或者由具有某种功能的产品来实现。一种典型的实现设备为计算机,计算机的具体形式可以是个人计算机、膝上型计算机、蜂窝电话、相机电话、智能电话、个人数字助理、媒体播放器、导航设备、电子邮件收发设备、游戏控制台、平板计算机、可穿戴设备或者这些设备中的任意几种设备的组合。
在一个典型的配置中,计算机包括一个或多个处理器(CPU)、输入/输出接口、网络接口和内存。
内存可能包括计算机可读介质中的非永久性存储器,随机存取存储器(RAM)和/或非易失性内存等形式,如只读存储器(ROM)或闪存(flash RAM)。内存是计算机可读介质的示例。
计算机可读介质包括永久性和非永久性、可移动和非可移动媒体可以由任何方法或技术来实现信息存储。信息可以是计算机可读指令、数据结构、程序的模块或其他数据。计算机的存储介质的例子包括,但不限于相变内存(PRAM)、静态随机存取存储器(SRAM)、动态随机存取存储器(DRAM)、其他类型的随机存取存储器(RAM)、只读存储器(ROM)、电可擦除可编程只读存储器(EEPROM)、快闪记忆体或其他内存技术、只读光盘只读存储器(CD-ROM)、数字多功能光盘(DVD)或其他光学存储、磁盒式磁带、磁盘存储、量子存储器、基于石墨烯的存储介质或其他磁性存储设备或任何其他非传输介质,可用于存储可以被计算设备访问的信息。按照本文中的界定,计算机可读介质不包括暂存电脑可读媒体(transitory media),如调制的数据信号和载波。
还需要说明的是,术语“包括”、“包含”或者其任何其他变体意在涵盖非排他性的包含,从而使得包括一系列要素的过程、方法、家具或者设备不仅包括那些要素,而且还包括没有明确列出的其他要素,或者是还包括为这种过程、方法、家具或者设备所固有的要素。在没有更多限制的情况下,由语句“包括一个……”限定的要素,并不排除在包括所述要素的过程、方法、家具或者设备中还存在另外的相同要素。
上述对本说明书特定实施例进行了描述。其它实施例在所附权利要求书的范围内。在一些情况下,在权利要求书中记载的动作或步骤可以按照不同于实施例中的顺序来执行并且仍然可以实现期望的结果。另外,在附图中描绘的过程不一定要求示出的特定顺序或者连续顺序才能实现期望的结果。在某些实施方式中,多任务处理和并行处理也是可以的或者可能是有利的。
在本说明书一个或多个实施例中使用的术语是仅仅出于描述特定实施例的目标,而非旨在限制本说明书一个或多个实施例。在本说明书一个或多个实施例和所附权利要求书中所使用的单数形式的“一种”、“所述”和“该”也旨在包括多数形式,除非上下文清楚地表示其他含义。还应当理解,本文中使用的术语“和/或”是指并包含一个或多个相关联的列出项目标任何或所有可能组合。
应当理解,尽管在本说明书一个或多个实施例可能采用术语第一、第二、第三等来描述各种信息,但这些信息不应限于这些术语。这些术语仅用来将同一类型的信息彼此区分开。例如,在不脱离本说明书一个或多个实施例范围的情况下,第一信息也可以被称为第二信息,类似地,第二信息也可以被称为第一信息。取决于语境,如在此所使用的词语“如果”可以被解释成为“在……时”或“当……时”或“响应于确定”。
以上所述仅为本说明书一个或多个实施例的较佳实施例而已,并不用以限制本说明书一个或多个实施例,凡在本说明书一个或多个实施例的精神和原则之内,所做的任何修改、等同替换、改进等,均应包含在本说明书一个或多个实施例保护的范围之内。

Claims (10)

1.一种外部表安全访问控制方法,其特征在于,所述方法包括:
响应于创建外部表,获取与所述外部表对应的来源业务库和来源业务库表,并保存所述外部表和来源业务库表的映射关系;
响应于用户发送的执行涉及所述外部表的SQL脚本的请求,基于所述外部表对应的来源业务库表的安全策略,对所述用户进行鉴权;
如果鉴权通过,则将所述SQL脚本提交到数据库执行,等待数据库执行完成后,向用户返回查询结果。
2.根据权利要求1所述的方法,其特征在于,
所述响应于用户发送的执行涉及所述外部表的SQL脚本的请求,基于所述外部表对应的来源业务库表的安全策略,对所述用户进行鉴权,包括:
响应于用户发送的执行SQL脚本的请求,基于SQL解析器解析所述SQL脚本,判断所述SQL脚本是否为涉及外部表的SQL脚本;
如果所述SQL脚本为涉及外部表的脚本,获取与所述外部表对应的来源业务库表,并基于所述来源业务库表的安全策略,对所述用户进行鉴权。
3.根据权利要求1所述的方法,其特征在于,
所述基于所述外部表对应的来源业务表的安全策略,对所述用户进行鉴权,包括:
基于SQL解析器解析用户执行的SQL脚本,获取所述SQL脚本涉及的目标字段的信息,所述目标字段的信息包括所述目标字段所在的目标数据库名、目标数据表名,目标字段列表和针对所述目标字段的目标操作;
将所述目标字段中属于外部表的目标字段的信息中的目标数据库名、目标数据表名替换为与所述外来表对应的来源业务库表的目标数据库名、目标数据表名;
查询所述用户的用户权限,基于各个目标数据表的权限配置,判断用户是否具备针对所述目标字段进行目标操作的权限。
4.根据权利要求1所述的方法,其特征在于,
所述向用户返回查询结果,包括:
对查询结果基于所述来源业务库表的安全策略进行数据脱敏,并向用户返回脱敏后的数据。
5.根据权利要求4所述的方法,其特征在于,
所述对查询结果基于所述来源业务库表的安全策略进行数据脱敏,包括:
基于所述SQL解析器解析用户执行的SQL脚本,获取所述SQL脚本涉及的目标字段,以及所述目标字段的血缘信息;
基于所述外部表和来源业务库表的映射关系,将属于外部表的目标字段替换为对应的目标业务来源表中的目标字段,并更新目标字段的血缘信息;
基于目标字段列表的血缘信息,查询针对各个目标字段的数据敏感等级,并将数据敏感等级高于所述用户的权限等级的目标字段的数据进行数据脱敏。
6.根据权利要求5所述的方法,其特征在于,
所述基于所述SQL解析器解析用户执行的SQL脚本,获取所述SQL脚本涉及的目标字段,以及所述目标字段的血缘信息,包括:
基于所述SQL解析器解析用户执行的SQL脚本,获取所述SQL脚本涉及的目标字段;其中,对于SQL脚本中使用通配符表示目标字段的语句,通过查询元数据服务,得到目标字段;
根据所述目标字段所在的数据库和数据表,确定所述目标字段的血缘信息。
7.根据权利要求1所述的方法,其特征在于,所述方法还包括:
如果鉴权不通过,向用户发送无相应资源权限的通知。
8.一种外部表安全访问控制装置,其特征在于,所述装置包括:
获取单元,用于响应于创建外部表,获取与所述外部表对应的来源业务库和来源业务库表,并保存所述外部表和来源业务库表的映射关系;
鉴权单元,用于响应于用户发送的执行涉及所述外部表的SQL脚本的请求,基于所述外部表对应的来源业务库表的安全策略,对所述用户进行鉴权;
执行单元,用于如果鉴权通过,则将所述SQL脚本提交到数据库执行,等待数据库执行完成后,向用户返回查询结果。
9.一种存储介质,其特征在于,其上存储有计算机程序,该计算机程序执行时实现如权利要求1-7中任一项所述方法的步骤。
10.一种计算机设备,其特征在于,包括存储器、处理器及存储在存储器上并可在处理器上运行的计算机程序,其中,所述处理器执行所述程序时实现如权利要求1-7中任一项所述的方法。
CN202311866701.9A 2023-12-29 2023-12-29 一种外部表安全访问控制方法、装置、设备及介质 Pending CN117828567A (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN202311866701.9A CN117828567A (zh) 2023-12-29 2023-12-29 一种外部表安全访问控制方法、装置、设备及介质

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN202311866701.9A CN117828567A (zh) 2023-12-29 2023-12-29 一种外部表安全访问控制方法、装置、设备及介质

Publications (1)

Publication Number Publication Date
CN117828567A true CN117828567A (zh) 2024-04-05

Family

ID=90518653

Family Applications (1)

Application Number Title Priority Date Filing Date
CN202311866701.9A Pending CN117828567A (zh) 2023-12-29 2023-12-29 一种外部表安全访问控制方法、装置、设备及介质

Country Status (1)

Country Link
CN (1) CN117828567A (zh)

Similar Documents

Publication Publication Date Title
KR101120814B1 (ko) 로우 레벨 데이터베이스 보안을 최적화하는 시스템 및 방법
US10614248B2 (en) Privacy preserving cross-organizational data sharing with anonymization filters
CN107403106B (zh) 基于终端用户的数据库细粒度访问控制方法
US10210266B2 (en) Database query processing on encrypted data
US8983985B2 (en) Masking sensitive data of table columns retrieved from a database
US10438008B2 (en) Row level security
CN108874863B (zh) 一种数据访问的控制方法及数据库访问装置
US9224007B2 (en) Search engine with privacy protection
JP4890811B2 (ja) データストアに対して動的に生成されるオペレーションを検証すること
US20230004672A1 (en) Secure data point matching in a multiple tenant database system
US20220100899A1 (en) Protecting sensitive data in documents
US20190205869A1 (en) Anonymization of data fields in transactions
US11281794B2 (en) Fine grained access control on procedural language for databases based on accessed resources
US11416631B2 (en) Dynamic monitoring of movement of data
US11934551B2 (en) Processing per-use requests for user data
US10764253B2 (en) System for using metadata to identify and extract specific upstream data, provisioning data batches, and providing dynamic downstream data access
CN117828567A (zh) 一种外部表安全访问控制方法、装置、设备及介质
Deshpande et al. The Mask of ZoRRo: preventing information leakage from documents
CN114238273A (zh) 数据库管理方法、装置、设备及存储介质
Pereira et al. Distributed and typed role-based access control mechanisms driven by CRUD expressions
CN112818383A (zh) 一种表注册方法及装置
US20220353298A1 (en) Embedded and distributable policy enforcement
CN112182023B (zh) 大数据访问控制方法、装置、电子设备及存储介质
US20230315750A1 (en) Restriction-compliant data replication
Dia et al. Risk aware query replacement approach for secure databases performance management

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