本人在專案中關於使用者角色許可權的經驗
》banq 我目前是把職務看成就是角色。
非常贊同職務就是角色這個說法
舉個現實中的例子:
一般公司:有總經理,部門經理,部門主管等等,這些是職務,對應角色。
總經理有炒人,籤合同職責,部門主管有審查簽到,這些是職責,對應許可權,職務包含很多職責,是職責的集合。
你進了一個公司,老闆說你是部門主管,你就知道你有哪些職責,能否炒人就看公司制度裡規定的部門主管有沒有炒人職責。
哪一天總經理出差,他出門說了一句:我出差這段時間你暫替一下我的工作。這句話的含義是他將總經理這個角色賦於你,
這段時間你可以炒人,籤專案合同,因為你有總經理角色,你是老大。他總不會說這段時間你可以炒人,籤合同,招人。。。
小公司:創業時就三個人,制度不完善,沒有這些職務,小張負責招人,小劉負責弄錢,小王負責專案。
這就將每一個使用者具體到職責了,就不存在職務(角色)的概念,所以小專案不需要角色。
我在這一口氣看了五個角色許可權的主題,從02,03年的文章看到09年
許可權角色的粗細真的是對不能系統而言,沒有通用的法則
我理解的概念是:(我在現有專案也是這樣做的)
使用者USER,是唯一的,體現在系統中登入id。
許可權privilege,是系統中定義好的function,固定有什麼,如:增,刪,改,查,稽核等
角色是許可權的集合,類似於公司的職務,如總經理
角色概念的使用不是必須的,但是經常會要有,
因為操作很多,不能直接將使用者和許可權關聯的。
使用者可以有組,角色可以有組
一個使用者可以有多個角色,但一次登入只有一個角色
開發部,市場部,是屬於組織結構範疇,通常表現為樹狀,有時也會網狀(網狀會比較複雜)
專案應用或舉例:
1:mysql的許可權控制,直接將使用者和許可權掛鉤,沒有角色的概念,因為他的許可權不多,只有增,刪,查,建立,drop。。。
表如下:
使用者 許可權 資源
user privilege table
2.oracle中是有角色概念的
3.角色的概念不是必須的,但為了方便賦於許可權,通常會有
舉例:總經理出差的舉例,他不會將他的職責全部列給你聽。
4.還有一點不知道哪一個貼子了,有人將功能和資源分開,說重用性比較大,如下:許可權(功能資源表)(多對多關聯表)
id 功能 資源
1 增 新聞
2 改 新聞
3 駁回 簡歷
角色許可權表
角色 功能許可權id
編輯 1
編輯 2
經理 1
經理 2
經理 3
但是這樣太細,使用者極有可能增加了一條 “4. 駁回 新聞”的許可權,顯然是錯誤的,你又是如何控制這條非法許可權的呢。
事實上,許可權就一列即可,系統定製的。
許可權表
id 功能許可權
1 增新聞
2 改新聞
3 駁回簡歷
角色許可權表同上(不用改),使用者需自定義角色時,只需將角色和許可權加到角色許可權表中即可。
這樣再將使用者和角色多對多關聯起來。
4. 至於開篇說的問題,市場部經理不能檢視和修改技術部的人員,這是屬於組織架構的問題,是資料過濾的許可權,也跟業務有關係了。
跟角色沒有必然聯絡。採用樹形過濾,就可以很好解決。
5. 至於還有人提出的包含排除的問題,角色許可權表設計成頭和明細的方式,更好,頭有角色,包含排除,明細有具體許可權。這樣可以減少大量資料和操作
例如:表頭
表Access
表頭id 角色 其他是否包含
1 總經理 是
2 編輯 否
表AccessLine
表頭id 功能許可權id 允許
1 1 否
2 1 是
這樣總經理只有all-1即除了“增新聞”的全部許可權。
編輯只具有0+1即只有“增新聞”的許可權
總之,使用者沒有直接跟許可權關聯(當然不是必須這樣設計),使用者與角色關聯,透過角色可以知道許可權。這樣角色可以複用,可以擴充套件,
操作簡易,至於角色的繼承是後一步具體實現的問題,還有使用者的組,角色的組,都是同理的。這樣才是一個比較好的解決方案。
我現在的專案就這樣做的,希望同道之人指出不妥之處。謝謝
本論壇中相關主題
http://www.jdon.com/jivejdon/thread/2897
http://www.jdon.com/jivejdon/thread/7309
http://www.jdon.com/jivejdon/thread/10122
http://www.jdon.com/jivejdon/thread/17652
http://www.jdon.com/jivejdon/thread/13450
非常贊同職務就是角色這個說法
舉個現實中的例子:
一般公司:有總經理,部門經理,部門主管等等,這些是職務,對應角色。
總經理有炒人,籤合同職責,部門主管有審查簽到,這些是職責,對應許可權,職務包含很多職責,是職責的集合。
你進了一個公司,老闆說你是部門主管,你就知道你有哪些職責,能否炒人就看公司制度裡規定的部門主管有沒有炒人職責。
哪一天總經理出差,他出門說了一句:我出差這段時間你暫替一下我的工作。這句話的含義是他將總經理這個角色賦於你,
這段時間你可以炒人,籤專案合同,因為你有總經理角色,你是老大。他總不會說這段時間你可以炒人,籤合同,招人。。。
小公司:創業時就三個人,制度不完善,沒有這些職務,小張負責招人,小劉負責弄錢,小王負責專案。
這就將每一個使用者具體到職責了,就不存在職務(角色)的概念,所以小專案不需要角色。
我在這一口氣看了五個角色許可權的主題,從02,03年的文章看到09年
許可權角色的粗細真的是對不能系統而言,沒有通用的法則
我理解的概念是:(我在現有專案也是這樣做的)
使用者USER,是唯一的,體現在系統中登入id。
許可權privilege,是系統中定義好的function,固定有什麼,如:增,刪,改,查,稽核等
角色是許可權的集合,類似於公司的職務,如總經理
角色概念的使用不是必須的,但是經常會要有,
因為操作很多,不能直接將使用者和許可權關聯的。
使用者可以有組,角色可以有組
一個使用者可以有多個角色,但一次登入只有一個角色
開發部,市場部,是屬於組織結構範疇,通常表現為樹狀,有時也會網狀(網狀會比較複雜)
專案應用或舉例:
1:mysql的許可權控制,直接將使用者和許可權掛鉤,沒有角色的概念,因為他的許可權不多,只有增,刪,查,建立,drop。。。
表如下:
使用者 許可權 資源
user privilege table
2.oracle中是有角色概念的
3.角色的概念不是必須的,但為了方便賦於許可權,通常會有
舉例:總經理出差的舉例,他不會將他的職責全部列給你聽。
4.還有一點不知道哪一個貼子了,有人將功能和資源分開,說重用性比較大,如下:許可權(功能資源表)(多對多關聯表)
id 功能 資源
1 增 新聞
2 改 新聞
3 駁回 簡歷
角色許可權表
角色 功能許可權id
編輯 1
編輯 2
經理 1
經理 2
經理 3
但是這樣太細,使用者極有可能增加了一條 “4. 駁回 新聞”的許可權,顯然是錯誤的,你又是如何控制這條非法許可權的呢。
事實上,許可權就一列即可,系統定製的。
許可權表
id 功能許可權
1 增新聞
2 改新聞
3 駁回簡歷
角色許可權表同上(不用改),使用者需自定義角色時,只需將角色和許可權加到角色許可權表中即可。
這樣再將使用者和角色多對多關聯起來。
4. 至於開篇說的問題,市場部經理不能檢視和修改技術部的人員,這是屬於組織架構的問題,是資料過濾的許可權,也跟業務有關係了。
跟角色沒有必然聯絡。採用樹形過濾,就可以很好解決。
5. 至於還有人提出的包含排除的問題,角色許可權表設計成頭和明細的方式,更好,頭有角色,包含排除,明細有具體許可權。這樣可以減少大量資料和操作
例如:表頭
表Access
表頭id 角色 其他是否包含
1 總經理 是
2 編輯 否
表AccessLine
表頭id 功能許可權id 允許
1 1 否
2 1 是
這樣總經理只有all-1即除了“增新聞”的全部許可權。
編輯只具有0+1即只有“增新聞”的許可權
總之,使用者沒有直接跟許可權關聯(當然不是必須這樣設計),使用者與角色關聯,透過角色可以知道許可權。這樣角色可以複用,可以擴充套件,
操作簡易,至於角色的繼承是後一步具體實現的問題,還有使用者的組,角色的組,都是同理的。這樣才是一個比較好的解決方案。
我現在的專案就這樣做的,希望同道之人指出不妥之處。謝謝
本論壇中相關主題
http://www.jdon.com/jivejdon/thread/2897
http://www.jdon.com/jivejdon/thread/7309
http://www.jdon.com/jivejdon/thread/10122
http://www.jdon.com/jivejdon/thread/17652
http://www.jdon.com/jivejdon/thread/13450
[該貼被crycz於2009-10-28 13:33修改過]
相關文章
- Jenkins配置基於角色的專案許可權管理Jenkins
- 關於SQL Server資料庫中的使用者許可權和角色管理SQLServer資料庫
- Oracle的物件許可權、角色許可權、系統許可權Oracle物件
- Oracle使用者角色許可權管理Oracle
- Oracle使用者、許可權、角色管理Oracle
- Quarkus中基於角色的許可權訪問控制教程
- 角色許可權(Role)和系統許可權(System)的幾個澄清實驗
- Oracle使用者訪問許可權與PUBLIC角色的關係Oracle訪問許可權
- 使用者角色許可權管理架構架構
- [學習]ORACLE使用者、角色、許可權Oracle
- Oracle使用者、許可權、角色管理【轉】Oracle
- 檢視角色裡包含的系統許可權、物件許可權和角色物件
- 檢視Oracle使用者的許可權或角色Oracle
- Sql Server關於許可權、角色以及登入名、使用者名稱的總結SQLServer
- mongodb關於使用者許可權的總結MongoDB
- 系統、角色、物件相關許可權字典物件
- 【使用者管理】oracle使用者、角色、許可權管理Oracle
- 基於角色的許可權系統的問題
- 關於oracle檔案許可權的問題Oracle
- 使用者有connect,resource,dba角色許可權後回收dba許可權導致無UNLIMITED TABLESPACE許可權造成業務中斷MIT
- SQL Server中查詢使用者的物件許可權和角色的方法SQLServer物件
- 使用者角色許可權系統完整設計(基於shiro)
- 許可權管理中角色間的繼承關係有沒有必要?繼承
- Oracle 查詢許可權角色Oracle
- 我的Django專案中的許可權機制Django
- 關於動態許可權
- 【轉】關於MySQL許可權MySql
- Oracle中使用者、角色、與許可權涉及的相關表及檢視Oracle
- MongoDB 3.2的使用者角色許可權介紹和配置MongoDB
- Oracle使用者及角色的許可權管理[Oracle基礎]Oracle
- vue專案實踐-前後端分離關於許可權的思路Vue後端
- Laravel——使用者角色許可權控制包 Laravel-permissionLaravel
- postgresql關於許可權的總結SQL
- Oracle角色許可權之Default RoleOracle
- Java Web角色許可權設計JavaWeb
- 關於 Laravel 日誌許可權Laravel
- 儲存過程,角色相關的呼叫者許可權和定義者許可權問題儲存過程
- 如何檢視oracle使用者具有的許可權和角色Oracle