朱軍紅 唐明根 張小玲

[摘 ? ?要] 各類軟件應用系統幾乎都涉及系統應用權限、系統用戶賬號處理問題,每開發一個應用系統進行一次重復性的勞動費時費力。文章文以系統管理各種概念的區別入手,在明確概念的前提下提出了一套通用系統管理的設計方案。可為應用軟件系統開發團隊提供有益的借鑒。
[關鍵詞] 系統管理;用戶;角色;崗位;組織機構;權限
doi : 10 . 3969 / j . issn . 1673 - 0194 . 2019. 23. 059
[中圖分類號] TP315 ? ?[文獻標識碼] ?A ? ? ?[文章編號] ?1673 - 0194(2019)23- 0138- 03
1 ? ? ?開發通用系統管理的意義
從Windows、Linux等操作系統到各類的應用管理系統,每個系統都需要處理系統權限與用戶賬戶問題。管理信息系統還需要處理組織機構、人員、客戶等問題。定義一種適應于各類系統的系統管理機制,開發成相對獨立的系統,重復應用在多個不同的系統中可以節約開發時間,提高開發效率,縮短軟件開發周期。提高軟件開發效益。
2 ? ? ?幾個容易混淆的概念
2.1 ? 人員與用戶
在信息系統建設過程中都存在人員與用戶的管理問題。
首先,有的系統每個企業成員都要登錄使用系統,所有人員都是用戶。有的系統部分人員登錄使用系統,只有部分人員才是用戶。其次,用戶信息與人員信息有相互重疊,可對系統分析設計人員造成迷惑。
以上兩種客觀事實的存在就給軟件開發者,尤其是缺乏經驗的開發者帶來了混淆。在系統設計之初不能正確的處理兩者的關系,將二者混為一談用一張數據表存放信息,在后期的開發設計應用中總感覺別扭不順手。其實人員信息是企業中需要統一規劃的一個基本信息,人員信息涉及企業各種管理活動,人員信息可以簡單到采用一張數據表存放,也可以復雜到采用人力資源管理系統進行管理。不管企業規模的大小人員信息是一個實體,必須單獨存放。存放人員信息應該設置本企業人員的唯一識別號,唯一識別號長度信息容量應該考慮企業的規模及企業的發展不宜太短。企業信息系統的用戶來源于人員,企業中可能具有多種的應用系統,應用系統的用戶可以采用不同類型的數據庫存放,但是對于相同的人不論在哪個系統中人員信息應該是相同的唯一的,不應該相互冗余也不應該不一致。
2.2 ? 崗位與角色
角色是完成一定任務的執行者,一個演員在同一部戲中可以扮演女兒,同時扮演青年時代的媽媽,女兒與媽媽在戲里是兩個角色,但扮演者是同一個人。這與企業管理中的角色和崗位的關系很相似,戲中扮演者的崗位是演員,根據劇情的需要可以扮演不同的角色。企業中的崗位是員工從事工作的職位,一個崗位根據企業運營的實際需要,可以執行多種任務擔當不同的角色。企業各類管理事務的執行都是通過角色的擔當來完成,角色是企業具體活動的承載者,是各種執行權限的體現者。系統設計中需要將崗位和角色采用不同的數據表存放信息,鑒于一個崗位可以承擔多個角色上的工作任務,需要設計數據表存放崗位與角色間的關系。在建立信息系統時需要區好角色與崗位的關系才能夠設計出靈活方便,易于使用的信息系統,同時便于系統擴充。
2.3 ? 組織機構與隸屬關系
在進行需求分析時企業常給開發者介紹企業的組織架構,組織架構一般是以樹形結構的方式體現,樹形結構有效地體現了企業組織的隸屬關系,在企業管理者看來樹形結構表現了企業各部門間的管理關系。實質上企業展現給分析人員的樹形結構表現了兩層意思,其一是企業有哪些機構,其二是機構間的隸屬關系,在系統設計中極容易將兩者混淆,不能正確的設計結構,通常會采用一張數據表存放企業組織架構。結果在程序編制中這樣的結構也能使用,但是在組織結構發生變化或隸屬關系發生變化時,對于查詢歷史數據就會造成極大的不便。正確的做法應該是將兩種關系分開存放,對于組織機構要納入信息資源統一規劃的范疇,一個機構在企業只要產生過就應該具有唯一的代號,即使將來該機構取消了,其機構代碼還應該存在,這樣便于歷史信息查詢。機構間的隸屬關系可能會隨著企業的發展發生變革,對于隸屬關系變革都需要進行存儲。當然將組織機構與隸屬關系分開存放是一種符合數據范式的做法,如果你愿意也可以采用一張數據表存放兩種關系,在每條記錄中加入一個parentID字段用于存放上級組織機構的編碼,該表采用雙親表示法可以存放數據庫組織機構及隸屬關系兩種信息,但是應用起來可能會麻煩一點。
3 ? ? ?權限的存儲方式
軟件中系統權限存儲采用授權文件、授權記錄、授權字符串三種方式進行存儲,對于一些軟件根據系統運行的硬件信息,如CPU號、網卡硬件地址、硬盤序列號等信息結合軟件采用一定的算法生成一個軟件授權文件,軟件運行時系統根據硬件察看授權文件,如果運行軟件的硬件信息與授權文件一致系統將運行,否則軟件將不運行。授權記錄適用于系統權限較多,每個權限采用特殊的記錄存放,記錄的存放形式可以是文本文件記錄也可以是數據庫記錄。具有對應記錄就可以運行對應的軟件功能模塊。不具有對應的記錄相應的軟件功能將不能運行。在系統權限較少且具有規律性的情況下,可采用字符串或數字來表示系統權限,在unix系統中對于文件的權限采用三位數字表示文件所有者、同組人員、其他人員對文件的讀寫及執行權限。如777表示文件所有者、同組人員、其他人員都可以對文件進行讀寫與執行操作,當然給文件設置777的權限是一種較為危險的做法,還是設置成755比較安全些。想詳細了解Unix系統權限可以參閱Unix的相關書籍。
4 ? ? ?靈活的權限分配機制
對于系統權限較多,用戶較多的軟件系統進行系統初始設置將是一件極為費時的工作。為了便于用戶的使用,提高系統效率,通常的做法是在系統中設置一些角色,根據需要為每個角色設置若干的系統權限,然后再設置一些崗位,為崗位分配一定數量的角色,最后將人員分配到各崗位上去。系統運行時就可以根據用戶的崗位查看到角色,然后根據角色直接查看到系統的權限,這樣做就可以避免直接為每個人員分配權限,直接為每個人員直接分配角色的煩瑣操作,達到了有效提高管理效率的目的。當然采用崗位、角色權限管理機制還是不能解決所有的需求。為了滿足將特定權限可授權給指定用戶的需求,軟件系統需要在提供崗位、角色權限分配機制的前提下同樣提供直接將權限直接分配給用戶的機制,如Windows中可以將系統備份權授權給任何指定的用戶。只有這樣才能夠適應實際的市場需求。
5 ? ? ?系統管理物理設計
如圖1所示,本結構采用PowerDesigner設計,為適合于通用系統管理的要求,刪除了具體項目中使用的一些字段,系統權限采用了記錄方式存放,首先將系統使用到的權限存放在系統權限表中,然后為角色分配系統權限,為崗位分配角色,最后給人員分配崗位,再根據需要為用戶分配特定的權限。用戶登錄系統后,可以根據用戶編號查詢用戶崗位信息,然后查詢角色信息,根據角色權限表得到用戶崗位下的所有權限,再根據用戶編號查詢用戶權限表得到單獨分配給用戶的權限,最后將兩個查詢結果求并集得到用戶真正擁有的所有系統權限。
一個角色可以擁有多個系統權限,不同的角色可以擁有相同的系統權限。
6 ? ? ?系統權限與其他權限綜合使用
在現實的生活中對于軟件保護與簡單的業務管理使用單一的一類權限管理就可以滿足實際的需要,但是對于業務復雜的管理系統可能會涉及多種權限的配合使用,才能有效靈活地管理信息。如一家公司在全國有多個銷售點,在一座城市又具有多家門店,各門店具有同樣的業務操作,要求各門店使用同一數據庫系統,門店間可以查詢庫存以便于銷售時庫存信息共享,銷售其他門店具有庫存的商品,這樣的系統就需要具有門店權限,具有本門店權限的銷售人員可銷售本門店的商品,商品銷售后庫存減少。對于其他門店的商品庫存,這個銷售人員只能查看庫存。如果商品的種類較多,可能還需要對商品分類,并對每個用戶分配不同的大類權限,用戶只有具備了該大類商品管理權才能實施系統賦予的銷售或入庫等操作。在同一個系統中各種權限的方式可以不相同,系統權限可以采用數據庫記錄的方式進行存放,系統設計時可為各種系統權限定義具體的權限記錄,在系統權限表中具有該記錄表示具有該權限,否則沒有該權限。對于商品大類這樣的權限,由于商品大類較多,各大類又具有相同的特性,存放這類權限采用字符串或二進制串較為合理,一次取出所有大類的權限。
7 ? ? ?權限使用
用戶登錄系統時,可將用戶的權限從數據庫取出,對權限結構進行權限初始化,然后將權限在結構緩存起來,程序中可以調用權限結構進行權限判斷,以確定信息是否可以顯示,業務能否操作完成等。登錄取出權限緩存使用可有效減少數據庫連接次數和數據查詢時間,可提高軟件系統的運行效率。這種方法已被廣泛應用。
8 ? ? ?改進意見
在現實中有些角色是不能有相同的人擔任,有些權限不能讓一個用戶同時擁有。為了保證系統管理的嚴謹,系統管理中還需要設置角色沖突信息表和權限沖突信息表,將相互沖突的角色與相互沖突的權限存放起來。在為崗位分配角色時可檢查角色沖突表,確保相互沖突的角色不能分配給同一個崗位。在分配權限時可檢查權限沖突表,確保相互沖突的權限不會分配給同一個用戶。