一种同一租户下notebook表权限控制的方法与流程
未命名
09-29
阅读:70
评论:0
1.本发明涉及数据安全与隐私保护
技术领域:
:,具体涉及一种同一租户下notebook表权限控制的方法。
背景技术:
::2.随着人工智能和大数据的快速发展,企业用户广泛应用这些技术进行精准营销,特别是在智能营销决策和经营管理等领域的应用,开启了精细化数字运营的进程。在这个过程中,jupyternotebook作为一种强大的数据挖掘工具,能够帮助数据挖掘人员方便地进行专业建模和数据处理。3.然而,对于大数据权限的管理,现有的方法存在显著的问题。传统的大数据权限控制最小单位是“租户”级别,这使得必须为每个用户分配一个租户以进行权限管理。这一做法不仅增加了大数据平台的运营成本,而且无法快速响应业务的变化,满足现如今企业复杂多变的业务需求。4.特别是在使用jupyternotebook这样的交互式编程环境时,由于大数据租户的kerberos鉴权体系机制,同一租户下无法对不同的notebook开发环境用户进行表级别的权限控制。这使得无法在应用侧进行用户级别的表权限进行精确控制,无法满足应用侧的使用要求,极大地限制了数据挖掘专业建模的使用。5.因此,现有的大数据权限管理方法并不能很好地满足notebook环境下的用户需求,既不能有效地解决数据安全问题,又不能满足用户灵活多变的权限管理需求,使得大数据平台的运营效率低下。需要一种新的权限管理方法来解决这些问题,特别是在notebook开发过程中同一租户下的用户级别表权限控制的问题。技术实现要素:6.为克服现有技术的不足,本发明提出一种同一租户下notebook表权限控制的方法,可以在应用侧进行用户级别的表权限进行精确控制,提升数据的安全性。7.为实现上述目的,本发明提供一种同一租户下notebook表权限控制的方法,包括:步骤s1:修改spark原生api的sql部分,劫持每一个需要执行sql操作的动作;步骤s2:在劫持到请求的sql后,解析sql,将其中需要访问的tables以及对这些table执行的actions解析出来;步骤s3:在解析出操作的物理表和动作后,将这些信息与用户的身份信息结合起来进行权限校验;步骤s4:权限校验通过后,继续执行原有的pyspark逻辑,调用sparkcore执行,返回执行后的数据对象。8.进一步地,步骤s1具体如下:步骤s11:修改spark原生api的sql部分,劫持每一个需要执行sql操作的动作。具体来说,就是将sql(self,sqlquery)方法进行改写,增加逻辑判断;步骤s12:权限校验,只有当通过权限校验后才会执行后续动作。这个步骤确保在notebook里面执行的每一个sql操作都是在合法的权限下进行的;步骤s13:修改pyspark源码:在pyspark内的api方法增加解析/权限校验,当权限校验通过后,再调用其原有逻辑继续执行。9.进一步地,步骤s2具体步骤包括:步骤s21:劫持到sql请求后,对sql进行解析,这一步骤主要是为了找出sql中需要访问的数据库物理表(tables)以及对这些table执行的动作操作(actions,例如select,update等);步骤s22:修改spark源码,增加一个名为extract_table_codes(sql)的方法,解析劫持到的sql中的表信息,将解析出的表信息在extract_table_results里面存起来,解析完后,通过一个数组table_codes统一返回。这些解析出的表信息将被用于下一步的权限校验;步骤s23:修改spark源码,增加一个名为extract_action(sql)的方法,去解析劫持到的sql中的执行动作。将解析出来的对表的执行动作(如增加、删除、修改、查询)在一个数组actions里面存起来,解析完后,将数组actions统一返回,以便用于下一步的权限校验。10.进一步地,步骤s3包括:步骤s31:区分表的类型,表分为两种类型,一种是物理表(extract_tables),即在数据库中真实存在的表;另一种是在数据处理过程中产生的临时内存表(temporary_tables)。本方法的权限校验只针对物理表,对于临时内存表则不进行权限校验;步骤s32:通过修改spark源码,增加一个名为wrapper_authority(saprk,sqlquery:str)的方法,这个方法主要用于对解析出来的物理表(extract_tables)和表的操作动作(actions)进行权限校验,并结合用户的身份信息;步骤s33:有效动作的校验,对于不涉及数据权限的特殊操作(如showtables、usedatabase等,称为special_action_keywords),在逻辑层直接跳过不进行校验。具体逻辑如:“ifactioninspecial_action_keywords;returntrue;”;步骤s34:物理表的校验:将sql中所有表解析出来,然后将其分类为物理表和临时表。这是通过is_temporary(saprk,table)方法来实现的。物理表被筛选出来并存入filtertables数组,用于权限校验,而临时表则被跳过;步骤s35:校验物理表集合。11.0011.进一步地,步骤s35具体为调用authority_tables(action,database,tables)方法对物理表、表的操作动作和数据库进行统一的权限校验,包括:将解析sql得到的每个动作,通过用户/database/table参数访问数据源管理系统获得用户对该表的权限,然后将sql解析的权限和管理端该用户具备的权限进行校验比对,如果权限校验通过,就执行,否则就拒绝执行,并返回无权限。12.进一步地,步骤s4包括:步骤s41:权限校验成功后,执行的sql将会继续在pyspark的原有逻辑中运行,该sql被确认为符合权限规定,进行后续的数据操作;步骤s42:调用sparkcore执行sql;ꢀ步骤s43:执行完sql后,sparkcore返回数据对象,数据对象包含了sql查询的结果。13.进一步地,还包括自动化权限设置和管理,具体步骤如下:步骤s71:设计权限管理表;步骤s72:设定权限规则;步骤s73:实施自动化设置;步骤s74:提供权限管理接口。14.进一步地,还包括动态权限调整,具体如下:步骤s81:扩展权限管理表;步骤s82:实时监控用户行为;步骤s83:更新权限评分;步骤s83:动态调整权限。15.进一步地,还包括审计和报告,具体包括审计日志记录和审计报告生成。16.进一步地,还包括ai和机器学习,具体为:步骤s91:收集用户行为数据;步骤s92:将收集的用户行为数据进行预处理,将它们转换成机器学习模型训练的格式;步骤s93:使用预处理的数据训练一个机器学习模型;步骤s94:在用户进行操作时,使用训练好的模型对用户的行为进行预测,根据预测的结果,系统决定是否提前进行权限校验或者直接拒绝用户的请求;步骤s95:定期使用新收集的数据来更新模型。17.与现有技术相比,本发明的有益效果是:1.本发明提供了一种同一租户下notebook表权限控制的方法,基于大数据同一租户下notebook的用户级别表权限控制,可以在应用侧进行用户级别的表权限进行精确控制,提升数据的安全性。18.2.本发明提供了一种同一租户下notebook表权限控制的方法,减少了对大数据租户的管理需求,简化了权限管理过程,提高了大数据平台的运营效率。19.3.本发明提供了一种同一租户下notebook表权限控制的方法,能够更灵活地适应企业复杂多变的业务需求,能够快速响应业务变化。20.4.本发明提供了一种同一租户下notebook表权限控制的方法,能够更好地支持数据挖掘专业建模的使用,有利于数据分析和数据探索,而且通过减少大数据平台的运营成本,帮助企业降本增效,提升企业竞争力。21.5.本发明提供了一种同一租户下notebook表权限控制的方法,更好地实现数据权限的细粒度管理,提升数据的利用效率,更好地支持智能营销决策和经营管理等业务,且通过用户级别的表权限控制,可以更好地防止数据的非授权访问,提高数据的安全性。附图说明22.为了更清楚地说明本发明具体实施方式或现有技术中的技术方案,下面将对具体实施方式或现有技术描述中所需要使用的附图作简单的介绍,显而易见地,下面描述中的附图是本发明的一些实施方式,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。23.图1是本发明流程图;图2是本发明劫持代码示意图;图3为本发明解析代码示意图;图4为本发明校验代码示意图;图5为sparkapi拦截校验流程图;图6为基于大数据同一租户下notebook表权限控制关系图。实施方式24.下面将结合附图、通过对本发明的优选实施方式的描述,更加清楚、完整地阐述本发明的技术方案。25.以下是一些专业术语的解释:1.spark:apachespark是一个用于大规模数据处理的开源并行计算系统。26.2.api:应用程序接口(applicationprogramminginterface),是一些预先定义的函数,或指软件系统不同组成部分衔接的约定。27.3.sql:结构化查询语言(structuredquerylanguage),是一种用于管理关系数据库的标准的计算机语言。28.4.notebook:在这里,笔记本是指jupyternotebook或类似的交互式计算环境,它允许用户编写和运行代码,以及添加富文本元素(如方程、图形和文本)。29.5.pyspark:pyspark是用于交互式查询大规模数据的python库,它是apachespark的pythonapi。30.6.sparkcore:sparkcore是apachespark的基础,提供基础的i/o功能,任务调度和内存管理。31.7.tables:在数据库中,表(tables)是数据的矩阵。在表中,每一列包含相同类型的数据(例如邮件地址、电话号码或员工姓名),每一行则包含一组相关的数据。32.8.actions:在这个上下文中,动作(actions)可能是指数据库表的操作,如select(选择)、insert(插入)、update(更新)或delete(删除)。33.9.database:数据库是一个组织数据的方式,使其可以轻易地被检索、管理和更新。34.10.authority_tables:这个词组可能是一个自定义的函数,用于检查一个用户是否有权对特定的数据库表执行某种操作。35.11.ai:ai是人工智能(artificialintelligence)的缩写,是指由人制造出来的系统所表现出来的智能。36.12.machinelearning:机器学习是人工智能的一个分支,是使计算机具有学习能力而不需要进行明确编程的科学。37.本方法支持notebook应用作为一个租户接入大数据平台,多个用户(notebook应用里代码开发者)公用一个租户;具体的用户和数据表的操作权限管理,从大数据平台统一管理,下放到了notebook应用系统自己管理;包括表权限的申请、审批、授权,具体的操作权限包括表的删除、修改、查询权限,如图6所示。38.如图1所示,本发明具体为:步骤s1:修改spark原生api的sql部分,劫持每一个需要执行sql操作的动作;步骤s2:在劫持到请求的sql后,解析sql,将其中需要访问的tables以及对这些table执行的actions解析出来;步骤s3:在解析出操作的物理表和动作后,将这些信息与用户的身份信息结合起来进行权限校验;步骤s4:权限校验通过后,继续执行原有的pyspark逻辑,调用sparkcore执行,返回执行后的数据对象。39.作为一种具体的实施方式,步骤s1具体为修改spark原生api的sql部分,将执行sql的原生api进行修改,劫持每一个需要执行sql操作的动作;增加逻辑判断,将所有需要执行的sql语句劫持,让其进入下一步sql语句解析阶段;如图2所示,将sql(self,sqlquery)方法进行改写,增加if判断ꢀ“ifnotwrapper_authority(saprk=self,sqlquery=sqlquery);”使得调用该方法的每一个sql执行动作,都需要经过权限校验方法wrapper_authority(saprk=self,sqlquery=sqlquery);只有通过权限校验后才会执行后续动作,确保在notebook里面执行的每一个sql操作都是在合法的权限下进行的;核心方法就是,修改pyspark源码,劫持每一个sql动作,确保sql执行合法,在pyspark内的session等api方法增加解析/权限校验,通过校验后再调用其原有逻辑继续执行,关键代码如图2所示;作为一种具体的实施方式,步骤s2具体为:劫持到请求的sql后对sql解析,分解出sql中需要访问的tables(数据库物理表)以及对这些table执行的actions(动作操作,例如select,update等);①表(table_codes)的解析:通过修改saprk源码,增加extract_table_codes(sql)方法,解析拦截到的sql里面的表,并将表在extract_table_results里面存起来,解析完后统一通过数组table_codes返回,给到下一步去进行权限校验;具体代码如图3所示的extract_table_codes(sql)方法;动作(actions)的解析:通过修改saprk源码,增加extract_action(sql)方法,通过extract_action(sql)方法,去解析拦截到的sql里面的执行动作,并将解析出来的对表的执行动作action(增加、删除、修改、查询)在数组actions里面存起来,解析完后统一将数组actions返回(returnactions),给到下一步去进行权限校验;具体代码如图3所示的extract_action(sql)方法;作为一种具体的实施方式,步骤s3具体为:对于表分为两种,一种是物理表(extract_tables),即在数据库真实存在的物理表,另一种是在做数据处理的过程中产生的临时内存表(temporary_tables),本方法校验只针对物理表进行校验,对于临时内存不做权限校验;修改saprk源码,增加wrapper_authority(saprk,sqlquery:str)方法对上述解析出来的物理表(extract_tables)和表的操作动作(actions)再结合该用户的身份信息进行权限校验;①校验有效动作:对于特殊不涉及权限的动作,比如showtables、usedatebase等不涉及数据权限的特殊操作(special_action_keywords),将不进行校验,在逻辑层会直接跳过,如下文中的代码逻辑:ifactioninspecial_action_keywords;ꢀꢀꢀꢀꢀreturntrue;②校验有效物理表(filtertabls):将sql中所有表解析出来,然后再将表进行分类,按照物理表和临时表进行分类,使用is_temporary(saprk,table)方法对解析到的表进行判断,区分出物理表和临时表。将所有解析到的表按照如下代码进行区分,筛选出真正去进行权限校验的物理表(filtertabls),跳过临时内存表;具体筛选代码如下:ꢀꢀꢀꢀꢀꢀꢀꢀꢀfortableintables;‑‑‑轮旋所有解析的表ꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀifnoteis_temporary(saprk,table);‑‑‑‑‑判断是否是物理表ꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀfiltertabls.append(table);ꢀ‑‑‑‑‑将物理表统一存储到filtertabls涉及到的物理表集合filtertabls进行权限校验:新增校验方法authority_tables(action,databese,tebles)对解析到的物理表、表的操作动作、数据库进行统一的权限校验,该方法会将解析sql得到的每个动作,并通过用户/database/table参数访问数据源管理系统获得用户对该表的权限,然后将sql解析的权限和管理端该用户具备的权限进行校验比对,若权限校验通过,则执行,失败则拒绝执行,返回无权限,代码如图4所示;作为一种具体的实施方式,步骤s4具体为:1.校验通过后,进行下一步:如果权限校验成功,那么执行的sql将会继续在pyspark的原有逻辑中运行。这意味着,经过前面的过滤和校验,该sql被确认为符合权限规定,可以进行后续的数据操作。40.2.调用sparkcore执行sql:校验通过的sql将被传递到sparkcore中进行执行。sparkcore是spark的计算引擎,它负责在分布式环境下进行数据的处理和计算。41.3.返回执行结果:执行完sql后,sparkcore会返回一个数据对象,这个对象包含了sql查询的结果。在pyspark中,这个结果被封装成一个dataframe对象,并返回给用户。具体的代码形式为:`returndataframe(sql.self._jsparkseesion.sql(sqlquery),self._wrapped)。`在这里,`sql.self._jsparkseesion.sql(sqlquery)`是执行sql查询并获取结果,`self._wrapped`则是对结果进行封装处理。42.作为一种具体的实施方式,权限申请管理具体为:申请管理在notebook应用系统进行操作,替代大数据平台的数据表权限管理,对于库表权限的申请,授权、权限管理等操作,通过应用系统的授权管理模块进行管理;本技术表述的模型指代的是数据表模型;管理系统接收到表模型的授权需求后,可根据需求将未授权的模型进行授权,也可将已授权的表模型进行权限回收;选择需要做权限管理的表模型,可根据表模型名称和模型编码进行确认,然后将模型拉到右侧,放入已授权区域;在已授权表模型区域,点击授权操作,即可对权限进行设置,包括模型查看权限、模型编辑权限、模型删除权限;可同时操作一个或者多个权限,从而达到权限管理目的;权限设置完成后点击保存权限即可产生效果;在notebook应用端的系统管理将表模型完成授权管理操作后,通过修改sparkapi源码,拦截notebook中提交的sql,解析sql中的表模型和对应的操作,和该用户在notebook应用管理端的权限进行校验比对,从而达到权限管控目的;作为一种具体的实施方式,权限校验具体为:当用户在notebook中调用saprkapi执行sql操作的时候,经过本方法修改过的api中的sql会被拦截,从而将sql里面的表模型以及对应的表操作动作解析出来,同步根据session中的用户信息调用管理端权限查询接口,拿到管理端该用户具备的表模型权限,然后将解析出来的物理表模型(tables)和表的有效操作动作(actions)进行比对校验,校验通过后即可执行,校验不通过则拒绝执行,返回权限异常;如图5所示。43.作为一种具体的实施方式,还包括自动化权限设置和管理,具体为:1.设计权限管理表:在数据库中创建一个新的表,这个表将存储所有用户的权限信息。这个表可能包括以下字段:用户id,权限级别,表名等。44.2.设定权限规则:根据实际的业务需求,设定权限的规则,这个规则将决定不同级别的用户能够访问哪些表,以及对这些表有何种操作权限。45.3.实施自动化设置:每当新的用户被添加到系统中,或者有新的表被创建,根据前面设定的规则,系统会自动为这个新的用户或者新的表设置权限。具体的实施可能需要编写相应的脚本或者程序,当系统检测到有新的用户或者新的表被添加时,这个脚本或者程序会自动运行,根据设定的规则进行权限的设置。46.4.提供权限管理接口:除了系统自动设置权限,还提供一个接口,允许管理员手动更改用户的权限设置。这个接口应该包括对权限管理表的查询,修改等操作。这样管理员就可以根据实际的需要,对用户的权限进行微调。47.通过自动化设置和管理用户权限,既减轻了管理员的工作量,又保证了系统的安全性作为一种具体的实施方式,还包括动态权限调整,具体为1.扩展权限管理表:首先,在权限管理表中添加一个新的字段,叫做"权限评分"。这个评分应该有一个初始值,比如说0。48.2.实时监控用户行为:添加一个新的模块,这个模块负责实时监控用户的行为。它可以通过分析sql日志来识别用户的行为模式,比如用户频繁尝试访问他没有权限的表。49.3.更新权限评分:根据用户的行为模式和数据敏感性等因素,定期更新用户的权限评分。如果一个用户频繁尝试访问他没有权限的表,那么他的权限评分会被降低。设计一个算法来根据用户的行为和数据敏感性计算用户的权限评分。50.4.动态调整权限:在wrapper_authority方法中,不仅要检查用户是否有权限访问指定的表,还要检查用户的权限评分。如果一个用户的权限评分低于某个阈值,那么可以调整他的权限,比如禁止他访问某些表。51.可以根据用户的行为动态调整他们的权限,这将使本方法更加安全和灵活。能够更好地保障数据安全,并且适应各种用户行为。52.作为一种具体的实施方式,还包括审计和报告,具体为1.审计日志记录:每当用户尝试访问表时,都需要记录该活动的信息。首先,在数据库中创建一个新的"审计日志"表,该表包含用户id,表名,操作类型,时间等字段。然后,在现有的sql拦截和权限校验流程中,无论用户的访问请求是否成功,都需要将相关信息写入"审计日志"表。53.2.审计报告生成:设定一个定期任务来生成审计报告。这个任务会读取"审计日志"表中的数据,然后根据需要来分析这些数据。比如,可以分析某个用户在过去的一周内尝试访问哪些表,尝试执行哪些操作,或者哪些表被访问的频率最高等。这个报告可以按日或按周生成,以满足需求。54.这样,就可以保留所有用户的行为记录,并可以生成审计报告来帮助你分析用户的行为和系统的使用情况。55.作为一种具体的实施方式,还包括ai和机器学习,具体为这个建议可以总结为下面的步骤:1.数据收集:首先,收集大量的用户行为数据,包括用户的操作类型、操作时间、操作的表等。可以在现有的sql拦截和权限校验流程中增加逻辑来记录这些信息。56.2.数据预处理:将收集的用户行为数据进行预处理,将它们转换成适合机器学习模型训练的格式。57.3.模型训练:使用预处理的数据训练一个机器学习模型。这个模型的目标是预测用户可能进行的行为。58.4.模型预测:在用户进行操作时,使用训练好的模型对用户的行为进行预测。根据预测的结果,系统可以决定是否提前进行权限校验或者直接拒绝用户的请求。59.5.模型更新:定期使用新收集的数据来更新模型,以适应用户行为的变化。60.上述具体实施方式仅仅对本发明的优选实施方式进行描述,而并非对本发明的保护范围进行限定。在不脱离本发明设计构思和精神范畴的前提下,本领域的普通技术人员根据本发明所提供的文字描述、附图对本发明的技术方案所作出的各种变形、替代和改进,均应属于本发明的保护范畴。本发明的保护范围由权利要求确定。当前第1页12当前第1页12
技术特征:
1.一种同一租户下notebook表权限控制的方法,其特征在于,包括:步骤s1: 修改spark原生api的sql部分,劫持每一个需要执行sql操作的动作;步骤s2:在劫持到请求的sql后,解析sql,将其中需要访问的tables以及对这些table执行的actions解析出来;步骤s3:在解析出操作的物理表和动作后,将这些信息与用户的身份信息结合起来进行权限校验;步骤s4:权限校验通过后,继续执行原有的pyspark逻辑,调用spark core执行,返回执行后的数据对象。2.根据权利要求1所述的一种同一租户下notebook表权限控制的方法,其特征在于,步骤s1具体如下:步骤s11:劫持sql操作,就是将sql方法进行改写,增加逻辑判断;步骤s12:权限校验;步骤s13:修改pyspark源码:在pyspark内的api方法增加解析/权限校验,当权限校验通过后,再调用其原有逻辑继续执行。3.根据权利要求1所述的一种同一租户下notebook表权限控制的方法,其特征在于,步骤s2具体步骤包括:步骤s21:劫持到sql请求后,对sql进行解析;步骤s22:修改spark源码,增加一个名为extract_table_codes的方法,解析劫持到的sql中的表信息;步骤s23:修改spark源码,增加一个名为extract_action的方法,去解析劫持到的sql中的执行动作,将解析出来的对表的执行动作,在一个数组actions里面存起来。4.根据权利要求1所述的一种同一租户下notebook表权限控制的方法,其特征在于,步骤s3包括:步骤s31:区分表的类型;步骤s32:通过修改spark源码,增加一个名为wrapper_authority的方法;步骤s33:有效动作的校验;步骤s34:物理表的校验;步骤s35:校验物理表集合。5.根据权利要求4所述的一种同一租户下notebook表权限控制的方法,其特征在于,步骤s35具体为调用authority_tables(action, database, tables)方法对物理表的操作动作和数据库进行统一的权限校验,包括:将解析sql得到的每个动作,通过用户/database/table参数访问数据源管理系统获得用户对表的权限,然后将sql解析的权限和管理端用户具备的权限进行校验比对,如果权限校验通过,就执行,否则就拒绝执行,并返回无权限。6.根据权利要求1所述的一种同一租户下notebook表权限控制的方法,其特征在于,步骤s4包括:步骤s41:权限校验成功后,执行的sql将会继续在pyspark的原有逻辑中运行,该sql被确认为符合权限规定,进行后续的数据操作;步骤s42:调用spark core执行sql;
步骤s43:执行完sql后,spark core返回数据对象,数据对象包含了sql查询的结果。7.根据权利要求1所述的一种同一租户下notebook表权限控制的方法,其特征在于,还包括自动化权限设置和管理,具体步骤如下:步骤s71:设计权限管理表;步骤s72:设定权限规则;步骤s73:实施自动化设置;步骤s74:提供权限管理接口。8.根据权利要求1所述的一种同一租户下notebook表权限控制的方法,其特征在于,还包括动态权限调整,具体如下:步骤s81:扩展权限管理表;步骤s82:实时监控用户行为;步骤s83:更新权限评分;步骤s83:动态调整权限。9.根据权利要求1所述的一种同一租户下notebook表权限控制的方法,其特征在于,还包括审计和报告,具体包括审计日志记录和审计报告生成。10.根据权利要求1所述的一种同一租户下notebook表权限控制的方法,其特征在于,还包括ai和机器学习,具体为:步骤s91:收集用户行为数据;步骤s92:将收集的用户行为数据进行预处理,将它们转换成机器学习模型训练的格式;步骤s93:使用预处理的数据训练一个机器学习模型;步骤s94:在用户进行操作时,使用训练好的模型对用户的行为进行预测,根据预测的结果,系统决定是否提前进行权限校验或者直接拒绝用户的请求;步骤s95:定期使用新收集的数据来更新模型。
技术总结
本发明提出一种同一租户下notebook表权限控制的方法,包括:步骤S1:修改Spark原生API的SQL部分,劫持每一个需要执行SQL操作的动作;步骤S2:在劫持到请求的SQL后,解析SQL,将其中需要访问的tables以及对这些table执行的actions解析出来;步骤S3:在解析出操作的物理表和动作后,将这些信息与用户的身份信息结合起来进行权限校验;步骤S4:权限校验通过后,继续执行原有的pyspark逻辑,调用Spark core执行,返回执行后的数据对象。本发明基于大数据同一租户下notebook的用户级别表权限控制,可以在应用侧进行用户级别的表权限进行精确控制,提升数据的安全性。提升数据的安全性。提升数据的安全性。
技术研发人员:罗剑锋 雷朋 吴小炎 吴名朝
受保护的技术使用者:浩鲸云计算科技股份有限公司
技术研发日:2023.08.15
技术公布日:2023/9/23
技术领域:
:,具体涉及一种同一租户下notebook表权限控制的方法。
背景技术:
::2.随着人工智能和大数据的快速发展,企业用户广泛应用这些技术进行精准营销,特别是在智能营销决策和经营管理等领域的应用,开启了精细化数字运营的进程。在这个过程中,jupyternotebook作为一种强大的数据挖掘工具,能够帮助数据挖掘人员方便地进行专业建模和数据处理。3.然而,对于大数据权限的管理,现有的方法存在显著的问题。传统的大数据权限控制最小单位是“租户”级别,这使得必须为每个用户分配一个租户以进行权限管理。这一做法不仅增加了大数据平台的运营成本,而且无法快速响应业务的变化,满足现如今企业复杂多变的业务需求。4.特别是在使用jupyternotebook这样的交互式编程环境时,由于大数据租户的kerberos鉴权体系机制,同一租户下无法对不同的notebook开发环境用户进行表级别的权限控制。这使得无法在应用侧进行用户级别的表权限进行精确控制,无法满足应用侧的使用要求,极大地限制了数据挖掘专业建模的使用。5.因此,现有的大数据权限管理方法并不能很好地满足notebook环境下的用户需求,既不能有效地解决数据安全问题,又不能满足用户灵活多变的权限管理需求,使得大数据平台的运营效率低下。需要一种新的权限管理方法来解决这些问题,特别是在notebook开发过程中同一租户下的用户级别表权限控制的问题。技术实现要素:6.为克服现有技术的不足,本发明提出一种同一租户下notebook表权限控制的方法,可以在应用侧进行用户级别的表权限进行精确控制,提升数据的安全性。7.为实现上述目的,本发明提供一种同一租户下notebook表权限控制的方法,包括:步骤s1:修改spark原生api的sql部分,劫持每一个需要执行sql操作的动作;步骤s2:在劫持到请求的sql后,解析sql,将其中需要访问的tables以及对这些table执行的actions解析出来;步骤s3:在解析出操作的物理表和动作后,将这些信息与用户的身份信息结合起来进行权限校验;步骤s4:权限校验通过后,继续执行原有的pyspark逻辑,调用sparkcore执行,返回执行后的数据对象。8.进一步地,步骤s1具体如下:步骤s11:修改spark原生api的sql部分,劫持每一个需要执行sql操作的动作。具体来说,就是将sql(self,sqlquery)方法进行改写,增加逻辑判断;步骤s12:权限校验,只有当通过权限校验后才会执行后续动作。这个步骤确保在notebook里面执行的每一个sql操作都是在合法的权限下进行的;步骤s13:修改pyspark源码:在pyspark内的api方法增加解析/权限校验,当权限校验通过后,再调用其原有逻辑继续执行。9.进一步地,步骤s2具体步骤包括:步骤s21:劫持到sql请求后,对sql进行解析,这一步骤主要是为了找出sql中需要访问的数据库物理表(tables)以及对这些table执行的动作操作(actions,例如select,update等);步骤s22:修改spark源码,增加一个名为extract_table_codes(sql)的方法,解析劫持到的sql中的表信息,将解析出的表信息在extract_table_results里面存起来,解析完后,通过一个数组table_codes统一返回。这些解析出的表信息将被用于下一步的权限校验;步骤s23:修改spark源码,增加一个名为extract_action(sql)的方法,去解析劫持到的sql中的执行动作。将解析出来的对表的执行动作(如增加、删除、修改、查询)在一个数组actions里面存起来,解析完后,将数组actions统一返回,以便用于下一步的权限校验。10.进一步地,步骤s3包括:步骤s31:区分表的类型,表分为两种类型,一种是物理表(extract_tables),即在数据库中真实存在的表;另一种是在数据处理过程中产生的临时内存表(temporary_tables)。本方法的权限校验只针对物理表,对于临时内存表则不进行权限校验;步骤s32:通过修改spark源码,增加一个名为wrapper_authority(saprk,sqlquery:str)的方法,这个方法主要用于对解析出来的物理表(extract_tables)和表的操作动作(actions)进行权限校验,并结合用户的身份信息;步骤s33:有效动作的校验,对于不涉及数据权限的特殊操作(如showtables、usedatabase等,称为special_action_keywords),在逻辑层直接跳过不进行校验。具体逻辑如:“ifactioninspecial_action_keywords;returntrue;”;步骤s34:物理表的校验:将sql中所有表解析出来,然后将其分类为物理表和临时表。这是通过is_temporary(saprk,table)方法来实现的。物理表被筛选出来并存入filtertables数组,用于权限校验,而临时表则被跳过;步骤s35:校验物理表集合。11.0011.进一步地,步骤s35具体为调用authority_tables(action,database,tables)方法对物理表、表的操作动作和数据库进行统一的权限校验,包括:将解析sql得到的每个动作,通过用户/database/table参数访问数据源管理系统获得用户对该表的权限,然后将sql解析的权限和管理端该用户具备的权限进行校验比对,如果权限校验通过,就执行,否则就拒绝执行,并返回无权限。12.进一步地,步骤s4包括:步骤s41:权限校验成功后,执行的sql将会继续在pyspark的原有逻辑中运行,该sql被确认为符合权限规定,进行后续的数据操作;步骤s42:调用sparkcore执行sql;ꢀ步骤s43:执行完sql后,sparkcore返回数据对象,数据对象包含了sql查询的结果。13.进一步地,还包括自动化权限设置和管理,具体步骤如下:步骤s71:设计权限管理表;步骤s72:设定权限规则;步骤s73:实施自动化设置;步骤s74:提供权限管理接口。14.进一步地,还包括动态权限调整,具体如下:步骤s81:扩展权限管理表;步骤s82:实时监控用户行为;步骤s83:更新权限评分;步骤s83:动态调整权限。15.进一步地,还包括审计和报告,具体包括审计日志记录和审计报告生成。16.进一步地,还包括ai和机器学习,具体为:步骤s91:收集用户行为数据;步骤s92:将收集的用户行为数据进行预处理,将它们转换成机器学习模型训练的格式;步骤s93:使用预处理的数据训练一个机器学习模型;步骤s94:在用户进行操作时,使用训练好的模型对用户的行为进行预测,根据预测的结果,系统决定是否提前进行权限校验或者直接拒绝用户的请求;步骤s95:定期使用新收集的数据来更新模型。17.与现有技术相比,本发明的有益效果是:1.本发明提供了一种同一租户下notebook表权限控制的方法,基于大数据同一租户下notebook的用户级别表权限控制,可以在应用侧进行用户级别的表权限进行精确控制,提升数据的安全性。18.2.本发明提供了一种同一租户下notebook表权限控制的方法,减少了对大数据租户的管理需求,简化了权限管理过程,提高了大数据平台的运营效率。19.3.本发明提供了一种同一租户下notebook表权限控制的方法,能够更灵活地适应企业复杂多变的业务需求,能够快速响应业务变化。20.4.本发明提供了一种同一租户下notebook表权限控制的方法,能够更好地支持数据挖掘专业建模的使用,有利于数据分析和数据探索,而且通过减少大数据平台的运营成本,帮助企业降本增效,提升企业竞争力。21.5.本发明提供了一种同一租户下notebook表权限控制的方法,更好地实现数据权限的细粒度管理,提升数据的利用效率,更好地支持智能营销决策和经营管理等业务,且通过用户级别的表权限控制,可以更好地防止数据的非授权访问,提高数据的安全性。附图说明22.为了更清楚地说明本发明具体实施方式或现有技术中的技术方案,下面将对具体实施方式或现有技术描述中所需要使用的附图作简单的介绍,显而易见地,下面描述中的附图是本发明的一些实施方式,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。23.图1是本发明流程图;图2是本发明劫持代码示意图;图3为本发明解析代码示意图;图4为本发明校验代码示意图;图5为sparkapi拦截校验流程图;图6为基于大数据同一租户下notebook表权限控制关系图。实施方式24.下面将结合附图、通过对本发明的优选实施方式的描述,更加清楚、完整地阐述本发明的技术方案。25.以下是一些专业术语的解释:1.spark:apachespark是一个用于大规模数据处理的开源并行计算系统。26.2.api:应用程序接口(applicationprogramminginterface),是一些预先定义的函数,或指软件系统不同组成部分衔接的约定。27.3.sql:结构化查询语言(structuredquerylanguage),是一种用于管理关系数据库的标准的计算机语言。28.4.notebook:在这里,笔记本是指jupyternotebook或类似的交互式计算环境,它允许用户编写和运行代码,以及添加富文本元素(如方程、图形和文本)。29.5.pyspark:pyspark是用于交互式查询大规模数据的python库,它是apachespark的pythonapi。30.6.sparkcore:sparkcore是apachespark的基础,提供基础的i/o功能,任务调度和内存管理。31.7.tables:在数据库中,表(tables)是数据的矩阵。在表中,每一列包含相同类型的数据(例如邮件地址、电话号码或员工姓名),每一行则包含一组相关的数据。32.8.actions:在这个上下文中,动作(actions)可能是指数据库表的操作,如select(选择)、insert(插入)、update(更新)或delete(删除)。33.9.database:数据库是一个组织数据的方式,使其可以轻易地被检索、管理和更新。34.10.authority_tables:这个词组可能是一个自定义的函数,用于检查一个用户是否有权对特定的数据库表执行某种操作。35.11.ai:ai是人工智能(artificialintelligence)的缩写,是指由人制造出来的系统所表现出来的智能。36.12.machinelearning:机器学习是人工智能的一个分支,是使计算机具有学习能力而不需要进行明确编程的科学。37.本方法支持notebook应用作为一个租户接入大数据平台,多个用户(notebook应用里代码开发者)公用一个租户;具体的用户和数据表的操作权限管理,从大数据平台统一管理,下放到了notebook应用系统自己管理;包括表权限的申请、审批、授权,具体的操作权限包括表的删除、修改、查询权限,如图6所示。38.如图1所示,本发明具体为:步骤s1:修改spark原生api的sql部分,劫持每一个需要执行sql操作的动作;步骤s2:在劫持到请求的sql后,解析sql,将其中需要访问的tables以及对这些table执行的actions解析出来;步骤s3:在解析出操作的物理表和动作后,将这些信息与用户的身份信息结合起来进行权限校验;步骤s4:权限校验通过后,继续执行原有的pyspark逻辑,调用sparkcore执行,返回执行后的数据对象。39.作为一种具体的实施方式,步骤s1具体为修改spark原生api的sql部分,将执行sql的原生api进行修改,劫持每一个需要执行sql操作的动作;增加逻辑判断,将所有需要执行的sql语句劫持,让其进入下一步sql语句解析阶段;如图2所示,将sql(self,sqlquery)方法进行改写,增加if判断ꢀ“ifnotwrapper_authority(saprk=self,sqlquery=sqlquery);”使得调用该方法的每一个sql执行动作,都需要经过权限校验方法wrapper_authority(saprk=self,sqlquery=sqlquery);只有通过权限校验后才会执行后续动作,确保在notebook里面执行的每一个sql操作都是在合法的权限下进行的;核心方法就是,修改pyspark源码,劫持每一个sql动作,确保sql执行合法,在pyspark内的session等api方法增加解析/权限校验,通过校验后再调用其原有逻辑继续执行,关键代码如图2所示;作为一种具体的实施方式,步骤s2具体为:劫持到请求的sql后对sql解析,分解出sql中需要访问的tables(数据库物理表)以及对这些table执行的actions(动作操作,例如select,update等);①表(table_codes)的解析:通过修改saprk源码,增加extract_table_codes(sql)方法,解析拦截到的sql里面的表,并将表在extract_table_results里面存起来,解析完后统一通过数组table_codes返回,给到下一步去进行权限校验;具体代码如图3所示的extract_table_codes(sql)方法;动作(actions)的解析:通过修改saprk源码,增加extract_action(sql)方法,通过extract_action(sql)方法,去解析拦截到的sql里面的执行动作,并将解析出来的对表的执行动作action(增加、删除、修改、查询)在数组actions里面存起来,解析完后统一将数组actions返回(returnactions),给到下一步去进行权限校验;具体代码如图3所示的extract_action(sql)方法;作为一种具体的实施方式,步骤s3具体为:对于表分为两种,一种是物理表(extract_tables),即在数据库真实存在的物理表,另一种是在做数据处理的过程中产生的临时内存表(temporary_tables),本方法校验只针对物理表进行校验,对于临时内存不做权限校验;修改saprk源码,增加wrapper_authority(saprk,sqlquery:str)方法对上述解析出来的物理表(extract_tables)和表的操作动作(actions)再结合该用户的身份信息进行权限校验;①校验有效动作:对于特殊不涉及权限的动作,比如showtables、usedatebase等不涉及数据权限的特殊操作(special_action_keywords),将不进行校验,在逻辑层会直接跳过,如下文中的代码逻辑:ifactioninspecial_action_keywords;ꢀꢀꢀꢀꢀreturntrue;②校验有效物理表(filtertabls):将sql中所有表解析出来,然后再将表进行分类,按照物理表和临时表进行分类,使用is_temporary(saprk,table)方法对解析到的表进行判断,区分出物理表和临时表。将所有解析到的表按照如下代码进行区分,筛选出真正去进行权限校验的物理表(filtertabls),跳过临时内存表;具体筛选代码如下:ꢀꢀꢀꢀꢀꢀꢀꢀꢀfortableintables;‑‑‑轮旋所有解析的表ꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀifnoteis_temporary(saprk,table);‑‑‑‑‑判断是否是物理表ꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀfiltertabls.append(table);ꢀ‑‑‑‑‑将物理表统一存储到filtertabls涉及到的物理表集合filtertabls进行权限校验:新增校验方法authority_tables(action,databese,tebles)对解析到的物理表、表的操作动作、数据库进行统一的权限校验,该方法会将解析sql得到的每个动作,并通过用户/database/table参数访问数据源管理系统获得用户对该表的权限,然后将sql解析的权限和管理端该用户具备的权限进行校验比对,若权限校验通过,则执行,失败则拒绝执行,返回无权限,代码如图4所示;作为一种具体的实施方式,步骤s4具体为:1.校验通过后,进行下一步:如果权限校验成功,那么执行的sql将会继续在pyspark的原有逻辑中运行。这意味着,经过前面的过滤和校验,该sql被确认为符合权限规定,可以进行后续的数据操作。40.2.调用sparkcore执行sql:校验通过的sql将被传递到sparkcore中进行执行。sparkcore是spark的计算引擎,它负责在分布式环境下进行数据的处理和计算。41.3.返回执行结果:执行完sql后,sparkcore会返回一个数据对象,这个对象包含了sql查询的结果。在pyspark中,这个结果被封装成一个dataframe对象,并返回给用户。具体的代码形式为:`returndataframe(sql.self._jsparkseesion.sql(sqlquery),self._wrapped)。`在这里,`sql.self._jsparkseesion.sql(sqlquery)`是执行sql查询并获取结果,`self._wrapped`则是对结果进行封装处理。42.作为一种具体的实施方式,权限申请管理具体为:申请管理在notebook应用系统进行操作,替代大数据平台的数据表权限管理,对于库表权限的申请,授权、权限管理等操作,通过应用系统的授权管理模块进行管理;本技术表述的模型指代的是数据表模型;管理系统接收到表模型的授权需求后,可根据需求将未授权的模型进行授权,也可将已授权的表模型进行权限回收;选择需要做权限管理的表模型,可根据表模型名称和模型编码进行确认,然后将模型拉到右侧,放入已授权区域;在已授权表模型区域,点击授权操作,即可对权限进行设置,包括模型查看权限、模型编辑权限、模型删除权限;可同时操作一个或者多个权限,从而达到权限管理目的;权限设置完成后点击保存权限即可产生效果;在notebook应用端的系统管理将表模型完成授权管理操作后,通过修改sparkapi源码,拦截notebook中提交的sql,解析sql中的表模型和对应的操作,和该用户在notebook应用管理端的权限进行校验比对,从而达到权限管控目的;作为一种具体的实施方式,权限校验具体为:当用户在notebook中调用saprkapi执行sql操作的时候,经过本方法修改过的api中的sql会被拦截,从而将sql里面的表模型以及对应的表操作动作解析出来,同步根据session中的用户信息调用管理端权限查询接口,拿到管理端该用户具备的表模型权限,然后将解析出来的物理表模型(tables)和表的有效操作动作(actions)进行比对校验,校验通过后即可执行,校验不通过则拒绝执行,返回权限异常;如图5所示。43.作为一种具体的实施方式,还包括自动化权限设置和管理,具体为:1.设计权限管理表:在数据库中创建一个新的表,这个表将存储所有用户的权限信息。这个表可能包括以下字段:用户id,权限级别,表名等。44.2.设定权限规则:根据实际的业务需求,设定权限的规则,这个规则将决定不同级别的用户能够访问哪些表,以及对这些表有何种操作权限。45.3.实施自动化设置:每当新的用户被添加到系统中,或者有新的表被创建,根据前面设定的规则,系统会自动为这个新的用户或者新的表设置权限。具体的实施可能需要编写相应的脚本或者程序,当系统检测到有新的用户或者新的表被添加时,这个脚本或者程序会自动运行,根据设定的规则进行权限的设置。46.4.提供权限管理接口:除了系统自动设置权限,还提供一个接口,允许管理员手动更改用户的权限设置。这个接口应该包括对权限管理表的查询,修改等操作。这样管理员就可以根据实际的需要,对用户的权限进行微调。47.通过自动化设置和管理用户权限,既减轻了管理员的工作量,又保证了系统的安全性作为一种具体的实施方式,还包括动态权限调整,具体为1.扩展权限管理表:首先,在权限管理表中添加一个新的字段,叫做"权限评分"。这个评分应该有一个初始值,比如说0。48.2.实时监控用户行为:添加一个新的模块,这个模块负责实时监控用户的行为。它可以通过分析sql日志来识别用户的行为模式,比如用户频繁尝试访问他没有权限的表。49.3.更新权限评分:根据用户的行为模式和数据敏感性等因素,定期更新用户的权限评分。如果一个用户频繁尝试访问他没有权限的表,那么他的权限评分会被降低。设计一个算法来根据用户的行为和数据敏感性计算用户的权限评分。50.4.动态调整权限:在wrapper_authority方法中,不仅要检查用户是否有权限访问指定的表,还要检查用户的权限评分。如果一个用户的权限评分低于某个阈值,那么可以调整他的权限,比如禁止他访问某些表。51.可以根据用户的行为动态调整他们的权限,这将使本方法更加安全和灵活。能够更好地保障数据安全,并且适应各种用户行为。52.作为一种具体的实施方式,还包括审计和报告,具体为1.审计日志记录:每当用户尝试访问表时,都需要记录该活动的信息。首先,在数据库中创建一个新的"审计日志"表,该表包含用户id,表名,操作类型,时间等字段。然后,在现有的sql拦截和权限校验流程中,无论用户的访问请求是否成功,都需要将相关信息写入"审计日志"表。53.2.审计报告生成:设定一个定期任务来生成审计报告。这个任务会读取"审计日志"表中的数据,然后根据需要来分析这些数据。比如,可以分析某个用户在过去的一周内尝试访问哪些表,尝试执行哪些操作,或者哪些表被访问的频率最高等。这个报告可以按日或按周生成,以满足需求。54.这样,就可以保留所有用户的行为记录,并可以生成审计报告来帮助你分析用户的行为和系统的使用情况。55.作为一种具体的实施方式,还包括ai和机器学习,具体为这个建议可以总结为下面的步骤:1.数据收集:首先,收集大量的用户行为数据,包括用户的操作类型、操作时间、操作的表等。可以在现有的sql拦截和权限校验流程中增加逻辑来记录这些信息。56.2.数据预处理:将收集的用户行为数据进行预处理,将它们转换成适合机器学习模型训练的格式。57.3.模型训练:使用预处理的数据训练一个机器学习模型。这个模型的目标是预测用户可能进行的行为。58.4.模型预测:在用户进行操作时,使用训练好的模型对用户的行为进行预测。根据预测的结果,系统可以决定是否提前进行权限校验或者直接拒绝用户的请求。59.5.模型更新:定期使用新收集的数据来更新模型,以适应用户行为的变化。60.上述具体实施方式仅仅对本发明的优选实施方式进行描述,而并非对本发明的保护范围进行限定。在不脱离本发明设计构思和精神范畴的前提下,本领域的普通技术人员根据本发明所提供的文字描述、附图对本发明的技术方案所作出的各种变形、替代和改进,均应属于本发明的保护范畴。本发明的保护范围由权利要求确定。当前第1页12当前第1页12
技术特征:
1.一种同一租户下notebook表权限控制的方法,其特征在于,包括:步骤s1: 修改spark原生api的sql部分,劫持每一个需要执行sql操作的动作;步骤s2:在劫持到请求的sql后,解析sql,将其中需要访问的tables以及对这些table执行的actions解析出来;步骤s3:在解析出操作的物理表和动作后,将这些信息与用户的身份信息结合起来进行权限校验;步骤s4:权限校验通过后,继续执行原有的pyspark逻辑,调用spark core执行,返回执行后的数据对象。2.根据权利要求1所述的一种同一租户下notebook表权限控制的方法,其特征在于,步骤s1具体如下:步骤s11:劫持sql操作,就是将sql方法进行改写,增加逻辑判断;步骤s12:权限校验;步骤s13:修改pyspark源码:在pyspark内的api方法增加解析/权限校验,当权限校验通过后,再调用其原有逻辑继续执行。3.根据权利要求1所述的一种同一租户下notebook表权限控制的方法,其特征在于,步骤s2具体步骤包括:步骤s21:劫持到sql请求后,对sql进行解析;步骤s22:修改spark源码,增加一个名为extract_table_codes的方法,解析劫持到的sql中的表信息;步骤s23:修改spark源码,增加一个名为extract_action的方法,去解析劫持到的sql中的执行动作,将解析出来的对表的执行动作,在一个数组actions里面存起来。4.根据权利要求1所述的一种同一租户下notebook表权限控制的方法,其特征在于,步骤s3包括:步骤s31:区分表的类型;步骤s32:通过修改spark源码,增加一个名为wrapper_authority的方法;步骤s33:有效动作的校验;步骤s34:物理表的校验;步骤s35:校验物理表集合。5.根据权利要求4所述的一种同一租户下notebook表权限控制的方法,其特征在于,步骤s35具体为调用authority_tables(action, database, tables)方法对物理表的操作动作和数据库进行统一的权限校验,包括:将解析sql得到的每个动作,通过用户/database/table参数访问数据源管理系统获得用户对表的权限,然后将sql解析的权限和管理端用户具备的权限进行校验比对,如果权限校验通过,就执行,否则就拒绝执行,并返回无权限。6.根据权利要求1所述的一种同一租户下notebook表权限控制的方法,其特征在于,步骤s4包括:步骤s41:权限校验成功后,执行的sql将会继续在pyspark的原有逻辑中运行,该sql被确认为符合权限规定,进行后续的数据操作;步骤s42:调用spark core执行sql;
步骤s43:执行完sql后,spark core返回数据对象,数据对象包含了sql查询的结果。7.根据权利要求1所述的一种同一租户下notebook表权限控制的方法,其特征在于,还包括自动化权限设置和管理,具体步骤如下:步骤s71:设计权限管理表;步骤s72:设定权限规则;步骤s73:实施自动化设置;步骤s74:提供权限管理接口。8.根据权利要求1所述的一种同一租户下notebook表权限控制的方法,其特征在于,还包括动态权限调整,具体如下:步骤s81:扩展权限管理表;步骤s82:实时监控用户行为;步骤s83:更新权限评分;步骤s83:动态调整权限。9.根据权利要求1所述的一种同一租户下notebook表权限控制的方法,其特征在于,还包括审计和报告,具体包括审计日志记录和审计报告生成。10.根据权利要求1所述的一种同一租户下notebook表权限控制的方法,其特征在于,还包括ai和机器学习,具体为:步骤s91:收集用户行为数据;步骤s92:将收集的用户行为数据进行预处理,将它们转换成机器学习模型训练的格式;步骤s93:使用预处理的数据训练一个机器学习模型;步骤s94:在用户进行操作时,使用训练好的模型对用户的行为进行预测,根据预测的结果,系统决定是否提前进行权限校验或者直接拒绝用户的请求;步骤s95:定期使用新收集的数据来更新模型。
技术总结
本发明提出一种同一租户下notebook表权限控制的方法,包括:步骤S1:修改Spark原生API的SQL部分,劫持每一个需要执行SQL操作的动作;步骤S2:在劫持到请求的SQL后,解析SQL,将其中需要访问的tables以及对这些table执行的actions解析出来;步骤S3:在解析出操作的物理表和动作后,将这些信息与用户的身份信息结合起来进行权限校验;步骤S4:权限校验通过后,继续执行原有的pyspark逻辑,调用Spark core执行,返回执行后的数据对象。本发明基于大数据同一租户下notebook的用户级别表权限控制,可以在应用侧进行用户级别的表权限进行精确控制,提升数据的安全性。提升数据的安全性。提升数据的安全性。
技术研发人员:罗剑锋 雷朋 吴小炎 吴名朝
受保护的技术使用者:浩鲸云计算科技股份有限公司
技术研发日:2023.08.15
技术公布日:2023/9/23
版权声明
本文仅代表作者观点,不代表航家之家立场。
本文系作者授权航家号发表,未经原创作者书面授权,任何单位或个人不得引用、复制、转载、摘编、链接或以其他任何方式复制发表。任何单位或个人在获得书面授权使用航空之家内容时,须注明作者及来源 “航空之家”。如非法使用航空之家的部分或全部内容的,航空之家将依法追究其法律责任。(航空之家官方QQ:2926969996)
航空之家 https://www.aerohome.com.cn/
航空商城 https://mall.aerohome.com.cn/
航空资讯 https://news.aerohome.com.cn/