歡迎來到裝配圖網(wǎng)! | 幫助中心 裝配圖網(wǎng)zhuangpeitu.com!
裝配圖網(wǎng)
ImageVerifierCode 換一換
首頁(yè) 裝配圖網(wǎng) > 資源分類 > DOC文檔下載  

用戶權(quán)限系統(tǒng)設(shè)計(jì)方案.doc

  • 資源ID:9186548       資源大?。?span id="rfkefoi" class="font-tahoma">515KB        全文頁(yè)數(shù):20頁(yè)
  • 資源格式: DOC        下載積分:9.9積分
快捷下載 游客一鍵下載
會(huì)員登錄下載
微信登錄下載
三方登錄下載: 微信開放平臺(tái)登錄 支付寶登錄   QQ登錄   微博登錄  
二維碼
微信掃一掃登錄
下載資源需要9.9積分
郵箱/手機(jī):
溫馨提示:
用戶名和密碼都是您填寫的郵箱或者手機(jī)號(hào),方便查詢和重復(fù)下載(系統(tǒng)自動(dòng)生成)
支付方式: 支付寶    微信支付   
驗(yàn)證碼:   換一換

 
賬號(hào):
密碼:
驗(yàn)證碼:   換一換
  忘記密碼?
    
友情提示
2、PDF文件下載后,可能會(huì)被瀏覽器默認(rèn)打開,此種情況可以點(diǎn)擊瀏覽器菜單,保存網(wǎng)頁(yè)到桌面,就可以正常下載了。
3、本站不支持迅雷下載,請(qǐng)使用電腦自帶的IE瀏覽器,或者360瀏覽器、谷歌瀏覽器下載即可。
4、本站資源下載后的文檔和圖紙-無水印,預(yù)覽文檔經(jīng)過壓縮,下載后原文更清晰。
5、試題試卷類文檔,如果標(biāo)題沒有明確說明有答案則都視為沒有答案,請(qǐng)知曉。

用戶權(quán)限系統(tǒng)設(shè)計(jì)方案.doc

用戶權(quán)限系統(tǒng)設(shè)計(jì)方案摘要本文介紹一個(gè)應(yīng)用于企業(yè)應(yīng)用通用的用戶權(quán)限系統(tǒng)的設(shè)計(jì)框架,其設(shè)計(jì)思想與主要文檔來源自 SunWu Software Studio 的 iSecurityManager 產(chǎn)品。本指南適用于體系結(jié)構(gòu)設(shè)計(jì)人員和開發(fā)人員。目錄簡(jiǎn)介用戶與角色動(dòng)作定義應(yīng)用模塊授權(quán)總結(jié)鏈接資源簡(jiǎn)介安全始終是可信賴的企業(yè)應(yīng)用的基石。在企業(yè)應(yīng)用中,通常需要控制用戶對(duì)業(yè)務(wù)操作的權(quán)限管理與控制。稍加分析不難發(fā)現(xiàn)這會(huì)涉及到這三個(gè)對(duì)象:用戶/角色、動(dòng)作/操作、授權(quán)狀態(tài),進(jìn)一步分析,我們可發(fā)現(xiàn)“動(dòng)作/操作”通常是針對(duì)某個(gè)特定的對(duì)象,譬如 新增動(dòng)作可對(duì)應(yīng)于采購(gòu)申請(qǐng)單也可對(duì)應(yīng)于銷售出庫(kù)單等,這些動(dòng)作對(duì)應(yīng)的對(duì)象我們將其稱之為“應(yīng)用模塊”。至此,用戶權(quán)限系統(tǒng)中的基本邏輯顯形:誰(shuí)(用戶/角色)對(duì)什么(應(yīng)用模塊)是否具有某項(xiàng)操作(動(dòng)作)的授權(quán)(授權(quán)狀態(tài):授予-Grant、拒絕-Deny、繼承-Revoke)。用戶與角色使用權(quán)限的基本單位,角色是具有一組相同授權(quán)的用戶的交集。用戶與用戶之間沒有互相隸屬的關(guān)系,它只可以隸屬于角色,角色可以隸屬于另一角色,并且可具有多重隸關(guān)系。用戶或角色通常具有以下屬性:編號(hào),在系統(tǒng)中唯一。名稱,在系統(tǒng)中唯一。用戶口令(角色無此屬性)當(dāng)然,在實(shí)際的商業(yè)應(yīng)用中,可能還需要更多的屬性來描述特定的業(yè)務(wù)需求。如在 iSecurityManager 中用戶和角色的信息就有如下:圖一:角色信息圖二:用戶信息有了用戶和角色對(duì)象,還必須有一個(gè)描述他們之間隸屬關(guān)系的對(duì)象,這樣的對(duì)象我們稱之為“成員關(guān)系(Member)”,通常它可能有如下屬性:用戶編號(hào)角色編號(hào)該“用戶編號(hào)”和“角色編號(hào)”組合唯一約束,這里的“用戶編號(hào)”可能是一個(gè)用戶對(duì)象的編號(hào),也可能是一個(gè)角色對(duì)象的編號(hào),而“角色編號(hào)”則始終只能對(duì)應(yīng)一個(gè)角色對(duì)象的編號(hào)。一個(gè)成員關(guān)系對(duì)象表示某個(gè)用戶或角色隸屬于另個(gè)角色。在 iSecurityManager 中可能有如下界面表示:圖三:用戶/角色成員關(guān)系在 iSecurityManager 中通過成員設(shè)置窗口來設(shè)置任何一個(gè)用戶或角色(系統(tǒng)固定用戶和角色除外)所隸屬于的角色,也可以通過角色屬性窗口來設(shè)置所屬于當(dāng)前角色的直接下級(jí)成員。動(dòng)作定義在涉及數(shù)據(jù)庫(kù)操作的應(yīng)用中,四個(gè)基本操作是“查看(Select)”、“刪除(Delete)”、“新增(Insert)”以及“更新(Update)”。在一個(gè)企業(yè)應(yīng)用中當(dāng)然還會(huì)有更多其他的操作,盡管這些操作可能最終都基于這四個(gè)基本操作,也可能是其他的非數(shù)據(jù)操作,而我們始終無法在剛開始就完全固定這些可能的操作,為此,必須能讓系統(tǒng)開發(fā)人員根據(jù)每個(gè)具體的應(yīng)用模塊來定義其所屬的特定的動(dòng)作/操作。動(dòng)作/操作通常具有以下屬性:名稱,在系統(tǒng)中唯一。備注,描述動(dòng)作/操作。在 iSecurityManager 中“動(dòng)作定義”的信息就有如下:圖四:動(dòng)作定義事實(shí)上,有些動(dòng)作是需要針對(duì)具體的數(shù)據(jù)實(shí)例的,譬如“查看”、“刪除”和“更新”等,這種對(duì)數(shù)據(jù)實(shí)例級(jí)別的控制比針對(duì)“應(yīng)用模塊”級(jí)的控制要更精細(xì)。譬如,某個(gè)用戶能進(jìn)行對(duì)【采購(gòu)申請(qǐng)單】的各項(xiàng)操作,他應(yīng)該能查看他剛填寫的單據(jù)并進(jìn)行某些適當(dāng)?shù)男薷?,但是他卻不應(yīng)該看到其他人填寫的數(shù)據(jù)。那么,這種粗粒度的權(quán)限設(shè)置顯然無法控制數(shù)據(jù)級(jí)的訪問,在 iSecurityManager 中,專門使用“流程控制”的方案和技術(shù)來達(dá)致更細(xì)粒度的對(duì)數(shù)據(jù)實(shí)例級(jí)的訪問和控制。應(yīng)用模塊應(yīng)用模塊通常是指對(duì)應(yīng)于企業(yè)應(yīng)用中的某種類型的業(yè)務(wù)單據(jù),譬如 ERP 系統(tǒng)中的【采購(gòu)申請(qǐng)單】、【銷售出庫(kù)單】、【客戶基礎(chǔ)資料】等,這些業(yè)務(wù)單據(jù)可能對(duì)應(yīng)一或多張數(shù)據(jù)庫(kù)表。如果從面向?qū)ο?Object Oriented)的視角去看,似乎可以將本文中所描述的這些概念理解成這樣:“應(yīng)用模塊”是類,“動(dòng)作/操作”則是類的方法,而“應(yīng)用模塊”對(duì)應(yīng)的數(shù)據(jù)庫(kù)表(表結(jié)構(gòu))則是類的屬性,表中的這些數(shù)據(jù)/記錄就是類的實(shí)例了。在定義規(guī)劃系統(tǒng)中的“應(yīng)用模塊”時(shí),通常還需要指定某個(gè)“應(yīng)用模塊”可能具有的“動(dòng)作/操作”,而這些“動(dòng)作/操作”由動(dòng)作定義中進(jìn)行了定義。注意:應(yīng)用模塊是系統(tǒng)中的一種邏輯組織單位。應(yīng)用模塊通常具有以下屬性:名稱,在系統(tǒng)中唯一。標(biāo)題,描述動(dòng)作/操作。動(dòng)作列表,表示該應(yīng)用模塊所可能具有的所有操作。在 iSecurityManager 中“應(yīng)用模塊”的信息就有如下:圖五:應(yīng)用模塊定義授權(quán)顧名思義,授權(quán)是指用戶/角色能對(duì)哪些應(yīng)用模塊中的某些操作(動(dòng)作)是否具有執(zhí)行的許可。這里的“是否具有執(zhí)行的許可”實(shí)際上指的是授權(quán)的三種狀態(tài):授予-Grant、拒絕-Deny、繼承-Revoke。授予:用戶/角色對(duì)某個(gè)應(yīng)用模塊的某項(xiàng)操作具有執(zhí)行的權(quán)力。拒絕:用戶/角色對(duì)某個(gè)應(yīng)用模塊的某項(xiàng)操作沒有執(zhí)行的權(quán)力。繼承:用戶/角色對(duì)某個(gè)應(yīng)用模塊的某項(xiàng)操作是否具有執(zhí)行的權(quán)力要取決于它的父角色的授權(quán)定義。如果對(duì)某個(gè)角色授予某項(xiàng)權(quán)力,其下屬的用戶或角色是可以覆蓋該項(xiàng)授權(quán)定義的。默認(rèn)情況下,采用就近優(yōu)先、拒絕優(yōu)先的原則。在 iSecurityManager 中“授權(quán)設(shè)置”的信息如下所示:圖六:權(quán)限設(shè)置總結(jié)通?!皯?yīng)用模塊”和“動(dòng)作定義”是由系統(tǒng)開發(fā)商在系統(tǒng)設(shè)計(jì)、開發(fā)階段就定義好了,在系統(tǒng)交付給用戶使用后就不再對(duì)此更改了(當(dāng)然這也不是絕對(duì)的,不是嗎?)。至此,有關(guān)用戶權(quán)限的各項(xiàng)設(shè)置、定義都完成了,事實(shí)上,這并不會(huì)立即為你的應(yīng)用系統(tǒng)帶來任何安全保障,這只是一堆關(guān)于用戶和授權(quán)定義的設(shè)置數(shù)據(jù)而已,還必須在應(yīng)用系統(tǒng)中去應(yīng)用這些設(shè)置數(shù)據(jù)并根據(jù)其定義的控制邏輯以對(duì)業(yè)務(wù)數(shù)據(jù)進(jìn)行控制。如何利用這些用戶授權(quán)數(shù)據(jù)來控制應(yīng)用系統(tǒng)對(duì)業(yè)務(wù)數(shù)據(jù)的訪問,有很多不同的解決方案,但是我認(rèn)為建立一個(gè)中間數(shù)據(jù)存儲(chǔ)層來統(tǒng)一所有客戶端對(duì)數(shù)據(jù)源的存儲(chǔ)訪問是個(gè)不錯(cuò)的主意,并在這個(gè)數(shù)據(jù)訪問層中應(yīng)用安全設(shè)置來對(duì)業(yè)務(wù)數(shù)據(jù)的各種訪問進(jìn)行授權(quán)驗(yàn)證和控制,這樣就可以統(tǒng)一各種客戶端對(duì)數(shù)據(jù)存儲(chǔ)的安全應(yīng)用(事實(shí)上 iSecurityManager 也正是如此處理這個(gè)問題的)。權(quán)限設(shè)計(jì)數(shù)據(jù)庫(kù)結(jié)構(gòu)表 1 -權(quán)限許可 1 create table res_permission 1 ( 1 roleid INTEGER, 1 resourceid varchar2(30), 1 operationid integer, 1 primary key(roleid,resourceid,operationid) 1 ) 1 1 1 -角色定義 1 create table res_role 1 ( 1 roleid INTEGER, 1 rolename varchar2(30), 1 roledesc varchar2(100), 1 primary key(roleid) 1 ) 1 1 -角色權(quán)限 1 create table res_userrole 1 ( 1 roleid INTEGER, 1 userid varchar2(30),-用戶名 1 primary key(roleid,userid) 1 ) 1 1 -資源 1 create table res_resource 1 ( 1 resourceid varchar2(20), 1 resourcename varchar2(30), 1 resourcedesc varchar2(100), 1 primary key(resourceid) 1 ) 1 -操作信息 1 create table res_operation 1 ( 1 operationid varchar2(20), 1 operationname varchar2(30), 1 operationdesc varchar2(100), 1 primary key(operationid) 1 ) 1 -res_operation 表的序列號(hào) 1 create sequence res_operation_seq; 1 -res_role 表的序列 1 create sequence res_role_seq; 1 -建立soperationid與sroleid兩個(gè)序列分別用來產(chǎn)生Operation表與Role表的ID列 1 create sequence soperationid increment by 1 start with 1 nomaxvalue minvalue 1; 1 create sequence sroleid increment by 1 start with 1 nomaxvalue minvalue 1; 1 -表設(shè)計(jì)的原理-根據(jù)交叉法來匹配權(quán)限-1:根據(jù)用戶表中的用戶id關(guān)聯(lián)到res_userrole的userid,然后再關(guān)聯(lián)到res_role,查出用戶對(duì)應(yīng)的所有權(quán)限,存放到list中-2:根據(jù)資源和操作查詢出用戶可以操作的所有許可res_permission,存放到list中-3:通過同時(shí)遍歷兩個(gè)list,查詢出是否存在交叉,如果存在就是有權(quán)限,否則為無權(quán)限四海同志的文章中有這樣一句話:“傳統(tǒng)業(yè)務(wù)系統(tǒng)中,存在著兩種權(quán)限管理,其一是功能權(quán)限的管理,而另外一種則是資源權(quán)限的管理,在不同系統(tǒng)之間,功能權(quán)限是可以重用的,而資源權(quán)限則不能"。似乎他的那個(gè)權(quán)限設(shè)計(jì)也沒有能夠解決資源重用的問題。當(dāng)然,如果它把資源文件分別存放在不通的文件夾中,通過url來根據(jù)權(quán)限來判斷那就另當(dāng)別論了。我這個(gè)人比較懶,總是想用一個(gè)通用的方法,放在哪里都合適,因此在數(shù)據(jù)庫(kù)的設(shè)計(jì)上費(fèi)了一番腦筋了。其實(shí),很多的權(quán)限管理系統(tǒng)都不太一樣,因此,很多開發(fā)者開發(fā)出來的權(quán)限管理系統(tǒng)放在別的地方,就不一定合適了,往往需要重新開發(fā),權(quán)限管理系統(tǒng)的結(jié)構(gòu)不能變,變的僅僅是數(shù)據(jù)。在這樣的一個(gè)思想的指導(dǎo)下,我們就想法讓我們的結(jié)構(gòu)不要變,盡可能的通用,其實(shí)結(jié)構(gòu)在哪里,還是體現(xiàn)在數(shù)據(jù)庫(kù)上了。四海同志說:“權(quán)限”,“組”和“人”。而這三種元素可以任意添加,彼此之間不受影響。而我卻認(rèn)為,一個(gè)完整的權(quán)限管理系統(tǒng)應(yīng)該包括:用戶、角色、模塊、資源這四個(gè)部分,在數(shù)據(jù)庫(kù)的表設(shè)計(jì)上,這四張表叫做權(quán)限管理系統(tǒng)的實(shí)體表,只要把這四個(gè)實(shí)體表做出來,權(quán)限管理系統(tǒng)的架構(gòu)就搭建完整了,這樣的權(quán)限管理系統(tǒng)翻譯成中文那就是:權(quán)限管理系統(tǒng)是判斷(可能用判斷這個(gè)詞不是很準(zhǔn)確)用戶或角色對(duì)什么資源是否有什么功能的這樣一個(gè)系統(tǒng)。這樣設(shè)計(jì)出來的權(quán)限管理系統(tǒng)通用性、擴(kuò)展性才夠強(qiáng),系統(tǒng)足夠完整。四張實(shí)體表做好了,就意味著架構(gòu)搭建好了,那么邏輯關(guān)系怎么辦呢?我當(dāng)時(shí)設(shè)計(jì)的時(shí)候用另外的4張表來存儲(chǔ)他們之間的邏輯關(guān)系,總共8張表,四張實(shí)體表,四張邏輯關(guān)系表。 其它的權(quán)限管理系統(tǒng)可能少于8張表,一般通用性不會(huì)太好的。通常都是在完整的基礎(chǔ)上做了下變化,有的利用繼承來做,有的利用位運(yùn)算,還有的雖然不通用,但是也是充分利用了自身的特點(diǎn),一般都會(huì)少于8張表,但是一般翻譯成漢語(yǔ)都不完整。通常為:用戶對(duì)資源是否有什么功能、用戶或角色對(duì)資源是否有權(quán)限等等。切記,通用的權(quán)限管理系統(tǒng)無論是用戶、角色、模塊、資源哪個(gè)方面,都可以在不改變架構(gòu)的條件下去動(dòng)態(tài)的擴(kuò)展,改變的僅僅是數(shù)據(jù),而只要有這個(gè)思想,再結(jié)合自身項(xiàng)目的特點(diǎn),相信設(shè)計(jì)和開發(fā)各種各樣不通的權(quán)限管理系統(tǒng)不會(huì)有問題的用戶權(quán)限管理 2008-01-03通用權(quán)限管理系統(tǒng)設(shè)計(jì)篇(一)一引言 因?yàn)樽鲞^的一些系統(tǒng)的權(quán)限管理的功能雖然在逐步完善,但總有些不盡人意的地方,總想抽個(gè)時(shí)間來更好的思考一下權(quán)限系統(tǒng)的設(shè)計(jì)。 權(quán)限系統(tǒng)一直以來是我們應(yīng)用系統(tǒng)不可缺少的一個(gè)部分,若每個(gè)應(yīng)用系統(tǒng)都重新對(duì)系統(tǒng)的權(quán)限進(jìn)行設(shè)計(jì),以滿足不同系統(tǒng)用戶的需求,將會(huì)浪費(fèi)我們不少寶貴時(shí)間,所以花時(shí)間來設(shè)計(jì)一個(gè)相對(duì)通用的權(quán)限系統(tǒng)是很有意義的。二設(shè)計(jì)目標(biāo) 設(shè)計(jì)一個(gè)靈活、通用、方便的權(quán)限管理系統(tǒng)。 在這個(gè)系統(tǒng)中,我們需要對(duì)系統(tǒng)的所有資源進(jìn)行權(quán)限控制,那么系統(tǒng)中的資源包括哪些呢?我們可以把這些資源簡(jiǎn)單概括為靜態(tài)資源(功能操作、數(shù)據(jù)列)和動(dòng)態(tài)資源(數(shù)據(jù)),也分別稱為對(duì)象資源和數(shù)據(jù)資源,后者是我們?cè)谙到y(tǒng)設(shè)計(jì)與實(shí)現(xiàn)中的叫法。系統(tǒng)的目標(biāo)就是對(duì)應(yīng)用系統(tǒng)的所有對(duì)象資源和數(shù)據(jù)資源進(jìn)行權(quán)限控制,比如應(yīng)用系統(tǒng)的功能菜單、各個(gè)界面的按鈕、數(shù)據(jù)顯示的列以及各種行級(jí)數(shù)據(jù)進(jìn)行權(quán)限的操控。三相關(guān)對(duì)象及其關(guān)系 大概理清了一下權(quán)限系統(tǒng)的相關(guān)概念,如下所示:1. 權(quán)限系統(tǒng)的所有權(quán)限信息。權(quán)限具有上下級(jí)關(guān)系,是一個(gè)樹狀的結(jié)構(gòu)。下面來看一個(gè)例子系統(tǒng)管理 用戶管理 查看用戶 新增用戶 修改用戶 刪除用戶 對(duì)于上面的每個(gè)權(quán)限,又存在兩種情況,一個(gè)是只是可訪問,另一種是可授權(quán),例如對(duì)于“查看用戶”這個(gè)權(quán)限,如果用戶只被授予“可訪問”,那么他就不能將他所具有的這個(gè)權(quán)限分配給其他人。2. 用戶應(yīng)用系統(tǒng)的具體操作者,用戶可以自己擁有權(quán)限信息,可以歸屬于0n個(gè)角色,可屬于0n個(gè)組。他的權(quán)限集是自身具有的權(quán)限、所屬的各角色具有的權(quán)限、所屬的各組具有的權(quán)限的合集。它與權(quán)限、角色、組之間的關(guān)系都是n對(duì)n的關(guān)系。3. 角色為了對(duì)許多擁有相似權(quán)限的用戶進(jìn)行分類管理,定義了角色的概念,例如系統(tǒng)管理員、管理員、用戶、訪客等角色。角色具有上下級(jí)關(guān)系,可以形成樹狀視圖,父級(jí)角色的權(quán)限是自身及它的所有子角色的權(quán)限的綜合。父級(jí)角色的用戶、父級(jí)角色的組同理可推。4. 組為了更好地管理用戶,對(duì)用戶進(jìn)行分組歸類,簡(jiǎn)稱為用戶分組。組也具有上下級(jí)關(guān)系,可以形成樹狀視圖。在實(shí)際情況中,我們知道,組也可以具有自己的角色信息、權(quán)限信息。這讓我想到我們的QQ用戶群,一個(gè)群可以有多個(gè)用戶,一個(gè)用戶也可以加入多個(gè)群。每個(gè)群具有自己的權(quán)限信息。例如查看群共享。QQ群也可以具有自己的角色信息,例如普通群、高級(jí)群等。針對(duì)上面提出的四種類型的對(duì)象,讓我們通過圖來看看他們之間的關(guān)系。 有上圖中可以看出,這四者的關(guān)系很復(fù)雜,而實(shí)際的情況比這個(gè)圖還要復(fù)雜,權(quán)限、角色、組都具有上下級(jí)關(guān)系,權(quán)限管理是應(yīng)用系統(tǒng)中比較棘手的問題,要設(shè)計(jì)一個(gè)通用的權(quán)限管理系統(tǒng),工作量也著實(shí)不小。當(dāng)然對(duì)于有些項(xiàng)目,權(quán)限問題并不是那么復(fù)雜。有的只需要牽涉到權(quán)限和用戶兩種類型的對(duì)象,只需要給用戶分配權(quán)限即可。在另一些情況中,引入了角色對(duì)象,例如基于角色的權(quán)限系統(tǒng), 只需要給角色分配權(quán)限,用戶都隸屬于角色,不需要單獨(dú)為用戶分配角色信息。在下一篇中,我們將講述權(quán)限管理的數(shù)據(jù)庫(kù)設(shè)計(jì)等內(nèi)容。 歡迎各位拍磚或給出寶貴意見。用權(quán)限管理設(shè)計(jì)篇(二)數(shù)據(jù)庫(kù)設(shè)計(jì)理清了對(duì)象關(guān)系之后,讓我們接著來進(jìn)行數(shù)據(jù)庫(kù)的設(shè)計(jì)。在數(shù)據(jù)庫(kù)建模時(shí),對(duì)于N對(duì)N的關(guān)系,一般需要加入一個(gè)關(guān)聯(lián)表來表示關(guān)聯(lián)的兩者的關(guān)系。初步估計(jì)一下,本系統(tǒng)至少需要十張表,分別為:權(quán)限表、用戶表、角色表、組表、用戶權(quán)限關(guān)聯(lián)表、用戶角色關(guān)聯(lián)表、角色權(quán)限關(guān)聯(lián)表、組權(quán)限關(guān)聯(lián)表、組角色關(guān)聯(lián)表、用戶屬組關(guān)聯(lián)表。當(dāng)然還可能引出一些相關(guān)的表。下面讓我們?cè)赑owerDesigner中畫出各表吧。 各表及其關(guān)系如下: 1. 用戶表用戶表(TUser)字段名稱字段類型備注記錄標(biāo)識(shí)tu_idbigintpk, not null所屬組織to_idbigintfk, not null登錄帳號(hào)login_namevarchar(64)not null用戶密碼passwordvarchar(64)not null用戶姓名vsernamevarchar(64)not null手機(jī)號(hào)mobilevarchar(20) 電子郵箱emailvarchar(64) 創(chuàng)建時(shí)間gen_timedatetimenot null登錄時(shí)間login_timedatetime 上次登錄時(shí)間last_login_timedatetime 登錄次數(shù)countbigintnot null2. 角色表角色表(TRole)字段名稱字段類型備注角色I(xiàn)Dtr_idbigintpk, not null父級(jí)角色I(xiàn)Dparent_tr_idbigintnot null角色名稱role_namevarchar(64)not null創(chuàng)建時(shí)間gen_timedatetimenot null角色描述descriptionvarchar(200) 3. 權(quán)限表權(quán)限表(TRight)字段名稱字段類型備注權(quán)限IDtr_idbigintpk, not null父權(quán)限parent_tr_idbigintnot null權(quán)限名稱right_namevarchar(64)not null權(quán)限描述descriptionvarchar(200) 4. 組表組表(TGroup)字段名稱字段類型備注組IDtg_idbigintpk, not null組名稱group_namevarchar(64)not null父組parent_tg_idbigintnot null創(chuàng)建時(shí)間gen_timedatetimenot null組描述descriptionvarchar(200) 5. 角色權(quán)限表角色權(quán)限表(TRoleRightRelation)字段名稱字段類型備注記錄標(biāo)識(shí)trr_idbigintpk, not null角色Role_idbigintfk, not null權(quán)限r(nóng)ight_idbigintfk, not null權(quán)限類型right_typeintnot null(0:可訪問,1:可授權(quán))6. 組權(quán)限表組權(quán)限表(TGroupRightRelation)字段名稱字段類型備注記錄標(biāo)識(shí)tgr_idbigintpk, not null組tg_idbigintfk, not null權(quán)限tr_idbigintfk, not null權(quán)限類型right_typeintnot null(0:可訪問,1:可授權(quán))7. 組角色表組角色表(TGroupRoleRelation)字段名稱字段類型備注記錄標(biāo)識(shí)tgr_idbigintpk, not null組tg_idbigintfk, not null角色tr_idbigintpk, not null8. 用戶權(quán)限表<t> 用戶權(quán)限表(TUserRightRelation)字段名稱字段類型備注記錄標(biāo)識(shí)tur_idbigintpk, not null用戶tu_idbigintfk, not null通用權(quán)限管理系統(tǒng)設(shè)計(jì)篇(三)概要設(shè)計(jì)說明書 在前兩篇文章中,不少朋友對(duì)我的設(shè)計(jì)提出了異議,認(rèn)為過于復(fù)雜,當(dāng)然在實(shí)際的各種系統(tǒng)的權(quán)限管理模塊中,并不像這里設(shè)計(jì)得那么復(fù)雜,我以前所做的系統(tǒng)中,由只有用戶和權(quán)限的,有只有用戶、權(quán)限和角色的,還有一個(gè)系統(tǒng)用到了用戶、權(quán)限、角色、組概念,這個(gè)系統(tǒng)是我在思考以前所做系統(tǒng)的權(quán)限管理部分中找到的一些共性而想到的一個(gè)設(shè)計(jì)方案,當(dāng)然還會(huì)有不少設(shè)計(jì)不到位的地方,在設(shè)計(jì)開發(fā)過程中會(huì)慢慢改進(jìn),這個(gè)系統(tǒng)權(quán)當(dāng)學(xué)習(xí)只用,各位朋友的好的建議我都會(huì)考慮到設(shè)計(jì)中,感謝各位朋友的支持。 今天抽時(shí)間整了一份概念設(shè)計(jì)出來,還有一些地方尚未考慮清楚,貼出1.0版,希望各位朋友提出寶貴建議。 大家也可以點(diǎn)擊此處通用權(quán)限管理概要設(shè)計(jì)說明書自行下載,這是1.0版本,有些地方可能還會(huì)進(jìn)行部分修改,有興趣的朋友請(qǐng)關(guān)注我的blog。 1. 引言1.1 編寫目的本文檔對(duì)通用權(quán)限管理系統(tǒng)的總體設(shè)計(jì)、接口設(shè)計(jì)、界面總體設(shè)計(jì)、數(shù)據(jù)結(jié)構(gòu)設(shè)計(jì)、系統(tǒng)出錯(cuò)處理設(shè)計(jì)以及系統(tǒng)安全數(shù)據(jù)進(jìn)行了說明。1.2 背景a、 軟件系統(tǒng)的名稱:通用權(quán)限管理系統(tǒng);b、 任務(wù)提出者、開發(fā)者:謝星星;c、 在J2EE的web系統(tǒng)中需要使用權(quán)限管理的系統(tǒng)。1.3 術(shù)語(yǔ)本系統(tǒng):通用權(quán)限管理系統(tǒng);SSH:英文全稱是Secure Shell。1.4 預(yù)期讀者與閱讀建議預(yù)期讀者閱讀重點(diǎn)開發(fā)人員總體設(shè)計(jì)、接口設(shè)計(jì)、數(shù)據(jù)結(jié)構(gòu)設(shè)計(jì)、界面總體設(shè)計(jì)、系統(tǒng)出錯(cuò)處理設(shè)計(jì)設(shè)計(jì)人員總體設(shè)計(jì)、接口設(shè)計(jì)、數(shù)據(jù)結(jié)構(gòu)設(shè)計(jì)、系統(tǒng)安全設(shè)計(jì)1.5 參考資料通用權(quán)限管理系統(tǒng)需求規(guī)格說明書通用權(quán)限管理系統(tǒng)數(shù)據(jù)庫(kù)設(shè)計(jì)說明書2. 總體設(shè)計(jì)2.1 設(shè)計(jì)目標(biāo)權(quán)限系統(tǒng)一直以來是我們應(yīng)用系統(tǒng)不可缺少的一個(gè)部分,若每個(gè)應(yīng)用系統(tǒng)都重新對(duì)系統(tǒng)的權(quán)限進(jìn)行設(shè)計(jì),以滿足不同系統(tǒng)用戶的需求,將會(huì)浪費(fèi)我們不少寶貴時(shí)間,所以花時(shí)間來設(shè)計(jì)一個(gè)相對(duì)通用的權(quán)限系統(tǒng)是很有意義的。本系統(tǒng)的設(shè)計(jì)目標(biāo)是對(duì)應(yīng)用系統(tǒng)的所有資源進(jìn)行權(quán)限控制,比如應(yīng)用系統(tǒng)的功能菜單、各個(gè)界面的按鈕控件等進(jìn)行權(quán)限的操控。2.2 運(yùn)行環(huán)境操作系統(tǒng):Windows系統(tǒng)操作系統(tǒng)和Linux系列操作系統(tǒng)。2.3 網(wǎng)絡(luò)結(jié)構(gòu) 通用權(quán)限管理系統(tǒng)可采用Java Swing實(shí)現(xiàn),可以在桌面應(yīng)用和Web應(yīng)用系統(tǒng)中進(jìn)行調(diào)用。如果需要要適應(yīng)所有開發(fā)語(yǔ)言,可以將其API發(fā)布到WEB Service上。暫時(shí)用Java Swing實(shí)現(xiàn)。2.4 總體設(shè)計(jì)思路和處理流程在說明總體設(shè)計(jì)思路前,我們先說明本系統(tǒng)的相關(guān)概念:1.權(quán)限資源系統(tǒng)的所有權(quán)限信息。權(quán)限具有上下級(jí)關(guān)系,是一個(gè)樹狀的結(jié)構(gòu)。下面來看一個(gè)例子系統(tǒng)管理 用戶管理 查看用戶 新增用戶 修改用戶 刪除用戶對(duì)于上面的每個(gè)權(quán)限,又存在兩種情況,一個(gè)是只是可訪問,另一種是可授權(quán),例如對(duì)于“查看用戶”這個(gè)權(quán)限,如果用戶只被授予“可訪問”,那么他就不能將他所具有的這個(gè)權(quán)限分配給其他人。2.用戶應(yīng)用系統(tǒng)的具體操作者,用戶可以自己擁有權(quán)限信息,可以歸屬于0n個(gè)角色,可屬于0n個(gè)組。他的權(quán)限集是自身具有的權(quán)限、所屬的各角色具有的權(quán)限、所屬的各組具有的權(quán)限的合集。它與權(quán)限、角色、組之間的關(guān)系都是n對(duì)n的關(guān)系。3.角色為了對(duì)許多擁有相似權(quán)限的用戶進(jìn)行分類管理,定義了角色的概念,例如系統(tǒng)管理員、管理員、用戶、訪客等角色。角色具有上下級(jí)關(guān)系,可以形成樹狀視圖,父級(jí)角色的權(quán)限是自身及它的所有子角色的權(quán)限的綜合。父級(jí)角色的用戶、父級(jí)角色的組同理可推。4.組為了更好地管理用戶,對(duì)用戶進(jìn)行分組歸類,簡(jiǎn)稱為用戶分組。組也具有上下級(jí)關(guān)系,可以形成樹狀視圖。在實(shí)際情況中,我們知道,組也可以具有自己的角色信息、權(quán)限信息。這讓我想到我們的QQ用戶群,一個(gè)群可以有多個(gè)用戶,一個(gè)用戶也可以加入多個(gè)群。每個(gè)群具有自己的權(quán)限信息。例如查看群共享。QQ群也可以具有自己的角色信息,例如普通群、高級(jí)群等。針對(duì)如上提出的四種對(duì)象,我們可以整理得出它們之間的關(guān)系圖,如下所示:總體設(shè)計(jì)思路是將系統(tǒng)分為組權(quán)限管理、角色權(quán)限管理、用戶權(quán)限管理、組織管理和操作日志管理五部分。其中組權(quán)限管理包括包含用戶、所屬角色、組權(quán)限資源和組總權(quán)限資源四部分,某個(gè)組的權(quán)限信息可用公式表示:組權(quán)限 = 所屬角色的權(quán)限合集 + 組自身的權(quán)限。角色權(quán)限管理包括包含用戶、包含組和角色權(quán)限三部分,某個(gè)角色的權(quán)限的計(jì)算公式為:角色權(quán)限 = 角色自身權(quán)限。用戶權(quán)限管理包括所屬角色、所屬組、用戶權(quán)限、用戶總權(quán)限資源和組織管理五部分。某個(gè)用戶總的權(quán)限信息存在如下計(jì)算公式:用戶權(quán)限 = 所屬角色權(quán)限合集 + 所屬組權(quán)限合集 + 用戶自身權(quán)限。組織管理即對(duì)用戶所屬的組織進(jìn)行管理,組織以樹形結(jié)構(gòu)展示,組織管理具有組織的增、刪、改、查功能。操作日志管理用于管理本系統(tǒng)的操作日志。注意:因?yàn)榻M和角色都具有上下級(jí)關(guān)系,所以下級(jí)的組或角色的權(quán)限只能在自己的直屬上級(jí)的權(quán)限中選擇,下級(jí)的組或者角色的總的權(quán)限都不能大于直屬上級(jí)的總權(quán)限。2.5 模塊結(jié)構(gòu)設(shè)計(jì)本系統(tǒng)的具有的功能模塊結(jié)構(gòu)如下圖所示:2.6 尚未解決的問題無。3. 接口設(shè)計(jì)(暫略)3.1 用戶接口(暫略)3.2 外部接口(暫略)3.3 內(nèi)部接口(暫略)4. 界面總體設(shè)計(jì)本節(jié)將闡述用戶界面的實(shí)現(xiàn),在此之前對(duì)頁(yè)面元素做如下約定:序號(hào)頁(yè)面元素約定1按鈕未選中時(shí):按鈕名稱選中時(shí):按鈕名稱2單選框 選項(xiàng)3復(fù)選框 選項(xiàng)4下拉框 選項(xiàng), 5文本框 |_|6TextArea |7頁(yè)簽未選中時(shí):選項(xiàng)名稱 選中時(shí):選項(xiàng)名稱8未選中鏈接鏈接文字9選中鏈接鏈接文字10說明信息說明信息 4.1 組權(quán)限管理4.1.1包含用戶組信息 組1 組11 組12 組 組2 組21 組22 組 所選擇組:組1包含用戶 所屬角色 組權(quán)限 總權(quán)限修改用戶名 姓名 手機(jī)號(hào) 最近登錄時(shí)間 登錄次數(shù)阿蜜果 謝星星 13666666666 2007-10-8 66sterning xxx 13555555555 2007-10-8 10 當(dāng)用戶選擇“修改”按鈕時(shí),彈出用戶列表,操作人可以通過勾選或取消勾選來修改該組所包含的用戶。4.1.2所屬角色組信息 組1 組11 組12 組 組2 組21 組22 組 所選擇組:組1包含用戶 所屬角色 組權(quán)限 總權(quán)限修改角色I(xiàn)D 角色名稱 角色描述1 訪客 - 2 初級(jí)用戶 - 當(dāng)用戶選擇“修改”按鈕時(shí),彈出角色樹形結(jié)構(gòu),操作人可以通過勾選或取消勾選來修改該組所屬的角色。4.1.3組權(quán)限組信息 組1 組11 組12 組 組2 組21 組22 組 所選擇組:組1包含用戶 所屬角色 組權(quán)限 總權(quán)限 保存 取消4.1.4總權(quán)限組信息 組1 組11 組12 組 組2 組21 組22 組 所選擇組:組1包含用戶 所屬角色 組權(quán)限 總權(quán)限 保存 取消通過對(duì)已具有的權(quán)限取消勾選,或?yàn)槟硻?quán)限添加勾選,來修改組的權(quán)限信息,點(diǎn)擊“保存”按鈕保存修改信息。4.1.5組管理 在下圖中,選中組1的時(shí)候,右鍵點(diǎn)擊可彈出組的操作列表,包括添加、刪除和修改按鈕,從而完成在該組下添加子組,刪除該組以及修改該組的功能。組信息 組1 組11 組12 組 組2 組21 組22 組 所選擇組:組1包含用戶 所屬角色 組權(quán)限 總權(quán)限修改用戶名 姓名 手機(jī)號(hào) 最近登錄時(shí)間 登錄次數(shù)阿蜜果 謝星星 13666666666 2007-10-8 66sterning xxx 13555555555 2007-10-8 10 4.2 角色權(quán)限管理4.2.1包含用戶角色信息 角色1 角色11 角色12 角色 角色2 角色21 角色22 角色 所選擇角色:角色1包含用戶 包含組 角色權(quán)限修改用戶名 姓名 手機(jī)號(hào) 最近登錄時(shí)間 登錄次數(shù)阿蜜果 謝星星 13666666666 2007-10-8 66sterning xxx 13555555555 2007-10-8 10 當(dāng)用戶選擇“修改”按鈕時(shí),彈出用戶列表,操作人可以通過勾選或取消勾選來修改該角色所包含的用戶。4.2.2包含組角色信息 角色1 角色11 角色12 角色 角色2 角色21 角色22 角色 所選擇角色:角色1包含用戶 包含組 角色權(quán)限修改組ID 組名稱 組描述1 xxx1 -2 xxx2 - 當(dāng)用戶選擇“修改”按鈕時(shí),彈出用戶列表,操作人可以通過勾選或取消勾選來修改該角色所包含的組。4.2.3角色權(quán)限角色信息 角色1 角色11 角色12 角色 角色2 角色21 角色22 角色 所選擇角色:角色1包含用戶 包含組 角色權(quán)限 保存 取消通過對(duì)已具有的權(quán)限取消勾選,或?yàn)槟硻?quán)限添加勾選,來修改角色的權(quán)限信息,點(diǎn)擊“保存”按鈕保存修改信息。4.2.4管理角色 在下圖中,選中組1的時(shí)候,右鍵點(diǎn)擊可彈出組的操作列表,包括添加、刪除和修改按鈕,從而完成在該組下添加子組,刪除該組以及修改該組的功能。

注意事項(xiàng)

本文(用戶權(quán)限系統(tǒng)設(shè)計(jì)方案.doc)為本站會(huì)員(jian****018)主動(dòng)上傳,裝配圖網(wǎng)僅提供信息存儲(chǔ)空間,僅對(duì)用戶上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對(duì)上載內(nèi)容本身不做任何修改或編輯。 若此文所含內(nèi)容侵犯了您的版權(quán)或隱私,請(qǐng)立即通知裝配圖網(wǎng)(點(diǎn)擊聯(lián)系客服),我們立即給予刪除!

溫馨提示:如果因?yàn)榫W(wǎng)速或其他原因下載失敗請(qǐng)重新下載,重復(fù)下載不扣分。




關(guān)于我們 - 網(wǎng)站聲明 - 網(wǎng)站地圖 - 資源地圖 - 友情鏈接 - 網(wǎng)站客服 - 聯(lián)系我們

copyright@ 2023-2025  zhuangpeitu.com 裝配圖網(wǎng)版權(quán)所有   聯(lián)系電話:18123376007

備案號(hào):ICP2024067431號(hào)-1 川公網(wǎng)安備51140202000466號(hào)


本站為文檔C2C交易模式,即用戶上傳的文檔直接被用戶下載,本站只是中間服務(wù)平臺(tái),本站所有文檔下載所得的收益歸上傳人(含作者)所有。裝配圖網(wǎng)僅提供信息存儲(chǔ)空間,僅對(duì)用戶上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對(duì)上載內(nèi)容本身不做任何修改或編輯。若文檔所含內(nèi)容侵犯了您的版權(quán)或隱私,請(qǐng)立即通知裝配圖網(wǎng),我們立即給予刪除!