日期:2014-05-20  浏览次数:20951 次

求细粒度数据权限控制最好的设计方法?
目前的设计:

首先定义数据资源,数据资源指定关联的字段;
具体的功能页面,绑定数据资源;
具体的角色拥有该功能页面的权限,并设置关联字段的值,可能是动态的值;
在页面程序中,对构造的查询条件进行注入,注入数据资源的条件。

目前的设计,感觉耦合度仍比较大,设想可以不用修改页面程序,将数据权限注入放到具体的SQL执行处。

还想将编辑与删除都纳入数据权限控制,开发人员和业务人员都可以很好的控制权限。

网上也看到很多人讲AOP,成熟的太少,希望有人能赐教下如何设计这块?

------解决方案--------------------
细粒度:表示实例级需要考虑具体对象的实例
权限系统提供一个基础,并解决那些具有“共性”的(或者说粗粒度的)部分
在这个基础之上,根据“业务逻辑”的独特权限需求,编码实现细粒度部分
用户组
角色组
权限分1可执行 2可读 3可写 等
Action粒度的权限管理
------解决方案--------------------
学习。。。。。
------解决方案--------------------
数据量超过几在万时。应该不是权限的问题了。而且效率的问题。权限分的太细。肯定会带来数据量的增加。

------解决方案--------------------
如果你稍有实践经验你会发现,大多数权限系统都是被人诟病的,是给人找麻烦而不是帮助人的。
------解决方案--------------------
是这样的,出于某些考虑:
比如AppCenter需要管理不同的软件公司提供的应用程序,
又比如,即使是在你的团队里,也希望这部分代码与表单设计无关,
表单设计好后,"挂接"或"引入"一个独立的dll就可以了.

举个asp.net WebForm的实际实施的方案(给你思路,具体方案当然很多)
每个页面都继承了MyBasePage,其实最初就是隔离,MyBasePage里没有任何代码,
但是,以后,你可以随时植入任何东西,让所有继承者都受益,

控件也是一样,你可以吧所有webform的常用控件做一次隔离,其实抄一遍就行了,