久久亚洲精品成人_国产精品欧美综合亚洲_亚洲va天堂va欧美ⅴa在线_91色视频在线观看_久久影院亚洲_一级黄色片播放_日韩av在线一区_精品一区二区在线看_老头吃奶性行交视频_日韩免费高清视频_天天操天天爽天天干_日本欧美在线视频

首頁 > 學院 > 邏輯算法 > 正文

權限設計及算法(PHPE)

2024-09-08 23:18:44
字體:
來源:轉載
供稿:網友

權限設計

大概有這幾種模式:
用戶+組+角色+權限
用戶+組+權限
用戶+角色+權限
用戶+權限


最近看了別人的設計方法,大多以“整數”來表示權限值,如添加、瀏覽、刪除和修改,分別用1、2、4、8這幾個整數來代替,不過,各人的做法有所不同,舉例如下:

1.用2的n次冪組成權限值的集合,如1、2、4、8、16...,某用戶的權限值為其子集中的整數之和,如 7=1+2+4,5=1+4。如果要從數據庫檢索包含某幾種權限的用戶,則先把這幾種權限值相加,假設和為k,然后select * from table where 1 and 用戶權限值 = 'k';如果要判斷某用戶有哪些權限,則取出其權限值k,分別用k&1,k&2,k&4,k&16...,如果為真,則表示有值等于“&”右邊整數的權限,例如,如果k&4為真,則此用戶有權限表中值等于4的權限;

2.用質數2、3、5、7、11...組成權限集合,某用戶的權限為其子集中各整數的乘積,如 210 = 2*3*5*7,我覺得這種方法很有趣,難點在于如何分解質因數;但我有些不認同原作者的提法,他認為權限之間可能存在包含關系,如某用戶有刪除權限,則其一定有瀏覽權限,要不然就沒法刪除,事實確實是這樣,不過我認為這樣太復雜了,容易出錯,我覺得權限最好是“原子”的,互不干擾,也就是說某用戶有刪除權限而沒瀏覽權限則其無法進行刪除操作,因為他看不到東西,解決這個矛盾的關鍵是在給用戶賦權時,把瀏覽權限也賦給他;

3.不用整數,而是用“向量表”方法(也許我說的不一定對),把所有可能的權限按一定的順序排列,如添加、瀏覽、修改、刪除...,用戶的權限值為固定100位長度的字符串,如100010100001....01,從左起每一位對應一種操作權限,如果有這種權限,則此位的值為1,反之,則為0,作者之所以把用戶權限值固定為100位,我想是考慮到升級問題,但我認為這還不夠科學,我認為用戶的權限值長度應小于權限個數,舉例如下:
權限排列表:添加、瀏覽、修改、刪除,用戶a有添加和瀏覽的的權限,則其權限值為11,用戶b有瀏覽和修改的權限則其權限值為011,用戶c有瀏覽和刪除的權限則其權限值為0101,這樣設計的好處為:當權限表中增加別的權限時,不會影響用戶表或角色表;

4.我曾經的做法,在后臺管理中把權限分為兩大類:欄目權限和操作權限,每個欄目對應一個目錄,操作權限細分為瀏覽、添加、修改和刪除,用戶進入系統后首先判斷有沒有欄目權限,然后判斷有沒有操作權限,判斷欄目權限相對簡單一些,首先獲取訪問頁面的路徑path,然后分解出目錄,對應用戶擁有的目錄權限,如果此目錄包含在用戶有權管理的目錄數組中(從數據庫取出),則其有進入此目錄的權限,否則,沒有,然而,在判斷操作權限好象有些麻煩,但突然想到添加、瀏覽、修改和刪除與我的文件命名規則是基本是對應的,但有點不同的是,我把添加和刪除的功能合并在一個文件中了,例如文件名為proaddedit.php,幸好意識到修改文件時多了個傳遞參數id,于是,我用正則解決了這個問題,今天看來,這種方法似乎過時了,因為不適應面向對象的思想和用框架體系來開發系統!

以上是個人粗淺的認識和描述,若有錯誤,請各位指正,希望高人給些意見! 

posted by: trooman 2005-12-28 16:02
咋個這么冷清,一個發表點意見的都沒有? 

posted by: axgle 2005-12-28 16:05
已收藏。 

posted by: donyad 2005-12-28 16:41
1 2 3 的思想是相同的,只是實現上的手法不同而已
而3后半部分樓主的例子,恕偶愚笨,看不懂

3的做法是很c的,driver級別或者系統級別的程序很常用
比如*nix下的文件權限0755 0777之類

方法1 跟 方法3 原型是一模一樣的,就是二進制位,方法3 是對這個的一個字符串模擬
二進制 十進制
100 4
+ 1 1
------------
101 5

用相互獨立的位來標志權限,就是為了原子性,素數同樣具有這個特性
所以派生出2的做法,而分解質因數,我并不認為這個會是一個問題,因為三種方法都需要去檢查所需要的權限
既然是檢查,除一下所需要的質數即可

而3里面所說的要變長的問題
1和2正好在概念上回避了這個問題
實際上,在c里面用二進制,有個對齊的問題,就是要8位8位的申請,8位8位的用,無所謂太長了浪費
只是象方法3這樣用字符串來模擬二進制時會有浪費
而方法1 2在真正保存時,也是保存成一個int,也是一個申請過來就那么多位的二進制空間,無所謂浪費

擴展和彈性上,方法1和方法2是沒有影響的
對方法3來說是個問題,那是因為方法3模擬得不好... 方法3感覺有豬鼻子插蔥之嫌

--------------

敲code多了,文字表達能力可能不行了,偶說不對的或說不清的地方歡迎大家拍磚,3q
 

posted by: lihun21 2005-12-28 19:27
做個記號先
學習一下
現在還沒有用到這么深的權限系統
我現在只有三種權限的用戶,所以還沒有考慮那么多
超級管理員->普通管理員->普通用戶
我想,我用的是這種模式
用戶+權限 

posted by: wwccss 2005-12-28 20:06
樓主的文章不錯。donyad兄分析的也很有水平。  

posted by: cozo 2005-12-28 20:10
這種東西只要一種方法就可以了。
我就只使用第一種。 

posted by: bitq 2005-12-28 21:47
這個方法我有看到過~~~


用二進制表示權限,不會互相影響,期待做個涉及到這個的項目

高手就是高手~~` 

posted by: binzywu 2005-12-28 22:01
具體怎么標記權限 這個較無所謂
一般的系統
rbac是已經夠用的.

一般access controller有3種
user based
group based
role based

rbac有成熟的理論基礎, 你可以搜索以下, 能搜到很多論文.

但如果不是一般的應用系統, 那么權限系統可能設計需要較為特別. 這里只有普遍理論, 未必有普遍方法.

 

posted by: terpomo 2005-12-29 00:31
學習了 

posted by: bleakwind 2005-12-29 01:14
我比較落后,我是將每個人的權限組成的數組序列化放入數據庫。。。
每次載入頁面初始化出來。。。 

posted by: nameless 2005-12-29 08:51
見過一個用方法3做的權限判斷,操作很方便,也很靈活

欄目權限用的直接把欄目標識用界定符分隔連接,操作時判斷有沒有這個標識,簡單,對欄目數過多且操作員過多的時候這個數據庫效率應該不高(如果操作員能超過 10w 的話),呵呵 

posted by: trooman 2005-12-29 11:18
quote (nameless @ 2005-12-29 08:51)
見過一個用方法3做的權限判斷,操作很方便,也很靈活

欄目權限用的直接把欄目標識用界定符分隔連接,操作時判斷有沒有這個標識,簡單,對欄目數過多且操作員過多的時候這個數據庫效率應該不高(如果操作員能超過 10w 的話),呵呵 

是的,我也認為方法3不會比二進制的效率差,在具體使用時可以用like,str_replace等,還可以模擬二進制。

那種所謂的“欄目”權限管理,現在已經過時了,但思想還是可以沿用的,如“對應欄目”改成“對應模塊”,但實現方式已經截然不同了! 

posted by: sean.zhuo 2005-12-29 13:51
哪位大哥能給我講解一下"角色"這個概念嗎?不懂什麼叫角色. 

posted by: knighte 2005-12-29 14:50
1和3,本質還是一樣的吧。
1有個好處,節省空間。lz提到開100個權限用來升級。不過我遇到過一個超過100個權限類別的系統,而且用戶樹較多。所以后來壓成了16進制存儲(原來還是一樣),就類似1的處理方法了。
不過3最大的好處應該在于直觀(其實如果權限項很多的話,也不直觀了,呵呵)。

個人認為“權限儲存和判斷的方法”其實還不是“權限設計”的重點和難點。我們還需要考慮其他東西。比如權限的設計結構(rbac/gbac/ubac)的選擇,比如權限在應用系統中的使用……

我gbac(基于組的權限控制)用的比較多。一般的邏輯是:

 

組成樹型結構,用戶跟組結點

判斷權限,從組根目錄開始往用戶所在組進行遍歷。起始權限為“禁止”

遍歷時,子組權限覆蓋起始權限,直至用戶。

最后用戶權限覆蓋起始權限。得到最終權限碼。


雖然貌似有些繁雜,不過較靈活些。


其次談談權限的使用。通常的做法(至少我是這么做的),即在“所需”時,根據以上邏輯判斷某用戶相對某權限“是否通過”,例如(亂寫的,只是想表示是在需要是進行判斷):
code 

// when someone posts a new topic
if ($access_controller->check($user, 'post'))
{
   // access passed
   $user->post($content);
}
else
{
   // access denied
   $sys->accessdenied();
}
 

 

而我一直很想嘗試的,是這樣一種權限使用方法:即在$user實例出來時,已經裝配好他擁有的權限(check once, run anywhere),例如:
code 

class user
{
   var $sid;
   var $name;
   var $passwd;
   var $email;
   // ...

   function __call()
   {
       // it must be a access denied process here
       die('no permission');
   }

   // maybe no other methods here...
}

// we need overload the user class in php4
// for the __call magic method
overload('user');
$user = new user();

// we need a accessinject method to inject accesses into user object
$access_controller->access_inject($user)
// then, the user object includes its access methods...

// ok, we use the user's method directly
$user->post($content);
// if the user object includes the post method, it has the right permission...
 

 

隨便寫了點,沒有很仔細考慮結構和命名,希望能表達清楚我的意思。
拋磚引玉…… 

posted by: luciferstar 2005-12-29 17:40
做過一個表單,用法1和3保存多選的表單數據。 

posted by: james.liu 2006-01-05 17:10
如果是面向對象的,,傾向于小k的想法

用戶登陸時,,如果用戶名,密碼,什么都對的,允許他登陸時,,實例化用戶信息,包括權限 

posted by: gudai 2006-01-11 16:06
權限設計。頭疼的問題。 

 


         來源:http://club.phpe.net/index.php?act=print&client=printer&f=2&t=11828

 

 

 

菜鳥學堂:
發表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發表
亚洲欧美一区二区三区四区五区| 日韩综合中文字幕| 视频一区二区三区在线| 在线日韩国产网站| 男女污污视频网站| 黄网站色视频免费观看| 国产在线精品一区二区三区》| 久久99久久99精品免观看粉嫩| 亚洲第一精品自拍| 欧美无砖专区一中文字| 亚洲综合图片区| 欧美国产一区二区| 不卡的av电影| 国内成人精品2018免费看| 亚洲精品成av人片天堂无码 | 亚洲成人久久精品| 97免费在线观看视频| 黄色免费一级视频| 免费黄色在线视频| 99精品视频国产| 国产xxxxx在线观看| 日本在线视频www色| 日本视频精品一区| 狠狠爱一区二区三区| 亚洲一区二区免费在线| 国产精品精品视频| 性色av一区二区三区| 色青青草原桃花久久综合| 日韩黄色av网站| 精品成人在线观看| 欧美一区午夜精品| 日韩一区二区视频在线观看| 欧美一区二区三区在线观看| 91精品国产乱| 日韩欧美二区三区| 亚洲精品一区二区三区99| 欧美哺乳videos| 精品国产乱码久久久久久久久| 91超碰这里只有精品国产| 欧美一区二区免费| 精品国产一区二区国模嫣然| 亚洲精品白浆高清久久久久久| 日韩av最新在线| 亚洲三级av在线| www.亚洲免费视频| 久久99视频免费| 热re99久久精品国产66热| 国产精品久久久av| 7777精品伊久久久大香线蕉语言| 成人在线看片| 日本高清不卡一区二区三| 图片区小说区区亚洲五月| 欧美日韩成人一区二区三区| 一区二区三区在线视频111| 国产人妻互换一区二区| 六月丁香婷婷在线| 亚洲精品激情视频| 欧美视频一区二区在线| 成人精品免费在线观看| 国产高清免费在线观看| 美腿丝袜亚洲一区| 久久伊人中文字幕| 亚洲成av人在线观看| 欧美一区二区三区四区在线观看| 亚洲女人天堂视频| 欧美激情一区二区三区久久久| 国产97在线|亚洲| 国语精品中文字幕| 色哺乳xxxxhd奶水米仓惠香| 想看黄色一级片| 懂色av粉嫩av蜜臀av一区二区三区| 亚洲欧美另类在线视频| 天堂一区二区在线| 国产欧美精品国产国产专区| 日本精品视频一区二区| 国产一区二区三区在线观看网站| 45www国产精品网站| 久久久婷婷一区二区三区不卡| 婷婷五月综合缴情在线视频| 水蜜桃av无码| 69国产精品视频免费观看| 欧美aaa在线| 亚洲国产精品成人久久综合一区| 日本高清视频一区二区| 亚洲天堂2020| 国产欧美久久一区二区| 伊人精品久久久久7777| 香蕉视频在线观看黄| 久久精品视频9| 久久亚洲欧美| 成人欧美一区二区三区黑人麻豆| 欧美精品久久久久久久久老牛影院| 久久精品免费播放| 粉嫩av一区二区三区免费观看 | 国产女人18毛片水18精品| 日韩欧美亚洲在线| 国产精品亚洲一区二区无码| 日韩综合在线观看| 国产不卡在线视频| 欧美丝袜第三区| 久久免费视频在线| 欧美在线播放一区二区| 手机在线观看日韩av| 性无码专区无码| 国产一区在线不卡| 91国在线观看| 91干在线观看| 18禁裸男晨勃露j毛免费观看| 日韩中文字幕有码| 性感美女一级片| 一二三四社区欧美黄| 国产亚洲人成网站在线观看| 精品久久久三级| 中文字幕乱码在线人视频| 中文字幕免费高清在线观看| 国产精品久久毛片| 中文字幕亚洲欧美日韩在线不卡| 欧美精品七区| 中文字幕人妻一区二区三区在线视频| 色网站免费观看| 亚洲成人免费看| 国内久久久精品| 欧美成人免费在线观看视频| 中日韩精品视频在线观看| youjizz国产精品| 亚洲老头同性xxxxx| 精品一卡二卡三卡四卡日本乱码| 四季av综合网站| 日本欧美久久久久免费播放网| 欧美午夜理伦三级在线观看| 国产日本欧美一区| 亚洲制服在线观看| 亚洲精品成人电影| 五月激情综合婷婷| 国产z一区二区三区| 第一区免费在线观看| 国产成人精品一区二区无码呦| 一区二区三区蜜桃网| 97在线视频一区| 老司机午夜av| www.蜜臀av| 午夜精品久久久久久久99水蜜桃| 国产91在线播放| 色综合久久久无码中文字幕波多| 成人羞羞国产免费图片| 欧美一区永久视频免费观看| 欧美凹凸一区二区三区视频| 国产一区二区三区在线视频观看| 91丨porny丨中文| 欧美另类xxx| 国产精彩免费视频| 高潮一区二区三区乱码| 欧美酷刑日本凌虐凌虐| 欧美黑人xxxxx| 99免费在线观看| 亚洲一区二区三区三| 成人午夜在线影院| 日本黄色小视频在线观看| 91在线国产福利| 午夜精品国产精品大乳美女| 99视频在线观看视频| 青青草伊人久久| 亚洲人在线视频| 久久综合久久色| 天堂成人国产精品一区| 亚洲欧洲偷拍精品| 国产三级三级三级看三级| 三级在线观看一区二区 | 美女网站视频色| 久久综合丝袜日本网| 欧美极品第一页| 亚洲成a人片在线www| 成人天堂资源www在线| 久久久久久久久久av| 亚洲国产精品无码久久久久高潮| 91丨porny丨最新| 国产精品 欧美在线| 亚洲最大成人网站| 国产精品天干天干在线综合| 91免费人成网站在线观看18| 久久久美女视频| 91福利在线看| 国产尤物av一区二区三区| 天天干天天色天天| 日韩中文第一页| 欧亚乱熟女一区二区在线| 国产日韩欧美精品一区| 成人在线免费网站| 欧美黄色一级大片| 欧美大片顶级少妇| 国产69精品久久久久999小说| 日韩av电影一区| 午夜精品一区二区三区在线视频 | 在线观看毛片av| 欧美一区二区三区免费在线看| 自慰无码一区二区三区| 国产一区二区成人久久免费影院 | 欧美日韩国产精选| 国产精品三级一区二区| 久久se精品一区二区| 人人爽久久涩噜噜噜网站| 免费在线黄色网| 欧美系列日韩一区| 精品久久久久久久无码| 国产午夜精品一区二区| 欧美一区少妇| 久久国产欧美| 国产成人亚洲综合91| 精品国产一区二区三区四| 亚洲激情成人网| www.日本高清| 色综合久久88色综合天天| www.av蜜桃| av成人免费在线观看| 国产99在线免费| 国产普通话bbwbbwbbw| 日韩在线视频播放| 国产性生活大片| 欧美一区二区精品在线| 国产国语老龄妇女a片| 亚洲成人av资源| av免费在线播放网站| 国产精品大尺度| 中文字幕日韩精品久久| 国产麻豆视频精品| 精品国产乱码久久久久久久软件 | 国产精品久久久久久久久久久久久久久久久 | 400部精品国偷自产在线观看| 激情六月婷婷综合| 91免费在线视频| 人妻无码一区二区三区久久99| 国产成人av在线| 国产男男gay体育生白袜| 欧美一级视频免费在线观看| 中文字幕码精品视频网站| 日韩视频一区在线| 日韩少妇裸体做爰视频| 中文字幕成人在线| 国产亚洲精品成人| 亚洲人成电影在线播放| 深夜福利影院在线观看| 亚洲香蕉av在线一区二区三区| 在线观看成人毛片| 主播福利视频一区| 天天爽夜夜爽夜夜爽精品| 欧美黑人一级爽快片淫片高清| 精品一区二三区| 色综合久综合久久综合久鬼88| 久久精品无码av| 98精品在线视频| a天堂在线观看视频| 国产综合久久久久久| 免费亚洲电影在线| 国产日韩精品推荐| www.66久久| 亚洲一区二区三区乱码aⅴ蜜桃女| 久久精品道一区二区三区| 福利视频一区二区三区| 国产成人精品网址| 精品人妻人人做人人爽| 亚洲一级不卡视频| www.四虎精品| 欧美精品一区二区三区四区| 精品少妇久久久| 91国在线精品国内播放| 熟妇人妻系列aⅴ无码专区友真希 熟妇人妻av无码一区二区三区 | 亚洲手机在线观看| 国产日韩在线播放| 国产福利91精品一区二区三区| 特色特色大片在线| 亚洲第一综合色| 北岛玲一区二区| 一区二区三区www| 91女人18毛片水多国产| 国产精品10p综合二区| www.成人在线| 五月天丁香花婷婷| 精品亚洲一区二区三区四区五区| 五月婷婷六月婷婷| 91视频免费进入| 国产欧美日韩亚州综合| 日韩av影视大全| 日韩av在线影院| 中文在线资源天堂| 国产尤物99| 亚洲色图另类专区| 亚洲图片另类小说| 日韩欧美成人激情| 波多野结衣一二区| 久久精品人成| 亚洲一区二区三区四区的| 亚洲无人区码一码二码三码的含义| 久久久精品国产亚洲| 香蕉久久一区二区三区| 黄色特一级视频| 678五月天丁香亚洲综合网| 午夜精品三级久久久有码| 1卡2卡3卡精品视频| 国产精品久久久久久久岛一牛影视 | av中文字幕免费观看| 午夜精品免费视频| 国产v综合v亚洲欧| 午夜av中文字幕| 美女性感视频久久久| 国产一区在线看| 无码人妻一区二区三区一| 欧美高清视频免费观看| 成人精品免费网站| 老司机午夜免费福利| 欧美一区第一页| 中文无字幕一区二区三区| 国产成人在线网址| 成人两性免费视频| 综合久久国产九一剧情麻豆| 亚洲国产123| 国产九区一区在线| 黑人巨大精品欧美一区二区免费| √资源天堂中文在线| 亚洲精品9999| 日韩亚洲欧美一区| 三级网站在线看| 色哟哟精品视频| 韩国v欧美v日本v亚洲| 久久综合丝袜日本网| 国产jizz18女人高潮| 久久精品人人做人人爽电影| 精品视频一区二区不卡| 亚洲国产成人精品一区二区三区| 亚洲爆乳无码专区| 欧美剧在线观看| 国产欧美一区二区三区鸳鸯浴| 国产97免费视频| 欧美黑人3p| 精品国产伦一区二区三区免费| 日韩高清电影一区| 国产伦精品一区二区三区妓女| 99久久久久国产精品免费| 欧美亚日韩国产aⅴ精品中极品| 开心激情综合网| 免费 成 人 黄 色| 日韩一区av在线| 国产三级三级三级精品8ⅰ区| 久一视频在线观看| 97超碰国产精品| 色综合天天狠天天透天天伊人| 国产日韩欧美精品一区| 黑人精品无码一区二区三区AV| 精品人妻大屁股白浆无码| 久久综合伊人77777| 一区二区三区不卡视频在线观看| 91tv国产成人福利| 九色porny自拍| 成人久久18免费网站图片| 欧美午夜理伦三级在线观看| 免费av网站大全久久| 三区四区在线观看| 日本免费高清不卡| 色香阁99久久精品久久久| 国产精品国产三级国产有无不卡 | 中文字幕视频在线免费观看| 国产精品第一第二| 欧美群妇大交群的观看方式| 国产一区二区不卡| 日韩黄色a级片| 欧美日韩亚洲第一| 国产精品综合不卡av| 日韩欧美美女一区二区三区| 91丝袜美腿高跟国产极品老师| 久久久久久久久久久影院| 天堂中文视频在线| av免费观看久久| 亚洲精品资源美女情侣酒店| 国产精品激情偷乱一区二区∴| 国内毛片毛片毛片毛片| 黄色录像a级片| 欧美一区少妇| 久久久影视精品| 欧美日韩激情一区二区| 国产成人免费视频网站高清观看视频| 国产综合精品视频| 日日夜夜精品视频免费观看| 欧美日韩国产高清视频| 欧美激情xxxx性bbbb| 欧美三级日韩在线| 成人aaaa免费全部观看| 中文字幕一区二区三区波野结| 精品1卡二卡三卡四卡老狼| 亚洲国产另类久久久精品极度| 55夜色66夜色国产精品视频| 精品国产3级a| 香蕉乱码成人久久天堂爱免费| 国产成人精品网址| 国产精品久久久久久久久久久久久久久久 | 精品国产鲁一鲁一区二区张丽| 久草热8精品视频在线观看| 国产精品xxxx喷水欧美| 美女久久久久久久久| 男人天堂av片| 国产激情美女久久久久久吹潮| 久久91精品国产| 精品欧美乱码久久久久久 | 国产1区2区在线| 精品蜜桃一区二区三区| 国内成人精品一区| 欧美成va人片在线观看| **性色生活片久久毛片| 极品少妇一区二区| 精品国产无码AV| 日韩xxx高潮hd| 日韩av片在线免费观看|