專利名稱:一種可配置的數(shù)據(jù)權(quán)限實現(xiàn)方法
技術(shù)領(lǐng)域:
發(fā)明涉及ー種計算機應(yīng)用技術(shù),具體地說是ー種在企業(yè)管理軟件中控制數(shù)據(jù)權(quán)限的方法
背景技術(shù):
業(yè)中不同的操作人員擁有不同的職責(zé),需要分配相應(yīng)的數(shù)據(jù)權(quán)限。每個企業(yè)對數(shù)據(jù)權(quán)限的控制有不同的要求,企業(yè)管理軟件需要靈活地控制數(shù)據(jù)權(quán)限。
發(fā)明內(nèi)容
本發(fā)明的目的是提供ー種可配置的數(shù)據(jù)權(quán)限實現(xiàn)方法。本發(fā)明的目的是按以下方式實現(xiàn)的,包括數(shù)據(jù)權(quán)限對象定義和數(shù)據(jù)權(quán)限控制接ロ,其中
1)數(shù)據(jù)權(quán)限對象定義是定義要對哪些表的內(nèi)容進行權(quán)限控制以及哪些操作需要進行此控制,需要控制數(shù)據(jù)權(quán)限的內(nèi)容記錄在表LSGRAN中,其中
(1)表LSGRAN記錄需要控制數(shù)據(jù)權(quán)限的表及權(quán)限內(nèi)容,該表的屬性包括權(quán)限編號、權(quán)限名稱、對應(yīng)表名、編號列、名稱列、條件、權(quán)限內(nèi)容、權(quán)限描述,其中字段F_TABN記錄需要控制權(quán)限的表,字段F_GRAN記錄需要控制的權(quán)限內(nèi)容,字段F_GRAN由15位字符組成,每位字符的值為O或1,表示不控制或控制權(quán)限,字段F_GRNR描述每位字符表示的具體信息,由“/”分隔,對應(yīng)字段F_GRAN中的每個字符所表示的權(quán)限內(nèi)容,包括増加/修改/刪除/查詢;
(2)表LSUSSJ記錄每個操作員的數(shù)據(jù)權(quán)限,該表的屬性職エ編號、數(shù)據(jù)編號、權(quán)限編號、權(quán)限控制字符串,其中字段F_GRAN記錄操作員擁有的數(shù)據(jù)權(quán)限;
(3)數(shù)據(jù)權(quán)限控制接ロ,根據(jù)傳入的參數(shù)數(shù)據(jù),判斷操作員是否擁有相應(yīng)權(quán)限;
保存規(guī)則如下
(O如果用戶有該數(shù)據(jù)對象的所有權(quán)限,LSUSSJ中存放相應(yīng)一條記錄,字段F_SJBH存放* ;
(2)如果用戶不具有該數(shù)據(jù)對象的任何權(quán)限,LSUSSJ中對該數(shù)據(jù)對象不存放任何記
錄;
(3)如果用戶先具有所有權(quán)限,再選擇去掉部分數(shù)據(jù)的權(quán)限,LSUSSJ存放一條記錄*表示有所有權(quán)限,然后針對去掉數(shù)據(jù)權(quán)限的內(nèi)容分別單獨存放一條記錄;
(4)如果用戶先不具有該數(shù)據(jù)對象的任何權(quán)限,再選擇部分數(shù)據(jù)的權(quán)限,LSUSSJ中對選擇的內(nèi)容分別單獨存放一條記錄;
2)數(shù)據(jù)權(quán)限控制接ロ包括用戶編號,會計年度,參數(shù)數(shù)據(jù),根據(jù)保存規(guī)則判斷相應(yīng)的用戶是否有相應(yīng)權(quán)限。本發(fā)明的優(yōu)異效果業(yè)中不同的操作人員擁有不同的職責(zé),需要分配相應(yīng)的數(shù)據(jù)權(quán)限。每個企業(yè)對數(shù)據(jù)權(quán)限的控制有不同的要求,企業(yè)管理軟件需要靈活地控制數(shù)據(jù)權(quán)限。
具體實施例方式本發(fā)明提供了ー種可配置的數(shù)據(jù)權(quán)限控制方法,由用戶自由配置哪些數(shù)據(jù)需要控制權(quán)限、需要控制哪些權(quán)限,為不同操作員分配不同的權(quán)限。系統(tǒng)提供了一個統(tǒng)ー接ロ,根據(jù)傳入的參數(shù)數(shù)據(jù)檢查用戶是否擁有權(quán)限。本發(fā)明主要由數(shù)據(jù)權(quán)限對象定義和數(shù)據(jù)權(quán)限控制接ロ組成。數(shù)據(jù)權(quán)限對象定義主要是定義要對哪些表的內(nèi)容進行權(quán)限控制以及哪些操作需要進行此控制,需要控制數(shù)據(jù)權(quán)限的內(nèi)容記錄在表LSGRAN中,該表的屬性權(quán)限編號、權(quán)限名稱、對應(yīng)表名、編號列、名稱列、條件、權(quán)限內(nèi)容、權(quán)限描述。其中字段F_TABN記錄需要控制權(quán)限的表,字段F_GRAN記錄需要控制的權(quán)限內(nèi)容,字段F_GRAN由15位字符組成,每位字符的值為O或1,表示不控制或控制權(quán)限,字段F_GRNR描述每位字符表示的具體信息,由“/”分隔,對應(yīng)字段F_GRAN中的每個字符所表示的權(quán)限內(nèi)容,如増加/修改/刪除/查詢 坐寸O
別名I列名I數(shù)據(jù)類型I空值I缺省I注釋
權(quán)限編號FQXBHvarchar (20)N編號系統(tǒng)編號+XXXX
權(quán)限名稱F QXMCvarchar(20)N標識名
對應(yīng)表名F TABNvarchar (20)N要定義權(quán)限的表
編號列_F—BHZDvarchar (12)N__要定義權(quán)限表的編號列_
名稱歹丨JF MCZDvarchar(12)N _要定義權(quán)限表的名稱歹Li
條件F WHERvarchar (250)Y定義時使用的條件
權(quán)限內(nèi)容F GRANchar (15)N 000000000000000要定義的具體權(quán)限
權(quán)限描述l·—GRNRIchar (255)| _ 具體權(quán)限的描迷,“/”分隔用戶的數(shù)據(jù)權(quán)限保存在表LSUSSJ中,該表的屬性職エ編號、數(shù)據(jù)編號、權(quán)限編號、權(quán)限控制字符串,保存規(guī)則如下
(O如果用戶有該數(shù)據(jù)對象的所有權(quán)限,LSUSSJ中存放相應(yīng)一條記錄,字段F_SJBH存放* ;
(2)如果用戶不具有該數(shù)據(jù)對象的任何權(quán)限,LSUSSJ中對該數(shù)據(jù)對象不存放任何記
求;
(3)如果用戶先具有所有權(quán)限,再選擇去掉部分數(shù)據(jù)的權(quán)限,LSUSSJ存放一條記錄*表示有所有權(quán)限,然后針對去掉數(shù)據(jù)權(quán)限的內(nèi)容分別單獨存放一條記錄;
(4)如果用戶先不具有該數(shù)據(jù)對象的任何權(quán)限,再選擇部分數(shù)據(jù)的權(quán)限,LSUSSJ中對選
擇
的內(nèi)容分別單獨存放一條記錄。
別名[列名I: 類型 1^值丨:_ 注釋
職エ編號 F_ZGBHVARCHAR{;6) N 操作員編號 權(quán)親編號 F QXBHVARCHAR(20) ' N 權(quán)艱編號 數(shù)據(jù)編號 F_SJBHVARCHAR{100) N 數(shù)撞編號 權(quán)艱控制字 F_GRANVARCHAR(15) N '000000 權(quán)Sg制字 符Φ 0000000 符$ ____00'__數(shù)據(jù)權(quán)限控制接ロ CheckUssj (用戶編號,會計年度,參數(shù)數(shù)據(jù)),根據(jù)上述規(guī)則判斷相應(yīng)的用戶是否有相應(yīng)權(quán)限。實施例
以控制部門的刪除權(quán)限為例,介紹本發(fā)明的
具體實施例方式 1、向表LSGRAN中插入數(shù)據(jù)
Insert into LSGRAN(F_QXBH, F_QXMC, F_TABN, F_BHZD, F_MCZD, F_WHER, F_GRAN, F_GRNR) values (' ZffBMQX','部門權(quán)限
’,’ ZffBMZD',’ ZWBMZD_BMBH’,’ ZWBMZD_BMMC’,’ ZWBMZD_MX=1’,’ 100000000000000’,’刪除’)
2、在數(shù)據(jù)權(quán)限分配功能中由管理員為每個操作員分配部門的刪除權(quán)限。例如分配0001用戶的部門01的刪除權(quán)限,
3、操作員0001在軟件中對部門01進行刪除操作時,系統(tǒng)判斷該操作員是否擁有該部門的刪除權(quán)限
select count (I) into :vlcountall from LSUSSJ WHERE F_ZGBH =’0001’ AND F_QXBH=' ZffBMQX' AND F_SJBH = ’ *’ ;
IF vlcountall > 0 then
select count (I) into :vlcount from LSUSSJ WHERE F_ZGBH =’ 0001’AND Substring(F_GRAN, I, I)= 0' AND F_QXBH = ' ZffBMQX' AND F_SJBH = ‘01’ ;
IF vlcount > 0 then Il沒有刪除權(quán)限 Else
Il有刪除權(quán)限end if
else
select count(I) into :vlcount from LSUSSJ WHERE F_ZGBH = ’0001’AND Substring(F_GRAN, I, I)=’ I’ AND F_QXBH = ' ZffBMQX' AND F_SJBH =,01’ ;
IF vlcount く= 0 then Il沒有刪除權(quán)限 Else
Il有刪除權(quán)限 end if end if
除說明書所述的技術(shù)特征外,均為本專業(yè)技術(shù)人員的已知技木。
權(quán)利要求
1.一種可配置的數(shù)據(jù)權(quán)限實現(xiàn)方法,其特征在于包括數(shù)據(jù)權(quán)限對象定義和數(shù)據(jù)權(quán)限控制接口,其中 1)數(shù)據(jù)權(quán)限對象定義是定義要對哪些表的內(nèi)容進行權(quán)限控制以及哪些操作需要進行此控制,需要控制數(shù)據(jù)權(quán)限的內(nèi)容記錄在表LSGRAN中,其中 (1)表LSGRAN記錄需要控制數(shù)據(jù)權(quán)限的表及權(quán)限內(nèi)容,該表的屬性包括權(quán)限編號、權(quán)限名稱、對應(yīng)表名、編號列、名稱列、條件、權(quán)限內(nèi)容、權(quán)限描述,其中字段F_TABN記錄需要控制權(quán)限的表,字段F_GRAN記錄需要控制的權(quán)限內(nèi)容,字段F_GRAN由15位字符組成,每位字符的值為O或1,表示不控制或控制權(quán)限,字段F_GRNR描述每位字符表示的具體信息,由“/”分隔,對應(yīng)字段F_GRAN中的每個字符所表示的權(quán)限內(nèi)容,包括增加/修改/刪除/ 查詢; (2)表LSUSSJ記錄每個操作員的數(shù)據(jù)權(quán)限,該表的屬性職工編號、數(shù)據(jù)編號、權(quán)限編號、權(quán)限控制字符串,其中字段F_GRAN記錄操作員擁有的數(shù)據(jù)權(quán)限; (3)數(shù)據(jù)權(quán)限控制接口,根據(jù)傳入的參數(shù)數(shù)據(jù),判斷操作員是否擁有相應(yīng)權(quán)限; 保存規(guī)則如下 (1)如果用戶有該數(shù)據(jù)對象的所有權(quán)限,LSUSSJ中存放相應(yīng)一條記錄,字段F_SJBH存放* ; (2)如果用戶不具有該數(shù)據(jù)對象的任何權(quán)限,LSUSSJ中對該數(shù)據(jù)對象不存放任何記錄; (3)如果用戶先具有所有權(quán)限,再選擇去掉部分數(shù)據(jù)的權(quán)限,LSUSSJ存放一條記錄*表示有所有權(quán)限,然后針對去掉數(shù)據(jù)權(quán)限的內(nèi)容分別單獨存放一條記錄; (4)如果用戶先不具有該數(shù)據(jù)對象的任何權(quán)限,再選擇部分數(shù)據(jù)的權(quán)限,LSUSSJ中對選擇的內(nèi)容分別單獨存放一條記錄; 2)數(shù)據(jù)權(quán)限控制接口包括用戶編號,會計年度,參數(shù)數(shù)據(jù),根據(jù)保存規(guī)則判斷相應(yīng)的用戶是否有相應(yīng)權(quán)限。
全文摘要
本發(fā)明適用于計算機領(lǐng)域,提供了一種可配置的數(shù)據(jù)權(quán)限實現(xiàn)方法,所述方法包括數(shù)據(jù)權(quán)限對象定義,讓用戶定義哪些表的數(shù)據(jù)需要控制權(quán)限,需要控制哪些權(quán)限;提供數(shù)據(jù)權(quán)限控制接口,根據(jù)傳入的參數(shù)數(shù)據(jù),判斷是否擁有相應(yīng)權(quán)限。采用這種方式控制數(shù)據(jù)權(quán)限效率高,可維護性強。
文檔編號G06F17/30GK102663316SQ20121005185
公開日2012年9月12日 申請日期2012年3月2日 優(yōu)先權(quán)日2012年3月2日
發(fā)明者王守金 申請人:浪潮集團山東通用軟件有限公司