本申请实施例涉及数据库技术领域,特别涉及一种数据删除方法、装置、服务器及存储介质。
背景技术:
大数据是指无法在一定时间范围内用常规软件工具进行捕捉、管理和处理的数据集合,并且数据创造的主体已经由企业逐渐转向个体,现代企业通过对采集的数据进行分析处理,获取有价值的信息,这一过程中,数据安全尤为重要。
相关技术中,通常采用海杜普(hadoop)分布式系统基础架构存储和分析处理数据,服务器集群利用hadoop分布式文件系统(hadoopdistributedfilesystem,hdfs)将采集到的数据进行存储并建立相关目录,用户通过管理文件目录,可以对数据文件进行删除、移动等操作。
然而,采用相关技术中的数据存储和管理方法,用户在对文件目录进行管理时可能产生误操作,例如将数据文件删除,则该数据文件将无法恢复,会造成数据丢失。
技术实现要素:
本申请实施例提供了一种数据删除方法、装置、服务器及存储介质。所述技术方案如下:
一方面,本申请实施例提供了一种数据删除方法,所述方法用于服务器,所述服务器设置有hdfs和数据仓库工具(hive),所述方法包括:
接收客户端发送的数据删除指令,所述数据删除指令用于指示删除目标数据,所述目标数据属于所述hdfs或所述hive;
若所述目标数据属于系统保护资源或用户保护资源,则停止响应所述数据删除指令,所述系统保护资源属于hdfs资源,所述用户保护资源属于所述hdfs资源或所述hive资源;
若所述目标数据不属于所述系统保护资源和所述用户保护资源,且所述客户端的当前账号通过权限验证,则响应所述数据删除指令。
另一方面,本申请实施例提供了一种数据删除装置,所述装置用于服务器,所述服务器设置有hdfs和hive,所述装置包括:
接收模块,用于接收客户端发送的数据删除指令,所述数据删除指令用于指示删除目标数据,所述目标数据属于所述hdfs或所述hive;
第一响应模块,用于若所述目标数据属于系统保护资源或用户保护资源,则停止响应所述数据删除指令,所述系统保护资源属于hdfs资源,所述用户保护资源属于所述hdfs资源或所述hive资源;
第二响应模块,用于若所述目标数据不属于所述系统保护资源和所述用户保护资源,且所述客户端的当前账号通过权限验证,则响应所述数据删除指令。
另一方面,本申请实施例提供了一种服务器,所述服务器包括处理器和存储器;所述存储器存储有至少一条指令,所述至少一条指令用于被所述处理器执行以实现如上述方面所述的数据删除方法。
另一方面,提供了一种计算机可读存储介质,所述存储介质存储有至少一条指令,所述至少一条指令用于被处理器执行以实现如上述方面所述的数据删除方法。
本申请实施例提供的技术方案的有益效果至少包括:
本申请实施例中,通过设置系统保护资源和用户保护资源,对客户端发送的数据删除指令进行权限验证,若目标数据属于系统保护资源或用户保护资源,则客户端无法删除目标数据,若目标数据不属于系统保护资源和用户保护资源,且客户端拥有删除目标数据的权限,则可以删除目标数据,避免了运维人员的误操作导致数据丢失,提高了hdfs和hive中的数据的安全性。
附图说明
图1是本申请一个示例性实施例提供的实施环境的示意图;
图2是根据本申请一示例性实施例示出的数据删除方法的流程图;
图3是根据本申请另一示例性实施例示出的数据删除方法的流程图;
图4是根据本申请另一示例性实施例示出的数据删除方法的流程图;
图5是根据本申请一示例性实施例示出的用户申请授权的流程图;
图6是根据本申请一示例性实施例示出的拉取目标策略的流程图;
图7是根据本申请一示例性实施例示出的hdfs的protal界面示意图;
图8是根据本申请一示例性实施例示出的hdfs策略申请界面的示意图;
图9是根据本申请一示例性实施例示出的hive的protal界面示意图;
图10是根据本申请一示例性实施例示出的hive策略申请界面的示意图;
图11是根据本申请另一示例性实施例示出的数据删除方法的流程图;
图12是根据本申请一示例性实施例示出的数据删除装置的结构框图;
图13是根据本申请一示例性实施例示出的服务器的结构框图。
具体实施方式
为使本发明的目的、技术方案和优点更加清楚,下面将结合附图对本发明实施方式作进一步地详细描述。
在本文中提及的“多个”是指两个或两个以上。“和/或”,描述关联对象的关联关系,表示可以存在三种关系,例如,a和/或b,可以表示:单独存在a,同时存在a和b,单独存在b这三种情况。字符“/”一般表示前后关联对象是一种“或”的关系。
请参考图1,其示出了本申请一个示例性实施例提供的实施环境的示意图。该实施环境中包括客户端101和服务器102。
客户端101是数据库用户在管理、查询数据库数据时使用的客户端。在一种可能的实施方式中,用户在客户端101的数据管理界面中输入指令(例如数据删除指令)或数据,并发送至服务器102;同时客户端101可以接受服务器102发送的指令或根据上述指令反馈的数据等信息。可选地,客户端101可以泛指多个终端中的一个。
客户端101通过无线网络或有线网络与服务器102相连。
服务器102包括一台服务器、多台服务器、云计算平台和虚拟化中心中的至少一种,服务器102是运行有数据库的服务器。在一种可能的实施方式中,服务器接收数据采集工具上传的数据,并与客户端101之间传输数据或指令。当服务器102接收到来自客户端101的指令时,判断是否执行该指令,并将执行结果返回至客户端101。例如,当服务器102接收到客户端101发送的目标数据的数据删除指令时,判断目标数据是否为被保护的数据以及该客户端是否拥有删除目标数据的权限,根据判断结果确定是否执行该数据删除指令,并将执行结果返回至客户端101。
请参考图2,其示出了本申请一个示例性实施例提供的数据删除方法的流程图。本实施例以该方法用于设置有hdfs和hive的服务器为例进行说明,该方法包括如下步骤:
步骤201,接收客户端发送的数据删除指令,数据删除指令用于指示删除目标数据,目标数据属于hdfs或hive。
其中,hadoop是一个能够对大量数据进行分布式处理的软件框架,用户可以在不了解分布式底层细节的情况下,开发分布式程序,充分利用集群的威力进行高速运算和存储。hadoop由许多元素构成。其最底部是hdfs,它用于存储hadoop集群中所有存储节点上的文件。对于客户端而言,hdfs相当于一个传统的分级文件系统,运维人员可以创建、删除、移动或重命名文件,等等。hive是基于hadoop的一个数据仓库工具,用来进行数据提取、转化、加载,这是一种可以存储、查询和分析存储在hadoop中的大规模数据的机制。hive数据仓库工具能将结构化的数据文件映射为一张数据库表,并提供数据查询功能。hive将计算得到的数据实际存储在分布式系统上,如hdfs。
在一种可能的实施方式中,hadoop的运维人员利用如图1所示的客户端101对数据库中的数据进行查询和处理。例如,运维人员在客户端的管理界面中输入数据删除指令,客户端将该数据删除指令发送至服务器102,指示服务器102删除目标数据,服务器102接收到客户端101发送的数据删除指令后,根据该指令和对应的客户端判断是否删除目标数据,该目标数据属于hdfs或hive。
步骤202,若目标数据属于系统保护资源或用户保护资源,则停止响应数据删除指令,系统保护资源属于hdfs资源,用户保护资源属于hdfs资源或hive资源。
在一种可能的实施方式中,服务器针对hdfs资源预先设置有系统保护资源,针对hdfs资源和hive资源设置有用户保护资源,对于系统保护资源和用户保护资源中的数据,运维人员无法删除,即服务器不响应对该类目标数据的数据删除指令。
示意性的,当服务器查询到当前数据删除指令对应的目标数据属于某一系统保护资源,则停止响应该数据删除指令,并生成无法删除目标数据的提示信息,发送至客户端,客户端显示该提示信息,提醒运维人员目标数据被保护,无法删除。
步骤203,若目标数据不属于系统保护资源和用户保护资源,且客户端的当前账号通过权限验证,则响应数据删除指令。
在一种可能的实施方式中,对于不属于系统保护资源和用户保护资源的目标数据,拥有目标数据删除权限的用户可以通过客户端删除目标数据。
示意性的,服务器接收到的数据删除指令中包含目标数据的标识和用户标识,若服务器通过目标数据标识识别出该目标数据不属于系统保护资源和用户保护资源,则根据当前账号查询该用户是否拥有对目标数据的删除权限,若不拥有,则停止响应数据删除指令并向客户端发送没有删除权限的提示信息,若拥有,则响应数据删除指令。
综上所述,本申请实施例中,通过设置系统保护资源和用户保护资源,对客户端发送的数据删除指令进行权限验证,若目标数据属于系统保护资源或用户保护资源,则客户端无法删除目标数据,若目标数据不属于系统保护资源和用户保护资源,且客户端拥有删除目标数据的权限,则可以删除目标数据,避免了运维人员的误操作导致数据丢失,提高了hdfs和hive中的数据的安全性。
请参考图3,其示出了本申请另一个示例性实施例提供的数据删除方法的流程图。本实施例以该方法用于设置有采用hdfs的hive的服务器为例进行说明,该方法包括如下步骤:
步骤301,接收客户端发送的数据删除指令,数据删除指令用于指示删除目标数据,目标数据属于hdfs或hive。
步骤301的实施方式可以参考上述步骤201,本申请实施例在此不再赘述。
步骤302,若目标数据属于hdfs,通过hdfs的命名节点(namenode)读取系统保护资源列表,系统保护资源列表中包含系统保护资源。
其中,namenode是管理文件系统的命名空间,它维护着文件系统树及整棵树内所有的文件和目录。
可选地,系统保护资源包括hdfs的系统级别目录,该系统保护资源是固定资源,由开发人员预先设置,即使拥有超级权限的用户也无法删除该类资源中的数据。
在一种可能的实施方式中,开发人员将系统保护资源列表设置在配置文件中。namenode启动时,服务器通过namenode将配置文件中包含的系统保护资源列表加载至内存,以便服务器在接收到数据删除指令时,读取系统保护资源列表。
示意性的,表1示出了一种配置文件的部分内容,其中包括各项系统保护资源以及对应的类别和描述:
表1
步骤303,若目标数据属于系统保护资源列表,则停止响应数据删除指令。
由于系统保护资源列表中包含的系统保护资源通常为关系到系统功能的重要文件,若目标数据属于系统保护资源列表,运维人员即使拥有超级权限也无法删除目标数据,因此当服务器查询到目标数据属于系统保护资源列表,则停止响应数据删除指令,并向客户端发送目标数据属于系统保护资源,无法删除等提示信息。
示意性的,服务器配置文件中的部分系统资源保护列表如表1所示,若服务器接收到客户端发送的对hive.exec.stagingdir的数据删除指令,则停止响应该数据删除指令。
如图4所示,其示出了一种数据删除方法的流程图,该方法包括:步骤401客户端发送数据删除指令;步骤402,namenode读取系统保护资源列表;步骤403,判断是否为系统保护资源,若是,则执行步骤404,否则执行步骤405;步骤404,停止响应数据删除指令;步骤405,判断当前账户是否通过权限认证,若否,则执行步骤406,是则执行步骤407;步骤406,停止响应数据删除指令;步骤407,响应数据删除指令。
步骤304,通过权限管理(ranger)工具确定目标数据是否属于用户保护资源,并验证当前账号的删除权限。
可选地,服务器还设置有ranger工具。其中,ranger工具是一款被设计成全面掌握hadoop生态系统的数据安全管理框架,它为hadoop生态系统中众多的组件提供了一个统一的数据授权和管理界面,使得系统管理员只需面对ranger一个系统,就能对hadoop整个生态体系进行数据授权,数据管理与审计。
可选地,用户保护资源包括当前账号对应的hdfs的用户级别目录、hive的数据库和数据表中的至少一种。
在一种可能的实施方式中,服务器利用ranger工具确定目标数据是否属于用户保护资源,并验证客户端的删除权限,若目标数据属于用户保护资源,或客户端没有对目标数据的删除权限,则服务器不执行数据删除指令。
其中,删除权限是由客户端申请包含删除权限的策略并且审批通过后得到的,因此ranger工具需要定期获取hdfs和hive资源的策略。在一种可能的实施方式中,服务器通过ranger工具从hdfs和hive处拉取策略集,策略集包括支持删除的资源以及具有删除权限的账号。
示意性的,服务器每隔一分钟通过ranger工具从hdfs和hive处拉取策略集。
用户通过客户端可以申请包含删除权限的策略并在审批通过后得到删除权限。在一种可能的实施方式中,当接收到授权指令时,服务器在hdfs或hive中设置权限管理接口(rangerapplicationprogramminginterface,rangerapi),授权指令是身份识别与访问管理(identityandaccessmanagement,iam)接收到客户端通过门户网站(portal)发送的授权请求,且授权请求通过时由iam发送,授权请求中包含目标策略,目标策略属于策略集。
示意性的,请参考图5,其示出了一种申请授权的流程图。用户通过点击protal501的界面触发授权请求,protal接收授权请求后,将,该授权请求转发至iam502,工作人员根据申请人和授权请求的详细内容进行审批,若审批通过,iam502发送授权请求至ranger工具503,ranger工具503定期从hdfs504和hive505拉取策略。
示意性的,服务器创建一条hdfs的目标策略rangerapi的过程如下:
在一种可能的实施方式中,服务器通过ranger工具从hdfs和hive处拉取策略集,包括:
通过ranger工具从hdfs和hive处设置的ranger插件处拉取策略集,策略集由ranger插件通过rangerapi获取。服务器通过ranger工具定期利用ranger插件通过rangerapi处拉取策略集,并保存在本地和内存中。
示意性的,请参考图6,ranger工具601定期通过hdfsnamenode处的ranger插件602和hive服务器处的ranger插件603拉取策略集。
示意性的,请参考图7至图10,其示出了客户端发送授权请求过程的界面图。图7是hdfs的portal界面示意图,该界面中包含添加新策略控件701,运维人员在客户端点击该添加新策略控件701可以申请添加新策略,界面下方为已有的hdfs策略的列表702,运维人员可以在该列表702中查看或编辑已有的策略。
运维人员点击添加新策略控件701后,客户端显示如图8所示的新策略添加界面,该界面中包含策略详情部分和禁止状态部分,运维人员在策略详情部分填写策略信息栏801,并在禁止状态部分的申请表802中选择申请人和允许项,允许项的选择列表803中包含读、写、删除等多个选项,运维人员根据需要选择相应选项,并且可以通过点击添加控件804添加多个申请表,对同一资源同时申请多项权限。
图9是hive的portal界面示意图,该界面中包含添加新策略控件901,运维人员在客户端点击该添加新策略控件901可以申请添加新策略,界面下方为已有的hive策略的列表902,运维人员可以在该列表902中查看或编辑已有的hive策略。
运维人员点击添加新策略控件901后,客户端显示如图10所示的新策略添加界面,该界面中包含策略详情部分和禁止状态部分,运维人员在策略详情部分填写策略信息栏1001,并在禁止状态部分的申请表1002中选择申请人和允许项,允许项的选择列表1003中包含选择、更新、创建、删除等多个选项,运维人员根据需要选择相应选项,并且可以通过点击添加控件1004添加多个申请表,对同一资源同时申请多项权限。
在一种可能的实施方式中,步骤304包括:
根据目标策略,通过ranger工具确定目标数据是否属于用户保护资源,并验证客户端的删除权限。当接收到数据删除指令时,服务器从本地和内存中保存的已有策略中查询是否存在目标数据的目标策略,若存在,则确定目标数据不属于用户保护资源,并验证发送数据删除指令的客户端的删除权限。
步骤305,若目标数据不属于用户保护资源,且客户端通过权限验证,则响应数据删除指令。
在一种可能的实施方式中,若服务器查询到本地和内存中包含目标数据的目标策略,且客户端有用该目标策略的权限,即目标数据的删除权限,则确定目标数据不属于用户保护资源,且客户端通过权限验证,并响应数据删除指令。
如图11所示,其示出了一种数据删除方法的流程图,该方法包括:步骤1101客户端发送数据删除指令;步骤1102,ranger读取目标策略;步骤1103,判断是否为用户保护资源,若是,则执行步骤1104,否则执行步骤1105;步骤1104,停止响应数据删除指令;步骤1105,判断当前账号是否通过权限认证,若否,则执行步骤1106,是则执行步骤1107;步骤1106,停止响应数据删除指令;步骤1107,响应数据删除指令。
本申请实施例中,利用配置文件预先配置系统保护资源,运维人员在系统初始化时即可完成配置,对于用户资源,运维人员可以通过protal提交目标策略的授权请求,服务器利用ranger工具的rangerapi拉取策略集,在内存中及时更新策略集,保证运维人员在获得目标数据的删除权限后可以通过发送数据删除指令删除目标数据,同时禁止删除用户保护资源或未获得删除权限的用户资源,降低了运维人员误操作导致数据丢失的风险。
请参考图12,其示出了本申请一个示例性实施例提供的数据删除装置的结构框图。该装置可以通过软件、硬件或者两者的结合实现成为服务器的全部或一部分。该装置包括:
接收模块1201,用于接收客户端发送的数据删除指令,所述数据删除指令用于指示删除目标数据,所述目标数据属于所述hdfs或所述hive;
第一响应模块1202,用于若所述目标数据属于系统保护资源或用户保护资源,则停止响应所述数据删除指令,所述系统保护资源属于hdfs资源,所述用户保护资源属于所述hdfs资源或所述hive资源;
第二响应模块1203,用于若所述目标数据不属于所述系统保护资源和所述用户保护资源,且所述客户端的当前账号通过权限验证,则响应所述数据删除指令。
可选的,所述第一响应模块1202,包括:
读取单元,用于若所述目标数据属于所述hdfs,通过所述hdfs的namenode读取系统保护资源列表,所述系统保护资源列表中包含所述系统保护资源;
第一响应单元,用于若所述目标数据属于所述系统保护资源列表,则停止响应所述数据删除指令。
可选的,所述装置还包括:
加载模块,用于所述namenode启动时,通过所述namenode将配置文件中包含的所述系统保护资源列表加载至内存。
可选的,所述服务器还设置有ranger工具;
所述第二响应模块1203,包括:
验证单元,用于通过所述ranger工具确定所述目标数据是否属于所述用户保护资源,并验证所述当前账号的删除权限;
第二响应单元,用于若所述目标数据不属于所述用户保护资源,且所述客户端通过权限验证,则响应所述数据删除指令。
可选的,所述装置还包括:
拉取模块,用于通过所述ranger工具从所述hdfs和所述hive处拉取策略集,所述策略集包括支持删除的资源以及具有所述删除权限的账号;
所述验证单元,还用于:
根据所述策略集,通过所述ranger工具确定所述目标数据是否属于所述用户保护资源,并验证所述客户端的删除权限。
可选的,所述hdfs和所述hive集成有ranger插件;
所述装置还包括:
设置模块,用于当接收到授权指令时,在所述hdfs或所述hive中设置rangerapi,所述授权指令是iam接收到客户端通过portal发送的授权请求,且所述授权请求通过时由所述iam发送,所述授权请求中包含目标策略,所述目标策略属于所述策略集;
所述拉取模块,包括:
拉取单元,用于通过所述ranger工具从所述hdfs和所述hive处设置的所述ranger插件处拉取所述策略集,所述策略集由所述ranger插件通过所述rangerapi获取。
可选的,所述系统保护资源包括所述hdfs的系统级别目录,所述用户保护资源包括所述当前账号对应的所述hdfs的用户级别目录、所述hive的数据库和数据表中的至少一种。
请参考图13,其示出了本申请一个示例性实施例提供的服务器的结构示意图。具体来讲:所述服务器1300包括中央处理单元(centralprocessingunit,cpu)1301、包括随机存取存储器(randomaccessmemory,ram)1302和只读存储器(read-onlymemory,rom)1303的系统存储器1304,以及连接系统存储器1304和中央处理单元1301的系统总线1305。所述服务器1300还包括帮助计算机设备内的各个器件之间传输信息的基本输入/输出(input/output,i/o)系统1306,和用于存储操作系统1313、应用程序1314和其他程序模块1315的大容量存储设备1307。
所述基本输入/输出系统1306包括有用于显示信息的显示器1308和用于用户输入信息的诸如鼠标、键盘之类的输入设备1309。其中所述显示器1308和输入设备1309都通过连接到系统总线1305的输入输出控制器1310连接到中央处理单元1301。所述基本输入/输出系统1306还可以包括输入输出控制器1310以用于接收和处理来自键盘、鼠标、或电子触控笔等多个其他设备的输入。类似地,输入输出控制器1310还提供输出到显示屏、打印机或其他类型的输出设备。
所述大容量存储设备1307通过连接到系统总线1305的大容量存储控制器(未示出)连接到中央处理单元1301。所述大容量存储设备1307及其相关联的计算机可读存储介质为服务器1300提供非易失性存储。也就是说,所述大容量存储设备1307可以包括诸如硬盘或者只读光盘(compactdiscread-onlymemory,cd-rom)驱动器之类的计算机可读存储介质(未示出)。
不失一般性,所述计算机可读存储介质可以包括计算机存储介质和通信介质。计算机存储介质包括以用于存储诸如计算机可读存储指令、数据结构、程序模块或其他数据等信息的任何方法或技术实现的易失性和非易失性、可移动和不可移动介质。计算机存储介质包括ram、rom、计算机存储器(erasableprogrammablereadonlymemor,eprom)、读写存储器(electricallyerasableprogrammablereadonlymemory,eeprom)、闪存或其他固态存储其技术,cd-rom、数字通用光盘(digitalversatiledisc,dvd)或其他光学存储、磁带盒、磁带、磁盘存储或其他磁性存储设备。当然,本领域技术人员可知所述计算机存储介质不局限于上述几种。上述的系统存储器1304和大容量存储设备1307可以统称为存储器。
存储器存储有一个或多个程序,一个或多个程序被配置成由一个或多个中央处理单元1301执行,一个或多个程序包含用于实现上述风机维护计划的生成方法的指令,中央处理单元1301执行该一个或多个程序实现上述各个方法实施例提供的风机维护计划的生成方法。
根据本申请的各种实施例,所述服务器1300还可以通过诸如因特网等网络连接到网络上的远程计算机设备运行。也即服务器1300可以通过连接在所述系统总线1305上的网络接口单元1311连接到网络1312,或者说,也可以使用网络接口单元1311来连接到其他类型的网络或远程计算机设备系统(未示出)。
所述存储器还包括一个或者一个以上的程序,所述一个或者一个以上程序存储于存储器中,所述一个或者一个以上程序包含用于进行本申请实施例提供的方法中由计算机设备所执行的步骤。
本申请实施例还提供了一种计算机可读存储介质,该计算机可读存储介质存储有至少一条指令,所述至少一条指令由所述处理器加载并执行以实现如上各个实施例所述的数据删除方法。
本申请实施例还提供了一种计算机程序产品,该计算机程序产品存储有至少一条指令,所述至少一条指令由所述处理器加载并执行以实现如上各个实施例所述的数据删除方法。
本领域技术人员应该可以意识到,在上述一个或多个示例中,本申请实施例所描述的功能可以用硬件、软件、固件或它们的任意组合来实现。当使用软件实现时,可以将这些功能存储在计算机可读存储介质中或者作为计算机可读存储介质上的一个或多个指令或代码进行传输。计算机可读存储介质包括计算机存储介质和通信介质,其中通信介质包括便于从一个地方向另一个地方传送计算机程序的任何介质。存储介质可以是通用或专用计算机能够存取的任何可用介质。
以上所述仅为本申请的可选实施例,并不用以限制本申请,凡在本申请的精神和原则之内,所作的任何修改、等同替换、改进等,均应包含在本申请的保护范围之内。