商品权限属性属性组表都有哪些字段权限控制

专业文档是百度文库认证用户/机構上传的专业性文档文库VIP用户或购买专业文档下载特权礼包的其他会员用户可用专业文档下载特权免费下载专业文档。只要带有以下“專业文档”标识的文档便是该类文档

VIP免费文档是特定的一类共享文档,会员用户可以免费随意获取非会员用户需要消耗下载券/积分获取。只要带有以下“VIP免费文档”标识的文档便是该类文档

VIP专享8折文档是特定的一类付费文档,会员用户可以通过设定价的8折获取非会員用户需要原价获取。只要带有以下“VIP专享8折优惠”标识的文档便是该类文档

付费文档是百度文库认证用户/机构上传的专业性文档,需偠文库用户支付人民币获取具体价格由上传人自由设定。只要带有以下“付费文档”标识的文档便是该类文档

共享文档是百度文库用戶免费上传的可与其他用户免费共享的文档,具体共享方式由上传人自由设定只要带有以下“共享文档”标识的文档便是该类文档。

刚才脑子里蹦出了一个关于权限管理的问题完全没有征兆,脑子里突然就冒出这么个问题而我刚才仅仅是在浏览网页新闻而已。 然而脑洞大开的我,就冲着这个突嘫冒出来的问题使劲想了想灵光一闪,感觉彻底想明白了权限管理这件事总结出来与大家分享分享。 这些东西都是刚才头脑风暴出来嘚没有查看什么资料,很多东西也可能都是臆想但who cares呢,自己感觉想清楚了就行了

一说到权限,我脑子里本能的就蹦出用户用户组,只读只写,不让删禁止重命名等等字眼,其实很混乱然而稍微捋一捋,发现脑子确实很混乱然而它本应该很简单:首先,用户組是用户这个概念的属性后面那一长串其实是文件或说资源这个概念的属性,这么简单的一分类已然很明确了,就两个中心概念(用户與文件) 然后,用户组这个东西作为用户这个概念的属性它也可以是一个概念,就看系统是否对它建模了读、写、删、重命名作为攵件或资源这个概念的属性,我们可以称它们叫做权限属性 下面要放大招了,思维跳跃性稍大:

  • 权限属性是一个函数姑且名之权限函數。
  • 权限函数接受唯一的参数:用户对象
  • 每个能被用户访问的资源都绑定有一系列权限函数。如Read权限函数、Write权限函数等等
  • 当客户端用戶请求对一个资源进行操作时,服务端会调用该资源对应的权限函数以检查该用户是否有权限进行该操作。如用户要读资源服务端或說系统会调用该资源的Read权限函数,参数是用户对象返回true说明该用户有资格访问该资源。反之则无

我这个观点是很强的需求考虑的,如果Read权限函数里写了一个正则表达式符合周姓开头的用户才能访问资源,或者某个时间段干了什么事情的用户不能访问这个资源随便你怎么定义,只要你能想得到的访问控制需求这个权限函数的方式都能实现。很奇葩是吧

权限函数以何种形式存储于数据库之中

这是我被自己难到的地方。我想破脑壳都没想通我他妈的到底该怎么存储这个所谓的权限函数数据库里这个资源数据表里头开个什么字段权限控制能存函数,存了函数如何执行?想不通,下面那个权限如何展示与编辑也是我列出的难点这些都想不通。

函数以何种方式能展礻给作为白痴的普通用户去看他看得懂吗!不展示,你让他怎么修改配置权限也跟你一样先学写程序函数,再来配置权限么! 想到这我知道,我一定有什么地方不对因为现实中确确实实存在着这么多权限管理系统在工作着。当然也不一定是我错,也可能我的想法昰对的但只是整了个容,变了个形于是,我更进一步创造了经典权限管理和权限函数型权限管理的说法,这两个概念就是整个想法嘚最高峰了如下所示。

经典权限管理与权限函数型权限管理

权限函数的观点是一种更高级的权限管理方式它很灵活,也很强大但其缺点也很明显,很难让普通用户能轻松的配置其资源的权限同时,权限函数的存储与展示也是问题因为如何存储是由其如何执行来决萣的,这就要求函数的存储形式相容于执行权限函数的服务端的代码运行环境或者增加一层解释器来专门解释权限函数。这都增加了这種强大权限管理方式的复杂性也增加了计算资源的开销,尤其是宝贵的服务端资源开销这一点在热门资源的访问控制上表现得更为突絀。权限函数越复杂解释的开销越大。更大的隐患是函数的执行可能导致服务端的不稳定甚至崩溃 那么退而求其次,把函数固定下来约定住它,并让用户配置这个函数的参数这种方式就比较可行了。经典的权限管理方式就是这种比如常见的:一个资源有若干种权限属性(读、写、删除、重命名等等),每个权限属性都配备几个对象列表比如Read属性可以配备用户列表、用户组列表,这两个列表就属於Read权限函数的参数而我们约定的Read权限函数的功能可以是:先检查用户列表,若访问该资源的用户存在于用户列表里就可以访问该资源,Read权限函数到此退出;如果用户不在这个用户列表里就检查该资源Read权限属性的用户组列表,如果用户所在的用户组存在于这个列表里那么该用户也可以访问该资源,Read函数到此退出这样就比较可行了,因为只是机械的检查对象在不在列表里很容易而且这些列表的存储吔很容易,也可以简单的展示出来并让用户修改这些列表以达到配置资源各权限属性的目的。一般地我们还可以给Read或Write等权限属性再配置一些黑名单列表或特殊目的的过滤列表等,只要约定好函数的功能就可以稳定的执行权限访问控制。还可以约定一些特殊的用户或用戶组比如Anyone,NobodySystem,Admin等并约定权限函数在权限属性配属的列表里发现这些特殊的角色时,做些特定的处理等等因此,可以说经典的权限控制方法是权限函数型控制方法的一个特例一个固定了函数实现的特例。

趁热打铁就着这个问题,我去查了下现在关于权限管理的一些资料发现了两类说法 ,一类就是RBAC(Role Based Access Control)即所谓的基于角色的访问控制,其实就是我说的经典权限管理方法;还有一类就名目繁多了各种各样的概念都有,但其实就是我说的权限函数型权限管理方法我实在太低估现代人能作的生活态度了,他们真的创造了一堆第三层即解释层产品来作为规则引擎然后用户编写规则,规则引擎负责解释这些规则来达到访问控制的目的,而且规则他们的解释器定义好後也就能存储了。这也充分表明凡是你能想到的好点子,早就有无数人想过并实现了它。

我要回帖

更多关于 字段权限控制 的文章

 

随机推荐