權限管理模組主要由四個子模組所組成,包含使用者帳號管理、使用者群組
管理、功能模組管理、身分與權限檢查。依照各子模組所提供的模組功能,我們
查詢功能的方式來管理功能資料。
(4) 身分與權限檢查。負責在使用者登入數位典藏系統時,檢查帳號與密 碼,以及在使用數位典藏系統的功能時,檢查是否能使用此功能。當使 用者要登入數位典藏系統時,此子模組會先從權限管理模組資料庫中尋 找使用者的帳號與密碼進行確認。如果沒有錯誤,當使用者要使用系統 的功能時,會先檢查使用者所擁有的功能權限,以判斷有無權利使用此 功能。若上述過程中有錯誤發生(即帳號與密碼不符或沒有通過權限檢 查),則無法使用該功能。
除了說明各子模組的內容外,還可用資料儲存方式說明檢查身分與權限的運 作流程。在資料儲存方面,使用者帳號管理、使用者群組管理、功能模組管理三 者在資料庫中均有一個對應的表格(table)來儲存相關資料,以供身分與權限檢 查在檢查使用者身分與權限時使用。權限管理模組資料庫間各個表格的關係,可 以用 entity-relation diagram(實體關係圖,簡稱 E-R 圖)表示,E-R 圖是一種 資料庫的表示方法,表現資料的實體(entities)與實體間的關係(relations)。
圖 10 是根據權限管理模組資料庫架構畫出的 E-R 圖,圖中說明了每個實體的內 容與實體間的關係。
圖 10 權限管理模組資料庫的 E-R 圖
圖 10 顯示權限管理模組資料庫中包含 userinfo、groupinfo、functioninfo 三個 entities 與 group_user、function_group 兩個 relations,其中 userinfo 儲存使用者的資料,groupinfo 儲存使用者群組的資料,functioninfo 儲存功能
的資料,group_user 儲存使用者與使用者群組間的關係,function_group 儲存 使用者群組與功能的關係。權限管理模組資料庫除了提供使用者帳號管理、使用 者群組管理、功能模組管理作為資料儲存的空間外,而且提供身分與權限檢查作 為檢查使用者身分與權限的依據。當使用者輸入帳號與密碼後,身分與權限檢查 會從 userinfo 中尋找該使用者的資料,接著透過 group_user 與 groupinfo 取得 該使用者所屬的使用者群組資料,最後透過 function_group 與 functioninfo 得到該使用者的所有權限資料,身分與權限檢查會使用這些資料來判斷該使用者 使否擁有權限執行某些功能。
特別要說明的是,當使用者擁有個人權限時,userinfo 與 functioninfo 之 間並沒有使用 relation 來表示其關係,取而代之的是在 groupinfo 中建立一筆 儲存個人權限的資料,其處理方法與理由如下:當使用者擁有個人權限時會在 groupinfo 中建立一筆資料,此資料與其它儲存使用者群組資訊的資料差別在於
"群組名稱"與"群組描述"欄位被設為'個人權限',"是否為使用者個人權限"欄位 會被設為'Y',其它欄位被設為'null',並在 group_user 中建立使用者與該資料 的關係,接著在 function_group 建立該資料與所授與功能的關係。如此一來,
當要查詢使用者的所有權限時,可以同時查詢使用者的個人權限與繼承使用者群