RBAC(Role-Based Access Control,基於角色的訪問控制),就是用戶經過角色與權限進行關聯。簡單地說,一個用戶擁有若干角色,每個角色擁有若干權限。這樣,就構形成「用戶-角色-權限」的受權模型。在這種模型中,用戶與角色之間,角色與權限之間,通常者是多對多的關係。(以下圖).net
當用戶量很是多的時候,逐一的給用戶受權角色是一件很痛苦的事情,因而引出組的概念。用戶擁有的全部權限,就是用戶我的擁有的權限與該用戶所在用戶組擁有的權限之和。設計
OK,用戶到角色的好理解,接下來看權限blog
權限表現成什麼?對功能模塊的操做,對上傳文件的刪改,菜單的訪問,甚至頁面上某個按鈕、某個圖片的可見性控制,均可屬於權限的範疇。有些權限設計,會把功能操做做爲一類,而把文件、菜單、頁面元素等做爲另外一類,這樣構成「用戶-角色-權限-資源」的受權模型。圖片
操做的權限:資源
功能,credget
菜單的訪問sed
頁面按鈕的點擊權限
內容:im
圖片的可見性qq
菜單的可見
按鈕的可見
這些都是基本的權限。
powerdesigen設計圖以下:
權限表與權限菜單關聯表、權限菜單關聯表與菜單表都是一對一的關係。(文件、頁面權限點、功能操做等同理)。也就是每添加一個菜單,就得同時往這三個表中各插入一條記錄。這樣,能夠不須要權限菜單關聯表,讓權限表與菜單表直接關聯,此時,須在權限表中新增一列用來保存菜單的ID,權限表經過「權限類型」和這個ID來區分是種類型下的哪條記錄。
權限表和功能操做表多對多的關係。
請留意權限表中有一列「權限類型」,咱們根據它的取值來區分是哪一類權限,如「MENU」表示菜單的訪問權限、「OPERATION」表示功能模塊的操做權限、「FILE」表示文件的修改權限、「ELEMENT」表示頁面元素的可見性控制等。
總的設計圖:
實際項目中咱們涉及到的權限。
菜單權限,按鈕操做性等
參考文獻:
http://blog.csdn.net/painsonline/article/details/7183613/
轉自:http://blog.csdn.net/qq383264679/article/details/51745522