關於系統中許可權和角色設計的問題

2021-04-29 05:06:29 字數 1021 閱讀 1346

關於系統中許可權和角色設計的問題

系統中要求有賦予角色和賦予許可權,現在系統想對某個使用者的許可權增加,並且增加的許可權是大於使用者的角色的,讓該使用者進去既能顯示當前角色有的選單也能看到新增的許可權選單,相關資料庫表設計如下:

許可權設計最少有 6 張表:

1,使用者表 儲存系統使用者資訊,如張

三、李四,字段可以有id、name、fullname、email、phone、……

2,角色表 儲存角色資訊,如學生、管理員,欄位有id、name、……

3,許可權表 儲存系統的許可權資訊,可定義系統哪些模組公開,或者什麼時段可訪問

4,使用者角色表 關聯使用者和角色的關係表,如張三-學生,李四-管理員,欄位有id、使用者id、角色id,根據使用者就知道所屬的角色

5,角色許可權表 關聯角色和許可權的關係表

6,使用者許可權表

一般來說第六張表用不到,但是你的需求會用到這張表。 查詢每個使用者擁有什麼許可權,得做兩件事:1,從對應的使用者中找出所有的角色;2,從對應的角色中找出所有的許可權。然後將這些許可權進行濾重就是該使用者所擁有的許可權。

對於超級管理員來說,只要設定乙個 sys_admins 的角色就可以了,並不需要在角色許可權中新增對應關係。

由於 sys_admins 擁有所有的許可權,因此也沒必要畫蛇添足去新增這個角色的許可權對應關係了。對於這個角色做特殊處理, 比如說先檢查角色,如果角色中含有 sys_admins 就直接返回 true,以示擁有所有許可權。

以下為針對角色選單相關設計:

設定使用者為多角色,各種角色許可權綜合為使用者許可權

資料庫為角色表,使用者表,選單模組表,角色模組表

還可以直接給使用者賦許可權(不用通過給角色賦許可權,然後給使用者賦角色)

增加乙個:使用者許可權表就可以啦。字段資訊: 使用者id,  許可權id 。

這個非常簡單。困難的是細粒度許可權,也就是資料級許可權。比如:

1 資料例項級別的訪問控制。例如不同級別的審核員的審核不同金額的訂單資料;

2 資料字段級別的訪問控制。例如銷售部所以員工都能檢視客戶資訊,但只有該客戶的客戶經理才能夠檢視****;

Oracle的使用者許可權和角色

使用者和許可權 lock unlock建立使用者時是否鎖定,預設為鎖定狀態。鎖定的使用者無法正常的登入進行資料庫操作。給普通使用者scott解鎖,同時把scott使用者的密碼進行修改 語法結構 alter user 使用者名稱 identified by 新密碼 account unlock alt...

ORACLE資料庫中許可權和角色

oracle資料庫是一種大型關係型的資料庫,我們知道當使用乙個資料庫時,僅僅能夠控制哪些人可以訪問資料庫,哪些人不能訪問資料庫是無法滿足資料庫訪問控制的。dba需要通過一種機制來限制使用者可以做什麼,不能做什麼,這在oracle中可以通過為使用者設定許可權來實現。許可權就是使用者可以執行某種操作的權...

Oracle 10g的使用者 許可權和角色

oracle 本身的資料字典設計我個人覺得很合理,因為dba all user 讓人一看大概就知道 一.概述 與許可權,角色相關的檢視大概有下面這些 dba sys privs 查詢某個使用者所擁有的系統許可權 user sys privs 當前使用者所擁有的系統許可權 session privs ...