如何設(shè)計(jì)ERP系統(tǒng)的數(shù)據(jù)權(quán)限?
數(shù)據(jù)是一個(gè)企業(yè)最重要的資產(chǎn)。很多企業(yè)之間的競(jìng)爭(zhēng),其實(shí)也是數(shù)據(jù)之爭(zhēng),資源之爭(zhēng)。數(shù)據(jù)權(quán)限,就如同為數(shù)據(jù)筑起的一座座城墻,清晰地劃分了用戶能看到的數(shù)據(jù)范圍,為數(shù)據(jù)提供安全保障。
01 問(wèn)題闡述
你有沒(méi)有聽(tīng)過(guò)這樣的例子:某企業(yè)的HR因?yàn)楣ぷ魇韬?,泄露了公司員工的工資表,由此帶來(lái)一大堆麻煩。公司內(nèi)的員工有因?yàn)楣べY少提出抗議的,更有直接離職的,而競(jìng)爭(zhēng)對(duì)手也趁機(jī)大挖墻腳。不僅損失了人才,更是損壞了公司名譽(yù),給公司帶來(lái)實(shí)際的損失。
而如果泄露的數(shù)據(jù)是企業(yè)的重要商業(yè)秘密,如客戶名單,則會(huì)給企業(yè)帶來(lái)致命的傷害。
這就是數(shù)據(jù)權(quán)限沒(méi)有控制好帶來(lái)的后果,很多人看到了不應(yīng)該看到的數(shù)據(jù)。
反過(guò)來(lái),企業(yè)員工如果沒(méi)有看到應(yīng)該看到的數(shù)據(jù),也會(huì)影響工作效率,甚至造成流程中斷。比如領(lǐng)導(dǎo)看不到下級(jí)的業(yè)績(jī),就無(wú)法完成管理工作。
由此,數(shù)據(jù)權(quán)限的重要性可見(jiàn)一斑。如何更合理地管理數(shù)據(jù)權(quán)限,讓數(shù)據(jù)權(quán)限如人所愿?數(shù)據(jù)權(quán)限是不是控制得越細(xì)越好?甚至是直接針對(duì)每一個(gè)人去設(shè)置數(shù)據(jù)范圍呢?
02 解決方案
我們知道,企業(yè)是“鐵打的營(yíng)盤,流水的兵”,員工調(diào)動(dòng)/離職是很正常的。所以針對(duì)每一個(gè)人去維護(hù)權(quán)限,顯然是不合理的,后期的維護(hù)成本會(huì)很高。更合理的做法是針對(duì)崗位/角色設(shè)置權(quán)限。
針對(duì)應(yīng)用場(chǎng)景的不同,有以下三種方案。
方案一
按照崗位體系建立數(shù)據(jù)權(quán)限。
把權(quán)限賦予崗位,再把員工(用戶)放在崗位上,從而間接把權(quán)限賦予用戶。
有的企業(yè)的數(shù)據(jù)權(quán)限很簡(jiǎn)單,就是普通員工只能看到自己的數(shù)據(jù),部門負(fù)責(zé)人可以看到本部門的數(shù)據(jù),高層管理可以看到所有下級(jí)部門的數(shù)據(jù)。這樣可以把這套規(guī)則直接寫死在系統(tǒng)里面,然后根據(jù)員工的任職崗位和部門去讀取對(duì)應(yīng)的數(shù)據(jù)范圍即可。
舉例:
張三是某公司的華南大區(qū)銷售經(jīng)理,華南大區(qū)下面有深圳區(qū)域和廣州區(qū)域,這兩個(gè)區(qū)域部門各自有1個(gè)區(qū)域銷售經(jīng)理和10個(gè)銷售員。為了避免區(qū)域之間的跨區(qū)銷售和惡性競(jìng)爭(zhēng),公司要求客戶信息和銷售訂單必須嚴(yán)格按照崗位體系來(lái)限制,每個(gè)銷售員只能看到自己的數(shù)據(jù),上級(jí)可以看到下級(jí)的數(shù)據(jù),下級(jí)不能看到上級(jí)的數(shù)據(jù)。同時(shí)所有人都只能看到自己部門的數(shù)據(jù),不能看到其他部門的數(shù)據(jù)。
這時(shí)根據(jù)崗位體系的數(shù)據(jù)權(quán)限,我們可以把銷售訂單和客戶兩個(gè)單據(jù)錄入到崗位體系數(shù)據(jù)權(quán)限里面,則這兩張單據(jù)的數(shù)據(jù)范圍受崗位體系限制。每個(gè)人查看銷售訂單和客戶的時(shí)候,只能看到他所有下屬(包括他自己)的數(shù)據(jù)。
其他沒(méi)有錄入的單據(jù),則不受崗位體系的限制,每個(gè)用戶都可以看到所有數(shù)據(jù)。
此方案的典型適用場(chǎng)景就是銷售管理系統(tǒng)、客戶關(guān)系管理系統(tǒng)(CRM)。
特點(diǎn):數(shù)據(jù)權(quán)限的劃分嚴(yán)格按照員工崗位體系劃分。
優(yōu)點(diǎn):設(shè)置簡(jiǎn)單,只需要錄入需要限制的單據(jù),選擇是按照部門或者按照下屬來(lái)限制即可。
缺點(diǎn):需要維護(hù)一套崗位體系;不夠靈活,無(wú)法查看跨部門的數(shù)據(jù)、上級(jí)領(lǐng)導(dǎo)的數(shù)據(jù)等。
也就是說(shuō),使用崗位體系數(shù)據(jù)權(quán)限只有兩種結(jié)果,要么受崗位體系限制,要么沒(méi)有限制(能看到所有數(shù)據(jù)), 其他需要限制但不是按照崗位體系限制的需求,則無(wú)法滿足。
比如有些集團(tuán)中心的財(cái)務(wù)、人事等崗位,需要看到整個(gè)集團(tuán)的數(shù)據(jù),但是他們又不是集團(tuán)領(lǐng)導(dǎo),其他人也不是他們的下屬,這種情況崗位體系數(shù)據(jù)權(quán)限是滿足不了的。
我們提供更為靈活的方案二。
方案二
針對(duì)角色設(shè)置數(shù)據(jù)權(quán)限。
把權(quán)限賦予角色,角色疊加到用戶上,從而間接把權(quán)限賦予用戶。
角色和崗位相比,有兩個(gè)好處:1、崗位是在企業(yè)組織架構(gòu)里面設(shè)立的,不能隨意修改,但是角色是可以靈活設(shè)置的,比如可以設(shè)置一個(gè)“華南大區(qū)報(bào)銷負(fù)責(zé)人”的角色,但是這個(gè)崗位在企業(yè)組織架構(gòu)中不存在,所以不能設(shè)立這樣一個(gè)崗位。2、角色可以多個(gè)疊加,比如張三又負(fù)責(zé)華南大區(qū)的費(fèi)用報(bào)銷,又負(fù)責(zé)華東大區(qū)的費(fèi)用報(bào)銷,就可以把“華南大區(qū)報(bào)銷負(fù)責(zé)人”和“華東大區(qū)報(bào)銷負(fù)責(zé)人”兩個(gè)角色都賦予張三。但是崗位上張三是一個(gè)“報(bào)銷專員”,并沒(méi)有身兼多職。
所以,角色比崗位要靈活很多。
我們先引入一個(gè)概念:數(shù)據(jù)規(guī)則。
將單據(jù)中的每一個(gè)字段都作為一個(gè)數(shù)據(jù)權(quán)限對(duì)象,然后對(duì)這些字段設(shè)置比較條件,這些比較條件組合起來(lái)就形成一個(gè)針對(duì)該單據(jù)的數(shù)據(jù)規(guī)則。每一個(gè)數(shù)據(jù)規(guī)則有一個(gè)名稱。
比如,我們可以設(shè)置一個(gè)數(shù)據(jù)規(guī)則,條件是:客戶所在地區(qū)等于A,并且,客戶狀態(tài)為待續(xù)簽。那么這條數(shù)據(jù)規(guī)則就可以看到A地區(qū)待續(xù)簽的客戶,我們可以把它命名為“A地區(qū)待續(xù)簽”。
所以,數(shù)據(jù)規(guī)則其實(shí)是某張單據(jù)的一個(gè)數(shù)據(jù)范圍,也就是某部分的數(shù)據(jù)。
比較條件可以設(shè)置變量,比如客戶的業(yè)務(wù)員為“當(dāng)前用戶對(duì)應(yīng)的業(yè)務(wù)員”,更靈活更方便維護(hù)。
設(shè)置好數(shù)據(jù)規(guī)則之后,我們把這個(gè)數(shù)據(jù)規(guī)則跟角色關(guān)聯(lián)起來(lái),就可以限制該角色能看到的數(shù)據(jù)范圍了。
如果不設(shè)置數(shù)據(jù)權(quán)限,則默認(rèn)能看到所有數(shù)據(jù)。
如果有多個(gè)角色賦予同一個(gè)用戶,且不同角色的數(shù)據(jù)權(quán)限不同,則取范圍的并集。
?舉例:
張三和李四都是集團(tuán)財(cái)務(wù),張三負(fù)責(zé)華南和華東的費(fèi)用報(bào)銷,李四負(fù)責(zé)華北和華中的費(fèi)用報(bào)銷。
此時(shí)可以設(shè)置兩個(gè)角色:
- 角色 “華南和華東的報(bào)銷專員”,設(shè)置了數(shù)據(jù)規(guī)則為“報(bào)銷部門為華南 或 報(bào)銷部門為華東”,該角色賦予張三。
- 角色 “華北和華中的報(bào)銷專員”,設(shè)置了數(shù)據(jù)規(guī)則為“報(bào)銷部門為華北 或 報(bào)銷部門為華中”,該角色賦予李四。
此方案完美解決了方案一的問(wèn)題,可以通過(guò)設(shè)置角色的權(quán)限來(lái)靈活地控制每一個(gè)用戶的權(quán)限,滿足很多特殊化的場(chǎng)景。缺點(diǎn):1、需要維護(hù)用戶的角色;2、數(shù)據(jù)規(guī)則雖然可以用變量,如果是多層的計(jì)算邏輯,則無(wú)法滿足。
方案三
崗位數(shù)據(jù)權(quán)限和角色數(shù)據(jù)權(quán)限的結(jié)合。
方案二的數(shù)據(jù)規(guī)則雖然可以針對(duì)每個(gè)字段靈活設(shè)置,但是也有其局限性。數(shù)據(jù)規(guī)則只能設(shè)置簡(jiǎn)單的變量,比如“報(bào)銷部門等于當(dāng)前用戶的所屬部門”(“當(dāng)前用戶的所屬部門”就是一個(gè)簡(jiǎn)單的變量),如果變量需要經(jīng)過(guò)多層邏輯計(jì)算,比如“當(dāng)前用戶的所屬部門的下級(jí)部門”,則無(wú)法滿足。
也就是說(shuō),按照崗位體系來(lái)劃分?jǐn)?shù)據(jù)權(quán)限的需求,方案二是滿足不了的??梢?jiàn),方案一和方案二其實(shí)是互補(bǔ)的關(guān)系。
企業(yè)的數(shù)據(jù)權(quán)限需求,無(wú)非就兩種,有些數(shù)據(jù)是基于崗位體系劃分?jǐn)?shù)據(jù)權(quán)限的,有些數(shù)據(jù)是需要靈活設(shè)置的。所以我們把方案一和方案二結(jié)合起來(lái),就形成了適用性更高的方案三。
此方案中,可以對(duì)角色設(shè)置崗位體系數(shù)據(jù)權(quán)限,同時(shí)還可以對(duì)角色設(shè)置其他的數(shù)據(jù)規(guī)則。也就是說(shuō),崗位體系數(shù)據(jù)權(quán)限和數(shù)據(jù)規(guī)則權(quán)限可以靈活切換、疊加來(lái)設(shè)置。
有的人可以只按照崗位體系數(shù)據(jù)權(quán)限來(lái)限制,有的人可以只按照數(shù)據(jù)規(guī)則來(lái)限制;有的人還可以又有崗位體系數(shù)據(jù)權(quán)限,又有數(shù)據(jù)規(guī)則權(quán)限。
如果同一角色同一單據(jù),又設(shè)置了崗位體系數(shù)據(jù)權(quán)限,又設(shè)置了數(shù)據(jù)規(guī)則權(quán)限,則取兩者的交集。
舉例:
企業(yè)內(nèi)所有員工都要使用費(fèi)用報(bào)銷模塊,要求普通員工只能看到自己的數(shù)據(jù),領(lǐng)導(dǎo)可以看到直屬下級(jí)的數(shù)據(jù)。同時(shí)集團(tuán)的財(cái)務(wù)張三負(fù)責(zé)華南和華東的費(fèi)用報(bào)銷,李四負(fù)責(zé)華北和華中的費(fèi)用報(bào)銷。
此時(shí)可以設(shè)置三個(gè)角色:
- 角色“崗位費(fèi)用報(bào)銷”,設(shè)置崗位體系數(shù)據(jù)權(quán)限,選擇直接下屬,并把角色賦予除張三和李四外的所有用戶。則這些用戶可以看到自己的數(shù)據(jù)及自己直接下屬的數(shù)據(jù)。(普通員工沒(méi)有下屬,只能看到自己的數(shù)據(jù))。
- 角色 “華南和華東的報(bào)銷專員”,設(shè)置了數(shù)據(jù)規(guī)則為“報(bào)銷部門為華南 或 報(bào)銷部門為華東”,該角色賦予張三。
- 角色 “華北和華中的報(bào)銷專員”,設(shè)置了數(shù)據(jù)規(guī)則為“報(bào)銷部門為華北 或 報(bào)銷部門為華中”,該角色賦予李四。
普通員工和領(lǐng)導(dǎo)有崗位體系數(shù)據(jù)權(quán)限,財(cái)務(wù)張三和李四有數(shù)據(jù)規(guī)則數(shù)據(jù)權(quán)限。
方案三綜合了以上兩者的優(yōu)點(diǎn),更加靈活便捷。很少企業(yè)是完全按照崗位體系來(lái)劃分?jǐn)?shù)據(jù)權(quán)限的,也很少企業(yè)所有的數(shù)據(jù)權(quán)限都可以用數(shù)據(jù)規(guī)則來(lái)限制,大多數(shù)是兩種需求都有的情況。所以方案三的適用性更好,更適用于全員應(yīng)用的系統(tǒng)。
03 總結(jié)
方案都有好壞,主要是看不同的系統(tǒng)及企業(yè)權(quán)限管理需求。核心方案是:數(shù)據(jù)范圍劃分清晰、準(zhǔn)確,設(shè)置靈活、維護(hù)成本低。
數(shù)據(jù)是一個(gè)企業(yè)最重要的資產(chǎn)。很多企業(yè)之間的競(jìng)爭(zhēng),其實(shí)也是數(shù)據(jù)之爭(zhēng),資源之爭(zhēng)。數(shù)據(jù)權(quán)限,就如同為數(shù)據(jù)筑起的一座座城墻,清晰地劃分了用戶能看到的數(shù)據(jù)范圍,為數(shù)據(jù)提供安全保障。
本文由 @? 石頭_綠 原創(chuàng)發(fā)布于人人都是產(chǎn)品經(jīng)理。未經(jīng)許可,禁止轉(zhuǎn)載
題圖來(lái)自 Unsplash,基于 CC0 協(xié)議
怎么都是功能權(quán)限,不是數(shù)據(jù)權(quán)限啊
分成了功能權(quán)限和數(shù)據(jù)權(quán)限吧,數(shù)據(jù)權(quán)限又分成了崗位數(shù)據(jù)權(quán)限和規(guī)則數(shù)據(jù)權(quán)限
疑問(wèn):
1.方案一,在沒(méi)有數(shù)據(jù)規(guī)則的前提下怎么限制自己所能看到的數(shù)據(jù)(有的單據(jù)是有直接負(fù)責(zé)人,有的是通過(guò)類似區(qū)域的規(guī)則間接指定負(fù)責(zé)人)?
2.數(shù)據(jù)規(guī)則,對(duì)于單據(jù)是有直接負(fù)責(zé)人是否也要在數(shù)據(jù)規(guī)則中體現(xiàn),設(shè)置單據(jù)負(fù)責(zé)人為“當(dāng)前用戶”?
3.怎么實(shí)現(xiàn)權(quán)限數(shù)據(jù)的集合和情況,比如規(guī)定能看到某范圍的數(shù)據(jù),但僅能操作此范圍中的一部分?
當(dāng)企業(yè)組織結(jié)構(gòu)發(fā)生調(diào)整了, 那數(shù)據(jù)權(quán)限怎么控制呢? 調(diào)整之前的部門的數(shù)據(jù)怎么處理呢?
同問(wèn)??!組織結(jié)構(gòu)頻繁變動(dòng)時(shí)新舊數(shù)據(jù)如何處理,新數(shù)據(jù)權(quán)限如何調(diào)整?
請(qǐng)大佬回復(fù)下哇,這個(gè)問(wèn)題沒(méi)找到好的方案
這種情況一般出現(xiàn)在做了組織結(jié)構(gòu)集成的項(xiàng)目中,一般HR不是很懂信息化,不會(huì)考慮到下行系統(tǒng)怎么處理數(shù)據(jù),一般分為兩種情況:(注:一般后臺(tái)如果有變動(dòng),系統(tǒng)可自己加一層判斷是否同步更新,不然容易被HR玩壞)
1 、人員變動(dòng):HR調(diào)整人員組織結(jié)構(gòu),從A部門調(diào)整到B部門(或者直接刪除A,在B部門給新建了一個(gè)身份),系統(tǒng)需要保證的是數(shù)據(jù)需要跟組織機(jī)構(gòu)串走,不跟人走,原來(lái)部門起的數(shù)據(jù)歸口在原部門,但是被調(diào)動(dòng)人員有查看權(quán)限,具體看系統(tǒng)怎么設(shè)計(jì)
2、部門變動(dòng):這種情況很少見(jiàn),一般是改個(gè)部門名字或者新建部門在把人員調(diào)過(guò)去。。暫時(shí)未處理過(guò)這種情況,同求大佬解答
多謝,很有啟發(fā),之前就被多任職的數(shù)據(jù)管理弄得不得行了
干貨滿滿
直接下屬和所有下屬有什么區(qū)別?方案一采用“所有下屬”,方案三采用“直接下屬”,但結(jié)果都一樣
直接下屬只有一層,所有下屬有多層。比如,總監(jiān)的直接下屬是經(jīng)理,經(jīng)理的直接下屬是專員,總監(jiān)的所有下屬是經(jīng)理+專員。當(dāng)然,對(duì)于沒(méi)有下屬或者只有直接下屬的員工來(lái)講,沒(méi)有區(qū)別。