一种区块链权限管理方法及装置
技术领域
本申请涉及区块链领域,特别是涉及一种区块链权限管理方法及装置。
背景技术
区块链(blockchain)是一种将数据区块以顺序相连的方式组合成的一种链式数据结构,并以密码学方式保证的不可篡改和不可伪造的分布式账本。随着区块链技术的推广和应用,公开透明、不可篡改的特性受到行业认可,但区块链的使用门槛也比较高。
区块链的使用门槛之所以高是因为其旨在不可信网络上达成共识的策略。正是因为需要在不可信网络上达成共识,因此区块链对于接入区块链的账户权限管理比较严苛。
目前区块链包括公有链和联盟链,无论是公有链还是联盟链,均仅支持支持简单的权限管理。例如,公有链可以根据相关的写入权限确定策略,获取数据写入权限,无读取权限确定策略。联盟链可以基于证书等进行权限管理,可以进行对读取、写入、签名等简单权限的管理。而这些简单的权限无法满足实际应用中用户对权限控制的要求,例如,无法实现对数据业务表的查询等操作。
发明内容
本申请所要解决的技术问题是现有区块链仅支持简单的权限管理,无法满足用户对权限控制的要求,提供一种基于区块链权限管理方法及装置。
第一方面,本申请实施例提供了一种区块链权限管理方法,所述方法包括:
接收针对目标账户的接入请求;所述接入请求用于表征所述目标账户请求接入区块链;
获取第一序列化文件;所述第一序列化文件用于指示所述目标账户的第一账户身份与所述第一账户身份对应的第一账户权限;所述第一账户身份和第一账户权限是用户根据第一业务需求自主配置的;
将所述目标账户的标识、所述第一账户身份和所述第一账户权限写入智能合约中。
可选的,所述将所述目标账户的标识、所述第一账户身份和所述第一账户权限写入智能合约中,包括:
对所述第一序列化文件进行反序列化分析,得到所述第一账户身份和所述第一账户权限;
将所述目标账户的标识、所述第一账户身份和所述第一账户权限写入智能合约中。
可选的,所述方法还包括:
接收针对目标账户的数据操作请求;所述数据操作请求用于表示所述目标账户请求对区块链中的数据执行目标操作;
通过所述智能合约验证所述目标账户是否具备执行所述目标操作的权限;
若验证通过,允许所述目标账户执行所述目标操作。
可选的,所述方法还包括:
接收第二序列化文件;所述第二序列化文件用于指示所述目标账户的第二账户身份与第二账户身份对应的第二账户权限;所述第二账户身份和第二账户权限是用户根据第二业务需求自主配置的;
将所述目标账户的标识、所述第二账户身份和所述第二账户权限写入所述智能合约中;
所述第二账户身份的分类方式不同于所述第二账户身份的分类方式,和/或,所述第二账户权限的分类方式不同于所述第一账户权限的分类方式。
可选的,所述第一序列化文件,包括:
json格式文件,或者,xml格式文件。
第二方面,本申请实施例提供了一种区块链权限管理装置,所述装置包括:
第一接收单元,用于接收针对目标账户的接入请求;所述接入请求用于表征所述目标账户请求接入区块链;
第一获取单元,用于获取第一序列化文件;所述第一序列化文件用于指示所述目标账户的第一账户身份与所述第一账户身份对应的第一账户权限;所述第一账户身份和第一账户权限是用户根据第一业务需求自主配置的;
第一写入单元,用于将所述目标账户的标识、所述第一账户身份和所述第一账户权限写入智能合约中。
可选的,所述第一写入单元,具体用于:
对所述第一序列化文件进行反序列化分析,得到所述第一账户身份和所述第一账户权限;
将所述目标账户的标识、所述第一账户身份和所述第一账户权限写入智能合约中。
可选的,所述装置还包括:
第二接收单元,用于接收针对目标账户的数据操作请求;所述数据操作请求用于表示所述目标账户请求对区块链中的数据执行目标操作;
验证单元,用于通过所述智能合约验证所述目标账户是否具备执行所述目标操作的权限;
操作执行单元,用于若验证通过,允许所述目标账户执行所述目标操作。
可选的,所述装置还包括:
第三接收单元,用于接收第二序列化文件;所述第二序列化文件用于指示所述目标账户的第二账户身份与第二账户身份对应的第二账户权限;所述第二账户身份和第二账户权限是用户根据第二业务需求自主配置的;
第二写入单元,用于将所述目标账户的标识、所述第二账户身份和所述第二账户权限写入所述智能合约中;
所述第二账户身份的分类方式不同于所述第二账户身份的分类方式,和/或,所述第二账户权限的分类方式不同于所述第一账户权限的分类方式。
可选的,所述第一序列化文件,包括:
json格式文件,或者,xml格式文件。
与现有技术相比,本申请实施例具有以下优点:
本申请实施例提供了一种区块链权限管理方法及装置,所述方法包括:接收针对目标账户的接入请求;所述接入请求用于表征所述目标账户请求接入区块链;获取第一序列化文件;所述第一序列化文件用于指示所述目标账户的第一账户身份与所述第一账户身份对应的第一账户权限;所述第一账户身份和第一账户权限是用户根据第一业务需求自主配置的;将所述目标账户的标识、所述第一账户身份和所述第一账户权限写入智能合约中。由此可见,在本申请实施例中,当目标账户请求接入区块链时,用户例如管理员可以根据第一业务需求为所述目标业务自主配置第一账户身份和与第一账户权限,并将目标账户的第一账户身份以及第一账户权限写入的智能合约中。也就是说,在本申请实施例中,可以支持与业务匹配的账户权限配置,满足了用户对账户权限管理的需求,而不是如现有区块链那样,仅支持支持简单的权限管理。
附图说明
为了更清楚地说明本申请实施例或现有技术中的技术方案,下面将对实施例或现有技术描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本申请中记载的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。
图1为本申请实施例提供的一种区块链权限管理方法的流程示意图;
图2为本申请实施例提供的一种权限验证的方法的流程示意图;
图3为本申请实施例提供的一种修改账户权限的方法的流程示意图;
图4为本申请实施例提供的一种区块链权限管理装置的结构示意图。
具体实施方式
为了使本技术领域的人员更好地理解本申请方案,下面将结合本申请实施例中的附图,对本申请实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅是本申请一部分实施例,而不是全部的实施例。基于本申请中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都属于本申请保护的范围。
本申请的发明人经过研究发现,现有技术中,无论是公有链还是联盟链,均仅支持支持简单的权限管理。例如,公有链可以根据相关的写入权限确定策略,获取数据写入权限,无读取权限确定策略。联盟链可以基于证书等进行权限管理,可以进行对读取、写入、签名等简单权限的管理。而这些简单的权限无法满足实际应用中用户对权限控制的要求,例如,无法实现对数据业务表的查询等操作。
为了解决上述问题,本申请实施例提供了一种区块链权限管理方法及装置,所述方法包括:接收针对目标账户的接入请求;所述接入请求用于表征所述目标账户请求接入区块链;获取第一序列化文件;所述第一序列化文件用于指示所述目标账户的第一账户身份与所述第一账户身份对应的第一账户权限;所述第一账户身份和第一账户权限是用户根据第一业务需求自主配置的;将所述目标账户的标识、所述第一账户身份和所述第一账户权限写入智能合约中。由此可见,在本申请实施例中,当目标账户请求接入区块链时,用户例如管理员可以根据第一业务需求为所述目标业务自主配置第一账户身份和与第一账户权限,并将目标账户的第一账户身份以及第一账户权限写入的智能合约中。也就是说,在本申请实施例中,可以支持与业务匹配的账户权限配置,满足了用户对账户权限管理的需求,而不是如现有区块链那样,仅支持简单的权限管理。
下面结合附图,详细说明本申请的各种非限制性实施方式。
示例性方法
参见图1,该图为本申请实施例提供的一种区块链权限管理方法的流程示意图。
本申请实施例提供的区块链权限管理方法,可以应用于区块链***。可以理解的是,区块链***中可以包括很多节点,所述节点,可以为部署于内网的节点,也可以为部署于局域网的节点,还可以为部署于互联网中的节点,本申请实施例不做具体限定。本申请实施例提及的区块链***中的节点,可以以单个节点为单位接入区块链***,也可以以节点集群为单位接入区块链***,本申请实施例不做具体限定。
在本实施例中,所述方法例如可以通过以下步骤S101-S103实现。
S101:接收针对目标账户的接入请求,所述接入请求用于表征所述目标账户请求接入区块链。
在本申请实施例中,目标账户可以通过区块链***中的某一个节点请求接入区块链。
在本申请实施例中,当目标账户请求接入区块链时,可以首先向区块链***发送接入请求,以使得区块链***启动对目标账户的权限管理流程。
S102:获取第一序列化文件;所述第一序列化文件用于指示所述目标账户的第一账户身份与所述第一账户身份对应的第一账户权限;所述第一账户身份和第一账户权限是用户根据第一业务需求自主配置的。
在本申请实施例的一种实现方式中,当区块链***接收到所述接入请求之后,则后台可以选择生成提示消息,以提示管理员配置目标账户的权限。在本申请实施例的又一种实现方式中,当区块链***接收到所述接入请求之后,后台可以选择生成提示消息,以提示管理员忽略,为所述目标账户分配默认的账户身份和账户权限,本实例不做具体限定。
在本申请实施例中,管理员可以根据实际业务需求例如第一业务需求为目标账户配置第一账户身份和与该第一账户身份对应的第一账户权限。具体地,在本申请实施例中,所述管理员可以通过编辑体现所述第一账户身份和第一账户权限的第一序列化文件,为目标账户配置权限。
在本申请实施例中,所述第一账户身份可以用于表征所述目标账户的账户角色,所述第一账户身份例如可以包括集团、分公司、部分等中的任意一种。
在本申请实施例中,所述第一账户权限可以用于表示所述目标账户能够支持的业务处理类型,所述第一账户权限例如可以包括:审计权限、评级权限、交易权限、转账权限以及储蓄权限等等;所述第一账户权限也可以用于表征所述目标账户能够支持的数据操作,所述第一账户权限例如可以包括对区块链中的业务数据表的查询权限以及对区块链中业务数据表的写入权限等等。
本申请实施例不具体限定所述第一序列化文件,所述第一序列化文件例如可以为json格式文件,或者,xml格式文件。
S103:将所述目标账户的标识、所述第一账户身份和所述第一账户权限写入智能合约中。
在本申请实施例中,所述区块链***获取所述第一序列化文件之后,可以对所述第一序列化文件进行解析,以得到所述第一账户身份和第一账户权限,从而将所述目标账户的标识、所述第一账户身份和所述第一账户权限写入智能合约中。
在本申请实施例中,S103可以有多种实现方式。在一种可能的实现方式中,可以直接将所述第一序列化文件保存至智能合约中。在又一种实现方式中,可以对所述第一序列化文件进行反序列化分析,得到所述第一账户身份和所述第一账户权限,从而将所述目标账户的标识、所述第一账户身份和所述第一账户权限写入智能合约中。
在本申请实施例中,所述目标账户的标识可以用于唯一标识所述目标账户。本申请实施例不具体限定所述目标账户的标识,所述目标账户的标识例如可以包括所述目标账户的账户名称。
通过以上描述可知,本申请实施例提供的一种区块链权限管理方法,所述方法包括:接收针对目标账户的接入请求;所述接入请求用于表征所述目标账户请求接入区块链;获取第一序列化文件;所述第一序列化文件用于指示所述目标账户的第一账户身份与所述第一账户身份对应的第一账户权限;所述第一账户身份和第一账户权限是用户根据第一业务需求自主配置的;将所述目标账户的标识、所述第一账户身份和所述第一账户权限写入智能合约中。由此可见,在本申请实施例中,当目标账户请求接入区块链时,用户例如管理员可以根据第一业务需求为所述目标业务自主配置第一账户身份和与第一账户权限,并将目标账户的第一账户身份以及第一账户权限写入的智能合约中。也就是说,在本申请实施例中,可以支持与业务匹配的账户权限配置,满足了用户对账户权限管理的需求,而不是如现有区块链那样,仅支持支持简单的权限管理。
在本申请实施例中,如前文所述,目标账户的标识、所述第一账户身份和所述第一账户权限是存在于智能合约中的,当目标账户请求对区块链中的数据执行操作时,可以由所述智能合约验证所述目标账户的权限,以确定所述目标账户是否具备对所述数据执行相应操作的权限。
参见图2,该为本申请实施例提供的一种权限验证的方法的流程示意图。
本申请实施例提供的权限验证的方法,例如可以通过如下步骤S201-S203实现。
S201:接收针对目标账户的数据操作请求;所述数据操作请求用于表示所述目标账户请求对区块链中的数据执行目标操作。
本申请实施例不具体限定所述目标操作,所述目标操作例如可以包括对执行相应的业务,例如审计、评级、交易、转账、储蓄、对数据表的查询以及对数据表的写入操作中的任意一种或组合。
S202:通过所述智能合约验证所述目标账户是否具备执行所述目标操作的权限。
S203:若验证通过,允许所述目标账户执行所述目标操作。
关于S202-S203需要说明的是,在本申请实施例中,将权限验证与智能合约联系起来,利用智能合约对目标账户的权限进行验证,验证目标账户是否具备执行所述目标操作的权限。具体地,所述智能合约可以根据所述第一账户身份和第一账户权限,验证目标账户是否具备执行所述目标操作的权限。如果验证通过,则允许所述目标账户执行所述目标操作,若验证通过,可以拒绝所述数据操作请求,不允许所述目标账户执行所述目标操作。
在传统技术中,区块链***中账户的账户身份的分类方式和账户权限的分类方式一旦确定,则不可更改,例如最初将账户身份划分为“管理员”和“一般用户”两类身份,将账户权限划分为“可读”和“可写”两种权限,则账户身份只能在“管理员”和“一般用户”中选择,账户权限只能在“可读”和“可写”中选择,无法更改。但是在实际应用中,业务往往会发生改变,相应的若账户身份的分类方式和账户权限的分类方式不可改变,则可能不能适应变更后的业务。
鉴于此,在本申请实施例中,还可以支持对目标账户的账户身份的分类方式和账户权限的分类方式进行修改。
具体地,可参见图3,该图为本申请实施例提供的一种修改账户权限的方法的流程示意图。
所述方法例如可以通过如下步骤S301-S302实现。
S301:接收第二序列化文件;所述第二序列化文件用于指示所述目标账户的第二账户身份与第二账户身份对应的账户权限;所述第二账户身份和第二账户权限是用户根据第二业务需求自主配置的。
需要说明的是,本申请实施例中的第二序列化文件与第一序列化文件类似,所述第二序列化文件例如可以为json格式文件,或者,xml格式文件。不同的是,所述第一序列化文件用于指示所述目标账户的第一账户身份与第一账户身份对应的第一账户权限,而所述第二序列化文件用于指示所述目标账户的第二账户身份与第二账户身份对应的第二账户权限。
在本申请实施例中,所述第二账户身份是指修改后的账户身份,关于所述第二账户身份的描述,可以参考以上对于第一账户身份的描述部分,此处不再详述。
在本申请实施例中,所述第二账户权限是指修改后的账户权限,关于所述第二账户权限的描述,可以参考以上对于第一账户权限的描述部分,此处不再详述。
可以理解的是,在实际应用中,当业务需求发生改变时,目标账户的账户身份的分类方式和/或账户权限的分类方式可能发生改变,当业务需求未发生改变时,目标账户的账户身份的分类方式和/或账户权限的分类方式也可能发生改变。而第一账户身份和第一账户权限是根据第一业务需求确定的,发生改变之后的账户身份即第二账户身份以及发生改变之后的账户权限即第二账户权限,是根据第二业务需求确定的。因此,所述第一业务需求可以与第二业务需求相同,所述第一业务需求也可以与第二业务需求不同,本申请实施例不做具体限定。
在本申请实施例中,对目标账户的账户身份的分类方式和账户权限的分类方式进行修改时,考虑到在实际中,可能仅仅是账户身份的分类方式发生了改变,而对应的权限的分类方式并未发生改变;也有可能仅仅是账户权限的分类发生了改变,而账户身份的分类方式未发生改变;还有可能账户权限的分类方式和账户身份的分类方式均发生了改变。
可以理解的是,若仅仅是账户身份的分类方式发生了改变,则所述第一账户身份的分类方式不同于第二账户身份的分类方式,第一账户权限的分类方式与第二账户权限的分类方式不同。若仅仅是账户权限的分类方式发生了改变,则所述第一账户权限的分类方式不同于第二账户权限的分类方式,第一账户身份的分类方式与第二账户身份的分类方式相同。若账户权限的分类方式和账户身份的分类方式均发生了改变,则所述第一账户身份的分类方式不同于第二账户身份的分类方式,并且所述第一账户权限的分类方式不同于第二账户权限的分类方式。
S202:将所述目标账户的标识、所述第二账户身份和所述第二账户权限写入所述智能合约中。
S302的具体实现与S103类似,所述区块链***获取所述第二序列化文件之后,可以直接将所述第二序列化文件写入智能合约中,也可以对所述第二序列化文件进行解析,以得到所述第二账户身份和第二账户权限,从而将所述目标账户的标识、所述第一账户身份和所述第一账户权限写入智能合约中。
具体地,步骤S302在具体实现时,可以对所述第一序列化文件进行反序列化分析,得到所述第一账户身份和所述第一账户权限,从而将所述目标账户的标识、所述第一账户身份和所述第一账户权限写入智能合约中。
由此可见,利用本申请实施例的方案,不仅可以根据具体业务需求自主配置目标账户的账户身份和账户权限,还可以对目标账户的账户身份的分类方式和账户权限的分类方式进行变更,从而提升了区块链***对于权限管理的灵活性。
需要说明的是,在本申请实施例中,当目标账户的账户身份和账户权限发生改变时,若目标账户发起数据操作请求,则智能合约可以根据最新的账户身份和账户权限,验证所述目标账户的权限,以确定是否允许所述目标账户执行该数据操作请求指示的数据操作。
示例性设备
基于以上实施例提供的区块链权限管理方法,本申请实施例还提供了一种区块链权限管理装置,以下结合附图介绍该装置。
参见图4,该图为本申请实施例提供的一种区块链权限管理装置的结构示意图。
本申请实施例提供的区块链权限管理装置400,例如可以具体包括:
第一接收单元410、第一获取单元420和第一写入单元430。
第一接收单元410,用于接收针对目标账户的接入请求;所述接入请求用于表征所述目标账户请求接入区块链;
第一获取单元420,用于获取第一序列化文件;所述第一序列化文件用于指示所述目标账户的第一账户身份与所述第一账户身份对应的第一账户权限;所述第一账户身份和第一账户权限是用户根据第一业务需求自主配置的;
第一写入单元430,用于将所述目标账户的标识、所述第一账户身份和所述第一账户权限写入智能合约中。
可选的,所述第一写入单元430,具体用于:
对所述第一序列化文件进行反序列化分析,得到所述第一账户身份和所述第一账户权限;
将所述目标账户的标识、所述第一账户身份和所述第一账户权限写入智能合约中。
可选的,所述装置400还包括:
第二接收单元,用于接收针对目标账户的数据操作请求;所述数据操作请求用于表示所述目标账户请求对区块链中的数据执行目标操作;
验证单元,用于通过所述智能合约验证所述目标账户是否具备执行所述目标操作的权限;
操作执行单元,用于若验证通过,允许所述目标账户执行所述目标操作。
可选的,所述装置400还包括:
第三接收单元,用于接收第二序列化文件;所述第二序列化文件用于指示所述目标账户的第二账户身份与第二账户身份对应的第二账户权限;所述第二账户身份和第二账户权限是用户根据第二业务需求自主配置的;
第二写入单元,用于将所述目标账户的标识、所述第二账户身份和所述第二账户权限写入所述智能合约中;
所述第二账户身份的分类方式不同于所述第二账户身份的分类方式,和/或,所述第二账户权限的分类方式不同于所述第一账户权限的分类方式。
可选的,所述第一序列化文件,包括:
json格式文件,或者,xml格式文件。
由于所述装置400是与以上方法实施例提供的方法对应的装置,所述装置400的各个单元的具体实现,均与以上方法实施例为同一构思,因此,关于所述装置400的各个单元的具体实现,可以参考以上方法实施例的描述部分,此处不再赘述。
通过以上描述可知,本申请实施例提供的一种区块链权限管理装置,所述装置包括:第一接收单元、第一获取单元和第一写入单元。第一接收单元,用于接收针对目标账户的接入请求;所述接入请求用于表征所述目标账户请求接入区块链;第一获取单元,用于获取第一序列化文件;所述第一序列化文件用于指示所述目标账户的第一账户身份与所述第一账户身份对应的第一账户权限;所述第一账户身份和第一账户权限是用户根据第一业务需求自主配置的;第一写入单元,用于将所述目标账户的标识、所述第一账户身份和所述第一账户权限写入智能合约中。由此可见,在本申请实施例中,当目标账户请求接入区块链时,用户例如管理员可以根据第一业务需求为所述目标业务自主配置第一账户身份和与第一账户权限,并将目标账户的第一账户身份以及第一账户权限写入的智能合约中。也就是说,在本申请实施例中,可以支持与业务匹配的账户权限配置,满足了用户对账户权限管理的需求,而不是如现有区块链那样,仅支持简单的权限管理。
本领域技术人员在考虑说明书及实践这里公开的发明后,将容易想到本申请的其它实施方案。本申请旨在涵盖本申请的任何变型、用途或者适应性变化,这些变型、用途或者适应性变化遵循本申请的一般性原理并包括本公开未公开的本技术领域中的公知常识或惯用技术手段。说明书和实施例仅被视为示例性的,本申请的真正范围和精神由下面的权利要求指出。
应当理解的是,本申请并不局限于上面已经描述并在附图中示出的精确结构,并且可以在不脱离其范围进行各种修改和改变。本申请的范围仅由所附的权利要求来限制
以上所述仅为本申请的较佳实施例,并不用以限制本申请,凡在本申请的精神和原则之内,所作的任何修改、等同替换、改进等,均应包含在本申请的保护范围之内。