CN111695124A - 权限控制方法和装置、存储介质和电子设备 - Google Patents
权限控制方法和装置、存储介质和电子设备 Download PDFInfo
- Publication number
- CN111695124A CN111695124A CN202010421646.2A CN202010421646A CN111695124A CN 111695124 A CN111695124 A CN 111695124A CN 202010421646 A CN202010421646 A CN 202010421646A CN 111695124 A CN111695124 A CN 111695124A
- Authority
- CN
- China
- Prior art keywords
- authority
- user
- permission
- character string
- index value
- 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.)
- Withdrawn
Links
Images
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F21/00—Security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
- G06F21/60—Protecting data
- G06F21/604—Tools and structures for managing or administering access control systems
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F21/00—Security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
- G06F21/60—Protecting data
- G06F21/62—Protecting access to data via a platform, e.g. using keys or access control rules
- G06F21/6218—Protecting 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
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F2221/00—Indexing scheme relating to security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
- G06F2221/21—Indexing 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/2141—Access rights, e.g. capability lists, access control lists, access tables, access matrices
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Computer Security & Cryptography (AREA)
- Bioethics (AREA)
- General Health & Medical Sciences (AREA)
- Computer Hardware Design (AREA)
- Health & Medical Sciences (AREA)
- Software Systems (AREA)
- Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Automation & Control Theory (AREA)
- Databases & Information Systems (AREA)
- Storage Device Security (AREA)
- Document Processing Apparatus (AREA)
Abstract
本公开涉及一种权限控制方法和装置、存储介质和电子设备,所述方法包括:获取用户对应的权限字符串,所述权限字符串的每一个字符位置对应一种权限;确定所述权限字符串中的有效位置,其中,所述有效位置对应的权限为所述用户具备的权限。
Description
技术领域
本公开涉及计算机技术领域,具体地,涉及一种权限控制方法和装置、存储介质和电子设备。
背景技术
Saas(Software-as-a-Service,软件服务)通常基于一套标准软件系统为成百上千的不同客户提供服务。这要求SaaS服务能够支持不同租户之间数据和配置的隔离,从而保证每个租户数据的安全与隐私,以及用户对诸如界面、业务逻辑、数据结构等的个性化需求。其中,为了使用户与用户之间的服务内容互不干扰,使用“权限”对用户的可访问内容进行限制,也就是说,用户的权限决定了用户可访问的资源及用户可进行的操作内容。从而,权限的存储是Saas系统的重要一环。
在传统的Saas系统中,用户关联多个角色,角色关联多项权限,系统中存储一个用户的权限内容时,需要以关系数据的形式存储这种关联关系,而一个关联关系占用一部分存储空间,随着系统的业务内容的丰富以及用户的增多,需要大量的存储空间来存储这种关系数据,且调用权限时也需要对大量的关系数据进行读取和认证,导致系统对用户权限的存储、使用效率较低。
发明内容
本公开的目的是提供一种权限控制方法和装置、存储介质和电子设备,以解决上述的技术问题。
为了实现上述目的,本公开的第一方面,提供一种权限控制方法,包括:获取用户对应的权限字符串,所述权限字符串的每一个字符位置对应一种权限;确定所述权限字符串中的有效位置,其中,所述有效位置对应的权限为所述用户具备的权限。
可选地,所述用户的权限字符串是通过如下方式生成的:基于权限类型与索引值的预设对应关系,确定至少一个目标权限类型对应的至少一个第一索引值,所述目标权限类型是待授权给所述用户的权限的类型;确定至少一个所述第一索引值在预设字符长度的字符串中的至少一个第一位置,并将至少一个所述第一位置上的字符设置为有效字符,其他位置上的字符设置为无效字符,得到所述用户的权限字符串。
可选地,所述索引值为十进制数,所述权限字符串为二进制数,相应地,针对每一个所述索引值,采用以下方式确定其在字符串中的位置:用预设的字节格式的字节长度对所述索引值取整,以得到所述索引值的字节位置;用预设的字节格式的字节长度对所述索引值取余,以得到所述索引值在所述字节位置中的字符位置。
可选地,针对每一种角色,预先存储有对应的角色权限字符串,相应地,所述用户的权限字符串是通过如下方式得到的:确定所述用户对应的目标角色所对应的角色权限字符串;对所述用户对应的所有所述目标角色所对应的角色权限字符串求并集,得到所述用户的权限字符串。
可选地,所述方法还包括:获取所述用户的新的权限配置,所述新的权限配置包括新的权限类型和/或新的角色信息;对所述用户当前的权限字符串与所述新的权限配置对应的权限字符串求并集,得到所述用户的新的权限字符串。
可选地,在所述获取用户对应的权限字符串之前,包括:响应于用户的操作请求,确定所述操作请求需要的操作权限类型;基于权限类型与索引值的预设对应关系,确定所述操作权限类型对应的第二索引值;所述确定所述权限字符串中的有效位置,还包括:确定所述第二索引值在所述用户的权限字符串中对应的的第二位置是否为有效位置;所述方法还包括:在所述第二位置为有效位置的情况下,执行对应所述操作请求的操作。
可选地,所述响应于用户的操作请求,确定所述操作请求需要的操作权限类型,包括:响应于用户的操作请求,确定所述操作请求对应的目标资源;基于资源与权限类型的预设对应关系,确定所述目标资源对应的权限类型作为所述操作权限类型。
本公开的第二方面,提供一种权限控制装置,包括:获取模块,用于获取用户对应的权限字符串,所述权限字符串的每一个字符位置对应一种权限;确定模块,用于确定所述权限字符串中的有效位置,其中,所述有效位置对应的权限为所述用户具备的权限。
可选地,所述装置还包括生成模块,用于基于权限类型与索引值的预设对应关系,确定至少一个目标权限类型对应的至少一个第一索引值,所述目标权限类型是待授权给所述用户的权限的类型;确定至少一个所述第一索引值在预设字符长度的字符串中的至少一个第一位置,并将至少一个所述第一位置上的字符设置为有效字符,其他位置上的字符设置为无效字符,得到所述用户的权限字符串。
可选地,所述确定模块,用于针对每一个所述索引值,采用以下方式确定其在字符串中的位置:用预设的字节格式的字节长度对所述索引值取整,以得到所述索引值的字节位置;用预设的字节格式的字节长度对所述索引值取余,以得到所述索引值在所述字节位置中的字符位置;其中,所述索引值为十进制数,所述权限字符串为二进制数。
可选地,针对每一种角色,预先存储有对应的角色权限字符串,所述生成模块,还用于确定所述用户对应的角色对应的角色权限字符串;在所述用户对应一种角色的情况下,将该种角色对应的角色权限字符串作为所述用户的权限字符串;在所述用户对应多种角色的情况下,对该多种角色对应的角色权限字符串的求并集,得到所述用户的权限字符串。
可选地,所述装置还包括更新模块,用于获取所述用户的新的权限配置,所述新的权限配置包括新的权限类型和/或新的角色信息;对所述用户当前的权限字符串与所述新的权限配置对应的权限字符串求并集,得到所述用户的新的权限字符串。
可选地,所述装置还包括:处理模块,用于响应于用户的操作请求,确定所述操作请求需要的操作权限类型;基于权限类型与索引值的预设对应关系,确定所述操作权限类型对应的第二索引值;所述确定模块,还用于确定所述第二索引值在所述用户的权限字符串中对应的的第二位置是否为有效位置;所述装置还包括执行模块,用于在所述第二位置为有效位置的情况下,执行对应所述操作请求的操作。
可选地,所述处理模块,用于响应于用户的操作请求,确定所述操作请求对应的目标资源;基于资源与权限类型的预设对应关系,确定所述目标资源对应的权限类型作为所述操作权限类型。
本公开的第三方面,提供一种计算机可读存储介质,其上存储有计算机程序,该程序被处理器执行时实现本公开第一方面中任一项所述方法的步骤。
本公开的第四方面,提供一种电子设备,包括存储器,其上存储有计算机程序;处理器,用于执行所述存储器中的所述计算机程序,以实现本公开第一方面中任一项所述方法的步骤。
通过上述技术方案,通过确定权限字符串中的有效位置,可以确定用户具备的权限,这样,一个用户的权限信息可以以一条字符串的形式存储,而将用户的权限存为字符串的形式与传统权限控制方法中用户、角色及权限三者之间的关联关系相比,所需的存储空间更小且查找权限更加方便快捷,提升了用户权限控制的效率。
本公开的其他特征和优点将在随后的具体实施方式部分予以详细说明。
附图说明
附图是用来提供对本公开的进一步理解,并且构成说明书的一部分,与下面的具体实施方式一起用于解释本公开,但并不构成对本公开的限制。在附图中:
图1是一种传统的Saas系统使用的权限控制方法的示意图。
图2是根据一示例性公开实施例示出的一种权限控制方法的流程图。
图3是根据一示例性公开实施例示出的一种权限字符串的示意图。
图4是根据一示例性公开实施例示出的一种权限存储方法的流程图。
图5是根据一示例性公开实施例示出的一种权限存储方法的流程图。
图6是根据一示例性公开实施例示出的一种权限使用方法的流程图。
图7是根据一示例性公开实施例示出的一种权限控制装置的框图。
图8是根据一示例性公开实施例示出的一种电子设备的框图。
具体实施方式
以下结合附图对本公开的具体实施方式进行详细说明。应当理解的是,此处所描述的具体实施方式仅用于说明和解释本公开,并不用于限制本公开。
本公开涉及二进制的数位算法,根据计算机领域的常用数据表示模式,在本公开中,若无特别解释,“有效字符”可理解为字符“1”,“无效字符”可理解为字符“0”,但是,这种理解方式不应对本公开造成限制,本领域技术人员应知悉,在执行本公开的方案时,“有效字符”也可以为“0”,对应的,“无效字符”也可以为“1”。
下面先对传统的Saas系统采用的权限控制方法进行说明。
图1所示的是一种传统的Saas系统所使用的权限控制方法的示意图,如图1所示,若共有3个用户(用户1、用户2、用户3),其中,用户1对应两个角色(角色a、角色b),用户2对应三个角色(角色a、角色b、角色c),其中,用户1和用户2同时具有角色a和角色b两个相同角色,用户3对应两个角色(角色d、角色e),且角色a和角色b每个角色具备4种预设权限(a1至a4,b1至b4),角色c、角色d和角色e每个角色具备2种预设权限(c1、c2,……,e1、e2),则每个用户与每个角色之间的关联关系需要占用一条存储数据,每个角色与每个预设权限之间的关联关系需要占用一条存储数据,则针对用户1,需要存储2条用户与角色的关联关系,及8条角色与预设权限之间的关联关系,针对用户2,需要存储3条用户与角色之间的关联关系,及10条角色与预设权限之间的关联关系(其中有8条与用户1重合),针对用户3需要存储2条用户与角色的关联关系,及4条角色与预设权限之间的关联关系,在这个仅有3个用户、14条预设权限的系统中,一共需要存储21条关联关系来记录所有用户的权限。而随着系统中权限和用户的增多,需要更多的空间来存储用户的权限。
图2是根据一示例性公开实施例示出的一种权限控制方法的流程图。如图2所示,该方法包括以下步骤:
S21、获取用户对应的权限字符串,所述权限字符串的每一个字符位置对应一种权限。
其中,用户与权限字符串的对应关系可以以存储位置的方式决定,例如,将用户的权限字符串存入用户专属的文件位置,或作为用户数据的一部分存入用户的固有数据中;用户与权限字符的对应关系还可以以在权限字符串中添加用户的标志编号的形式存储,例如,将字符串中的前几字节作为用户的编号字节,将用户的标志编号以二进制的方式重新编码,并存入该编号字节中。上述两种方式仅作为将用户与权限字符串关联的两种可能的示例,本公开不对如何将用户及权限字符串关联进行限制。
在二进制中,仅有0和1两种字符(或者,称为有效字符和无效字符),而对用户的权限状态而言,也只有“具备”和“不具备”两种状态,因此,可以将用户的权限状态以二进制编码的形式存储,且一个字符位可以对应一种权限。
值得说明的是,系统中权限的总量与权限字符串的总位数并不一定需要完全相同,权限字符串中用于表示权限状态的字符位的总位数可以大于或等于权限总量。例如,若系统中有400种权限时,该权限字符串中用于表示权限状态的字符位可以是400位,也可以是408位、440位等任意大于400的值,其他没有具体权限占用的字符位的取值可以设定为无效字符。若该权限字符串中用于表现权限状态的字符位高于权限总量时,在后续使用过程中,若系统中需要新增一种与其他权限无关的新权限时,不必改变原有的字符串的存储模式,只需要将新增的权限在字符串中定位,(例如,若原有权限是400种,共在权限字符串中编码至第400位,则可以将新的权限定位至第401位),并启用该字符位,将具有该权限的用户的权限字符串的该字符位更改为有效字符,则完成了一项新权限的新增。
在一种可能的实施方式中,权限字符串中的字符位置与权限的对应关系,可以以索引值的方式预存。即,系统中预存有索引值和具体权限的对应关系,例如,索引值1可以对应权限“新建订单”,索引值2可以对应权限“修改订单”,索引值3可以对应权限“删除订单”,值得说明的是,在具体使用时,由于系统调用权限时可以直接通过权限的编码进行调用,而不需确定权限的具体名称,因此,在存储权限与索引值的对应关系时,也可以不对权限进行具体命名,例如,可以以索引值1对应权限s9u77,索引值2对应权限w566k的形式存储索引值和权限的对应关系(其中,s9u77和w566k为权限的具体编码)。
索引值是十进制数字,而权限字符串采用二进制的方式保存,则通过十进制与二进制的以预设算法进行转化,可以对索引值进行定位。具体的,可以以以下的方式定位一个索引值:用预设的字节格式的字节长度对所述索引值取整,以得到所述索引值的字节位置;用预设的字节格式的字节长度对所述索引值取余,以得到所述索引值在所述字节位置中的字符位置。
其中,预设的字节格式通常是8位制,该字节长度通常为8。示例地,对索引值1而言,用8对1取整得0,用8对1取余得1,则索引值1在权限字符串中的位置应当为“第0字节的第1位”;对索引值246而言,用8对246取整得30,用8对246取余得6,则索引值246在权限字符串中的位置应当为“第30字节的第6位”;对索引值0而言,用8对0取整得0,用8对0取余得0,则索引值0在权限字符串中的位置应当为“第0字节的第0位”,其中,“第0字节”表现为byte[0],实际上在权限字符串中的排序为第一个字节,“第30字节”表现为byte[30],实际在权限字符串中的排序为第31个字节,并且,在字节中的“第0位”实际在字节中的具体排序为第1个bit位。值得说明的是,上述字节的定位方式是建立在“权限字符串从第0字节的第0位起即是用于表现权限状态”的情况下进行的,若权限字符串中,有其他信息占用了靠前字节,例如,若前4字节用于表现用户的编码,则索引值对应的字节位置也需要向后顺移对应数量的字节。
在传统计算机领域,预设字节格式通常是8位制,也就是说,在通常情况下,一个字节具有从“第0位”至“第7位”共计8个字符位置。但是,不排除一些系统使用其他位制的字节格式,本公开对具体使用的字节格式不做限制。
作为一种可能的实施方式,用户的权限字符串是通过下述方式生成的:
基于权限类型与索引值的预设对应关系,确定至少一个目标权限类型对应的至少一个第一索引值,所述目标权限类型是待授权给所述用户的权限的类型;确定至少一个所述第一索引值在预设字符长度的字符串中的至少一个第一位置,并将至少一个所述第一位置上的字符设置为有效字符,其他位置上的字符设置为无效字符,得到所述用户的权限字符串。
作为一种可能的实施方式,用户的权限字符串是通过下述方式生成的:
针对每一种角色,预先存储有对应的角色权限字符串。确定所述用户对应的目标角色所对应的角色权限字符串;对所述用户对应的所有所述目标角色所对应的角色权限字符串求并集,得到所述用户的权限字符串。
作为一种可能的实施方式,当需要为用户新增权限时,可以获取所述用户的新的权限配置,所述新的权限配置包括新的权限类型和/或新的角色信息,对所述用户当前的权限字符串与所述新的权限配置对应的权限字符串求并集,得到所述用户的新的权限字符串。
相应的,当需要撤销用户的某项已具备权限或删除用户的某项角色时,可以确定该权限/角色对应的权限字符串,并用原有的权限字符串减去该待删除的权限字符串,得到用户新的权限字符串。
S22、确定所述权限字符串中的有效位置,其中,所述有效位置对应的权限为所述用户具备的权限。
图3是根据一示例性公开实施例示出的一种权限字符串的示意图。如图3所示,该权限字符串为[01010000][10110010][11001001],一共有byte[0]至byte[2]三个字节,分别为byte[0]:[01010000],byte[1]:[10110010],byte[2]:[11001001],每个字节有8位字符,共计24个字符位,可以存储24项权限。其中,字符位为1的表示用户具备该位置对应的权限,字符位为0的表示用户不具备该位置对应的权限。其中,索引值与字符位置的对应关系标注在图中。
在确定权限字符串中的有效位置时,可以有两种方式:
方式一:确定权限字符串中所有的有效位置,以确定用户具备的所有权限。
也就是说,通过确定所有表现为1的字符位置,并确定其对应的索引值,再通过索引值与权限类型的对应关系,即可以确定用户具备的所有权限。
方式二:通过索引值确定权限字符串中特定位置的字符是否为有效字符,以确定用户是否具备特定的权限。
也就是说,当涉及到查看用户是否具备某一项或某几项特定的权限时,可以先通过权限类型和索引值的对应关系,确定这(些)权限对应的索引值,并通过定位算法对索引值进行定位,确定索引值对应的字符位置上的字符是否为有效字符,从而可以确定该用户是否具有该权限。
作为一种可能的实施方式,本方法还可以响应于用户的操作请求,确定所述操作请求需要的操作权限类型,并基于权限类型与索引值的预设对应关系,确定所述操作权限类型对应的第二索引值,确定所述第二索引值在所述用户的权限字符串中对应的的第二位置是否为有效位置,在所述第二位置为有效位置的情况下,执行对应所述操作请求的操作。
其中,在确定所述操作请求需要的操作权限类型时,可以采用以下方式:确定所述操作请求对应的目标资源;基于资源与权限类型的预设对应关系,确定所述目标资源对应的权限类型作为所述操作权限类型。
通过上述技术方案,通过确定权限字符串中的有效位置,可以确定用户具备的权限,这样,一个用户的权限信息可以以一条字符串的形式存储,而将用户的权限存为字符串的形式与传统权限控制方法中用户、角色及权限三者之间的关联关系相比,所需的存储空间更小且查找权限更加方便快捷,提升了用户权限控制的效率。
图4是根据一示例性公开实施例示出的一种权限存储方法的流程图。本方法可以作为图2对应的实施例中的一种可能的实施方式进行实行,如图4所示,该方法包括以下步骤:
S41、基于权限类型与索引值的预设对应关系,确定至少一个目标权限类型对应的至少一个第一索引值,所述目标权限类型是待授权给所述用户的权限的类型。
其中,权限类型和索引值的预设对应关系可以以数据字典的形式存储,并可以根据系统的更新而更新替换;该数据字典可以是数据表格的形式,也可以是其他形式,本公开对此不做限制。
值得说明的是,由于一个用户对应可能不止一个权限,则在生成用户的权限字符串时,可以获取该用户的所有待授权的权限类型,并找到该用户的所有待授权权限所对应的所有第一索引值。
例如,用户有三个待授权的权限,分别为“新建订单”、“修改订单”和“删除订单”,分别对应的是索引值10、11和12,则有三个第一索引值,分别为索引值10、索引值11和索引值12。
S42、确定至少一个所述第一索引值在预设字符长度的字符串中的至少一个第一位置,并将至少一个所述第一位置上的字符设置为有效字符,其他位置上的字符设置为无效字符,得到所述用户的权限字符串。
其中,可以以预设的定位算法计算第一索引值对应的第一位置,该预设的定位算法可以是用预设的字节格式的字节长度对所述索引值取整,以得到所述索引值的字节位置,用预设的字节格式的字节长度对所述索引值取余,以得到所述索引值在所述字节位置中的字符位置。其中,预设的字节格式通常是8位制,该字节长度通常为8。示例的,第一索引值10、11和12对应的第一位置分别为“第1字节的第2位”“第1字节的第3位”和“第1字节的第4位”,假定权限字符串的预设长度为三个字节共24位,则用户的权限字符串则为[00000000](byte[0])[00111000](byte[1])[00000000](byte[2]),其中,byte[0]为第0字节,byte[1]为第1字节。
作为一种可能的实施方式,在生成了权限字符串之后,若需要为用户新增新的权限配置,则可以对所述用户当前的权限字符串与所述新的权限配置对应的权限字符串求并集,得到所述用户的新的权限字符串。
例如,若用户新增新的权限“查找订单”,该权限的索引值为13,通过预设定位算法得出该权限对应的位置为“第1字节的第5位”则可以确定该新增权限对应的字符串为[00000000][00000100][00000000],则用该字符串与用户当前的字符串([00000000][00111000][00000000])取并集,得到用户的新的权限字符串为[00000000][00111100][00000000]。
作为一种可能的实施方式,还可以直接将用户当前的字符串中的待新增权限对应的字符位修改为有效字符,以完成权限的新增。
通过上述技术方案,可以将用户的权限信息以一条字符串的形式存储,与传统权限控制方法中用户、角色及权限三者之间的关联关系相比,字符串所需的存储空间更小且查找权限更加方便快捷,提升了用户权限控制的效率。
图5是根据一示例性公开实施例示出的一种权限存储方法的流程图。本方法可以作为图2对应的实施例中的一种可能的实施方式进行实行。其中,针对每一种角色,预先存储有对应的角色权限字符串。如图5所示,该方法包括以下步骤:
S51、确定所述用户对应的目标角色所对应的角色权限字符串。
其中,角色对应的角色权限字符串可以以“特殊用户”的形式存储,并不直接与用户数据相关联,只在需要生成、更新用户权限信息时进行调用。
角色是系统中的一种对权限集合的称谓,每种角色对应预设的权限。例如,角色“采购员”可以对应预设的权限“新建订单”“修改订单”“删除订单”“查看订单”“提交发票”等权限,角色“会计员”可以对应预设的权限“查看发票”“存储发票”“新建表单”等权限。
例如,系统中共有4个角色,每个角色分别有自己的角色权限字符串,假定权限字符串共2个字节16个字符位,角色a的角色权限字符串可以为[01001001][01001001],角色b的角色权限字符串可以为[00101100][01110000],角色c的角色权限字符串可以为[00010000][11010000],角色d的角色权限字符串可以为[11111111][00000001]。
S52、对所述用户对应的所有所述目标角色所对应的角色权限字符串求并集,得到所述用户的权限字符串。
在实际生活中,一个用户可以对应一个角色,也可以对应多个角色,例如,一个用户可以同时是“管理员”和“销售员”,也可以只是“会计员”。因此,在本方法中,一个用户可以对应一个目标角色,也可以对应多个目标角色。
当用户对应一个目标角色时,可以将该目标角色的角色权限字符串作为用户的权限字符串(可以理解为,用目标角色的权限字符串与空集求并集),例如,当用户对应一个角色c,而角色c对应的权限字符串为[00010000][11010000],则用户的权限字符串即为[00010000][11010000]。
当用户对应多个目标角色时,可以将多个目标角色的多个角色权限字符串求并集,将结果作为用户的权限字符串。例如,用户“张三”对应角色a和角色b,角色a的角色权限字符串为[01001001][01001001],角色b的角色权限字符串为[00101100][01110000],则“张三”的权限字符串为[01001001][01001001]与[00101100][01110000]的并集(对二进制数的并集的求取方式与二进制加法的方式相同),为[01101101][01111001]。
作为一种可能的实施方式,在生成了权限字符串之后,若需要为用户新增新的权限配置,则可以对所述用户当前的权限字符串与所述新的权限配置对应的权限字符串求并集,得到所述用户的新的权限字符串。
例如,若用户“张三”新增新的权限“调整等级”,该权限的索引值为14,通过预设定位算法得出该权限对应的位置为“第1字节的第6位”则可以确定该新增权限对应的字符串为[00000000][00000010],则用该字符串与用户“张三”当前的权限字符串([01101101][01111001])取并集,得到用户的新的权限字符串为[01101101][01111011]。
作为一种可能的实施方式,还可以直接将用户当前的字符串中的待新增权限对应的字符位修改为有效字符,以完成权限的新增,即,直接将“张三”的当前权限字符串的第1字节的第6位修改为有效字符。
该新的权限配置还可以是新的角色,例如,用户“张三”升职为管理人员,新增了角色d“管理员”,则可以将张三当前的权限字符串([01101101][01111001])与角色d的角色权限字符串([11111111][00000001])求并集,得到用户“张三”的新的权限字符串为[11111111][01111001]。
通过上述技术方案,可以将用户的权限信息以一条字符串的形式存储,与传统权限控制方法中用户、角色及权限三者之间的关联关系相比,字符串所需的存储空间更小且查找权限更加方便快捷,提升了用户权限控制的效率。
图6是根据一示例性公开实施例示出的一种权限使用方法的流程图。本方法可以作为图2对应的实施例中的一种可能的实施方式进行实行,如图6所示,所述方法包括以下步骤:
S61、响应于用户的操作请求,确定所述操作请求需要的操作权限类型。
例如,当用户进行了“删除订单”的操作时,可以该操作需要的操作权限类型为“删除订单”权限。
值得说明的是,在实际使用中,可以不对权限类型进行命名,而使用编号的形式表现权限。例如,用户进行了“删除订单”的操作时,确定该操作需要的权限类型为权限“s11d”。
考虑到用户进行一项操作时,可能涉及一项以上的权限,因此,在一种可能的实施方式中,可以响应于用户的操作请求,确定所述操作请求对应的目标资源,并基于资源与权限类型的预设对应关系,确定所述目标资源对应的权限类型作为所述操作权限类型。
该资源与权限类型的预设对应关系可以以数据字典的形式存储,并可以根据系统的更新而更新替换;该数据字典可以是数据表格的形式,也可以是其他形式,本公开对此不做限制,该资源与权限类型的预设对应关系还可以在系统中与“权限类型和索引值的预设对应关系”存入同一数据字典中,并共同更新。
例如,当用户访问“客户联系方式”资源时,确定该资源对应的权限类型为“查看客户”“查看联系方式”“联系客户”三项,则可以确定该项操作对应的操作权限类型为上述的三种权限类型。
S62、基于权限类型与索引值的预设对应关系,确定所述操作权限类型对应的第二索引值。
其中,权限类型和索引值的预设对应关系可以以数据字典的形式存储,并可以根据系统的更新而更新替换;该数据字典可以是数据表格的形式,也可以是其他形式,本公开对此不做限制。
S63、确定所述第二索引值在所述用户的权限字符串中对应的的第二位置是否为有效位置。
其中,可以以预设的定位算法计算第二索引值对应的第二位置,该预设的定位算法可以是用预设的字节格式的字节长度对所述索引值取整,以得到所述索引值的字节位置,用预设的字节格式的字节长度对所述索引值取余,以得到所述索引值在所述字节位置中的字符位置。其中,预设的字节格式通常是8位制,该字节长度通常为8。示例的,若该第二索引值共有两个,分别为14和19,则可以确定该第二位置为“第1字节的第6位”和“第2字节的第1位”。
在操作请求所需的操作权限类型包括1个权限时,只需要确定该1个权限对应的第二位置是否为有效字符。
在操作请求所需的操作权限为具有“权限1”或“权限2”时,可以确定“权限1”和“权限2”分别对应的第二位置上,是否有任意一位为有效字符。
在操作请求所需的操作权限为具有“权限1”且具有“权限2”时,可以确定“权限1”和“权限2”分别对应的第二位置上,是否都为有效字符。
S64、在所述第二位置为有效位置的情况下,执行对应所述操作请求的操作。
值得说明的是,当操作请求对应一项权限时,该“第二位置为有效位置”是指该项权限对应的第二位置上为有效字符;当操作请求对应多项权限中的任意一者时,该“第二位置为有效位置”为该多项权限所对应的第二位置上的任意一个位置为有效字符;当操作请求对应多项权限中的所有权限时,该“第二位置为有效位置”为多项权限对应的所有的第二位置上是否都为有效字符。
通过上述技术方案,在使用权限时,不用调用用户拥有的所有权限进行循环匹配,而是直接查找操作对应的权限所对应的字符位上是否为有效字符,提升了权限使用时的效率,并且,用户的权限信息以一条字符串的形式存储,与传统权限控制方法中用户、角色及权限三者之间的关联关系相比,字符串所需的存储空间更小且查找权限更加方便快捷,提升了用户权限控制的效率。
图7是根据一示例性公开实施例示出的一种权限控制装置的框图。如图7所示,所述装置700包括获取模块710和确定模块720。
其中,获取模块710,用于获取用户对应的权限字符串,所述权限字符串的每一个字符位置对应一种权限。
确定模块720,用于确定所述权限字符串中的有效位置,其中,所述有效位置对应的权限为所述用户具备的权限。
可选地,所述装置还包括生成模块,用于基于权限类型与索引值的预设对应关系,确定至少一个目标权限类型对应的至少一个第一索引值,所述目标权限类型是待授权给所述用户的权限的类型;确定至少一个所述第一索引值在预设字符长度的字符串中的至少一个第一位置,并将至少一个所述第一位置上的字符设置为有效字符,其他位置上的字符设置为无效字符,得到所述用户的权限字符串。
可选地,所述确定模块,用于针对每一个所述索引值,采用以下方式确定其在字符串中的位置:用预设的字节格式的字节长度对所述索引值取整,以得到所述索引值的字节位置;用预设的字节格式的字节长度对所述索引值取余,以得到所述索引值在所述字节位置中的字符位置;其中,所述索引值为十进制数,所述权限字符串为二进制数。
可选地,针对每一种角色,预先存储有对应的角色权限字符串,所述生成模块,还用于确定所述用户对应的角色对应的角色权限字符串;在所述用户对应一种角色的情况下,将该种角色对应的角色权限字符串作为所述用户的权限字符串;在所述用户对应多种角色的情况下,对该多种角色对应的角色权限字符串的求并集,得到所述用户的权限字符串。
可选地,所述装置还包括更新模块,用于获取所述用户的新的权限配置,所述新的权限配置包括新的权限类型和/或新的角色信息;对所述用户当前的权限字符串与所述新的权限配置对应的权限字符串求并集,得到所述用户的新的权限字符串。
可选地,所述装置还包括:处理模块,用于响应于用户的操作请求,确定所述操作请求需要的操作权限类型;基于权限类型与索引值的预设对应关系,确定所述操作权限类型对应的第二索引值;所述确定模块,还用于确定所述第二索引值在所述用户的权限字符串中对应的的第二位置是否为有效位置;所述装置还包括执行模块,用于在所述第二位置为有效位置的情况下,执行对应所述操作请求的操作。
可选地,所述处理模块,用于响应于用户的操作请求,确定所述操作请求对应的目标资源;基于资源与权限类型的预设对应关系,确定所述目标资源对应的权限类型作为所述操作权限类型。
关于上述实施例中的装置,其中各个模块执行操作的具体方式已经在有关该方法的实施例中进行了详细描述,此处将不做详细阐述说明。
通过上述技术方案,通过确定权限字符串中的有效位置,可以确定用户具备的权限,这样,一个用户的权限信息可以以一条字符串的形式存储,而将用户的权限存为字符串的形式与传统权限控制方法中用户、角色及权限三者之间的关联关系相比,所需的存储空间更小且查找权限更加方便快捷,提升了用户权限控制的效率。
图8是根据一示例性实施例示出的一种电子设备800的框图。例如,电子设备800可以被提供为一服务器。参照图8,电子设备800包括处理器822,其数量可以为一个或多个,以及存储器832,用于存储可由处理器822执行的计算机程序。存储器832中存储的计算机程序可以包括一个或一个以上的每一个对应于一组指令的模块。此外,处理器822可以被配置为执行该计算机程序,以执行上述的权限控制方法。
另外,电子设备800还可以包括电源组件826和通信组件850,该电源组件826可以被配置为执行电子设备800的电源管理,该通信组件850可以被配置为实现电子设备800的通信,例如,有线或无线通信。此外,该电子设备800还可以包括输入/输出(I/O)接口858。电子设备800可以操作基于存储在存储器832的操作系统,例如Windows ServerTM,Mac OSXTM,UnixTM,LinuxTM等等。
在另一示例性实施例中,还提供了一种包括程序指令的计算机可读存储介质,该程序指令被处理器执行时实现上述的权限控制方法的步骤。例如,该计算机可读存储介质可以为上述包括程序指令的存储器832,上述程序指令可由电子设备800的处理器822执行以完成上述的权限控制方法。
在另一示例性实施例中,还提供一种计算机程序产品,该计算机程序产品包含能够由可编程的装置执行的计算机程序,该计算机程序具有当由该可编程的装置执行时用于执行上述的权限控制方法的代码部分。
以上结合附图详细描述了本公开的优选实施方式,但是,本公开并不限于上述实施方式中的具体细节,在本公开的技术构思范围内,可以对本公开的技术方案进行多种简单变型,这些简单变型均属于本公开的保护范围。
另外需要说明的是,在上述具体实施方式中所描述的各个具体技术特征,在不矛盾的情况下,可以通过任何合适的方式进行组合,为了避免不必要的重复,本公开对各种可能的组合方式不再另行说明。
此外,本公开的各种不同的实施方式之间也可以进行任意组合,只要其不违背本公开的思想,其同样应当视为本公开所公开的内容。
Claims (10)
1.一种权限控制方法,其特征在于,包括:
获取用户对应的权限字符串,所述权限字符串的每一个字符位置对应一种权限;
确定所述权限字符串中的有效位置,其中,所述有效位置对应的权限为所述用户具备的权限。
2.根据权利要求1所述的方法,其特征在于,所述用户的权限字符串是通过如下方式生成的:
基于权限类型与索引值的预设对应关系,确定至少一个目标权限类型对应的至少一个第一索引值,所述目标权限类型是待授权给所述用户的权限的类型;
确定至少一个所述第一索引值在预设字符长度的字符串中的至少一个第一位置,并将至少一个所述第一位置上的字符设置为有效字符,其他位置上的字符设置为无效字符,得到所述用户的权限字符串。
3.根据权利要求2所述的方法,其特征在于,所述索引值为十进制数,所述权限字符串为二进制数,相应地,针对每一个所述索引值,采用以下方式确定其在字符串中的位置:
用预设的字节格式的字节长度对所述索引值取整,以得到所述索引值的字节位置;
用预设的字节格式的字节长度对所述索引值取余,以得到所述索引值在所述字节位置中的字符位置。
4.根据权利要求1所述的方法,其特征在于,针对每一种角色,预先存储有对应的角色权限字符串,相应地,所述用户的权限字符串是通过如下方式得到的:
确定所述用户对应的目标角色所对应的角色权限字符串;
对所述用户对应的所有所述目标角色所对应的角色权限字符串求并集,得到所述用户的权限字符串。
5.根据权利要求1所述的方法,其特征在于,所述方法还包括:
获取所述用户的新的权限配置,所述新的权限配置包括新的权限类型和/或新的角色信息;
对所述用户当前的权限字符串与所述新的权限配置对应的权限字符串求并集,得到所述用户的新的权限字符串。
6.根据权利要求1-5任一项所述的方法,其特征在于,在所述获取用户对应的权限字符串之前,包括:
响应于用户的操作请求,确定所述操作请求需要的操作权限类型;
基于权限类型与索引值的预设对应关系,确定所述操作权限类型对应的第二索引值;
所述确定所述权限字符串中的有效位置,还包括:
确定所述第二索引值在所述用户的权限字符串中对应的的第二位置是否为有效位置;
所述方法还包括:
在所述第二位置为有效位置的情况下,执行对应所述操作请求的操作。
7.根据权利要求6所述的方法,其特征在于,所述响应于用户的操作请求,确定所述操作请求需要的操作权限类型,包括:
响应于用户的操作请求,确定所述操作请求对应的目标资源;
基于资源与权限类型的预设对应关系,确定所述目标资源对应的权限类型作为所述操作权限类型。
8.一种权限控制装置,其特征在于,所述装置包括:
获取模块,用于获取用户对应的权限字符串,所述权限字符串的每一个字符位置对应一种权限;
确定模块,用于确定所述权限字符串中的有效位置,其中,所述有效位置对应的权限为所述用户具备的权限。
9.一种计算机可读存储介质,其上存储有计算机程序,其特征在于,该程序被处理器执行时实现权利要求1-7中任一项所述方法的步骤。
10.一种电子设备,其特征在于,包括:
存储器,其上存储有计算机程序;
处理器,用于执行所述存储器中的所述计算机程序,以实现权利要求1-7中任一项所述方法的步骤。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202010421646.2A CN111695124A (zh) | 2020-05-18 | 2020-05-18 | 权限控制方法和装置、存储介质和电子设备 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202010421646.2A CN111695124A (zh) | 2020-05-18 | 2020-05-18 | 权限控制方法和装置、存储介质和电子设备 |
Publications (1)
Publication Number | Publication Date |
---|---|
CN111695124A true CN111695124A (zh) | 2020-09-22 |
Family
ID=72477028
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202010421646.2A Withdrawn CN111695124A (zh) | 2020-05-18 | 2020-05-18 | 权限控制方法和装置、存储介质和电子设备 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN111695124A (zh) |
Citations (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN104519072A (zh) * | 2015-01-14 | 2015-04-15 | 浪潮(北京)电子信息产业有限公司 | 一种权限控制方法和装置 |
CN106570421A (zh) * | 2016-10-28 | 2017-04-19 | 努比亚技术有限公司 | 权限控制装置和方法 |
CN107342992A (zh) * | 2017-06-27 | 2017-11-10 | 努比亚技术有限公司 | 一种系统权限管理方法、装置及计算机可读存储介质 |
CN110399747A (zh) * | 2019-07-18 | 2019-11-01 | 佳都新太科技股份有限公司 | 一种用户权限关联方法、查询方法及装置 |
-
2020
- 2020-05-18 CN CN202010421646.2A patent/CN111695124A/zh not_active Withdrawn
Patent Citations (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN104519072A (zh) * | 2015-01-14 | 2015-04-15 | 浪潮(北京)电子信息产业有限公司 | 一种权限控制方法和装置 |
CN106570421A (zh) * | 2016-10-28 | 2017-04-19 | 努比亚技术有限公司 | 权限控制装置和方法 |
CN107342992A (zh) * | 2017-06-27 | 2017-11-10 | 努比亚技术有限公司 | 一种系统权限管理方法、装置及计算机可读存储介质 |
CN110399747A (zh) * | 2019-07-18 | 2019-11-01 | 佳都新太科技股份有限公司 | 一种用户权限关联方法、查询方法及装置 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN107360224A (zh) | 分布式系统中序列号生成方法、系统、设备及存储介质 | |
US7996570B1 (en) | Usage of keyboard driver in extensible firmware interface for adding new hot keys at firmware level | |
US20070101437A1 (en) | Document managing system, document managing apparatus and document managing method | |
RU2348062C2 (ru) | Способ и устройство для динамического связывания/динамического разрешения путевых имен | |
CN109829287A (zh) | Api接口权限访问方法、设备、存储介质及装置 | |
CN108108633B (zh) | 一种数据文件及其访问方法、装置及设备 | |
US20230267116A1 (en) | Translation of tenant identifiers | |
CN110213290B (zh) | 数据获取方法、api网关以及存储介质 | |
CN110225039B (zh) | 权限模型获取、鉴权方法、网关、服务器以及存储介质 | |
CN112528262A (zh) | 基于令牌的应用程序访问方法、装置、介质及电子设备 | |
CN112860953A (zh) | 图数据库的数据导入方法、装置、设备及存储介质 | |
CN114579561A (zh) | 数据处理方法和装置、存储介质 | |
CN111177703A (zh) | 操作系统数据完整性的确定方法及装置 | |
US20150278543A1 (en) | System and Method for Optimizing Storage of File System Access Control Lists | |
US20040122877A1 (en) | Permission token managemnet system, permission token management method, program and recording medium | |
CN113918602A (zh) | 一种数据缓存方法、装置和电子设备 | |
US11151110B2 (en) | Identification of records for post-cloning tenant identifier translation | |
CN111753268B (zh) | 一种单点登录方法、装置、存储介质及移动终端 | |
CN109683942B (zh) | 脚本管理方法、装置、介质及电子设备 | |
CN111695124A (zh) | 权限控制方法和装置、存储介质和电子设备 | |
CN113254470B (zh) | 一种数据更改方法、装置、计算机设备及存储介质 | |
CN114493901A (zh) | 数据访问申请的处理方法、装置、计算机设备和存储介质 | |
CN115905206A (zh) | 多租户数据隔离方法、装置、设备及存储介质 | |
CN114238273A (zh) | 数据库管理方法、装置、设备及存储介质 | |
CN112445800A (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 | ||
WW01 | Invention patent application withdrawn after publication | ||
WW01 | Invention patent application withdrawn after publication |
Application publication date: 20200922 |