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