聊聊B端數(shù)據(jù)權(quán)限管理,特殊業(yè)務(wù)場(chǎng)景也能通用的設(shè)計(jì)
數(shù)據(jù)權(quán)限是B端產(chǎn)品經(jīng)理需要掌握的技能點(diǎn)之一,這篇文章,作者從數(shù)據(jù)權(quán)限的基礎(chǔ)概念開始講起,向我們介紹了數(shù)據(jù)權(quán)限管理模型、特殊業(yè)務(wù)場(chǎng)景的通用設(shè)計(jì),文末還提供一種特殊的權(quán)限設(shè)計(jì)思路,我們一起來看下吧。
上一篇分享了功能權(quán)限設(shè)計(jì),這一篇詳細(xì)分享數(shù)據(jù)權(quán)限架構(gòu)。文末會(huì)提供一種特殊的權(quán)限設(shè)計(jì)思路,一定要看到最后哦!
一、數(shù)據(jù)權(quán)限基礎(chǔ)概念
1、數(shù)據(jù)權(quán)限
數(shù)據(jù)權(quán)限管理:定義登錄用戶可以查看哪些數(shù)據(jù)記錄。即:定義用戶登錄系統(tǒng)之后,可以查看哪些客戶、哪些訂單、哪些產(chǎn)品等數(shù)據(jù)記錄。
2、對(duì)象級(jí)數(shù)據(jù)權(quán)限
對(duì)象級(jí)數(shù)據(jù)權(quán)限包括:對(duì)于功能對(duì)象數(shù)據(jù)的增、刪、改、查四類操作:
- 查:用戶允許查看數(shù)據(jù);
- 增:用戶允許創(chuàng)建數(shù)據(jù);
- 刪:用戶允許查看并刪除數(shù)據(jù);
- 改:用戶允許查看并修改數(shù)據(jù)。
注:增、刪、改這三類權(quán)限,通常在功能權(quán)限控制中也可以通過按鈕是否可以使用來進(jìn)行控制,但對(duì)象的數(shù)據(jù)權(quán)限定義時(shí),也會(huì)對(duì)這個(gè)對(duì)象是否允許增、刪、改進(jìn)行限制。數(shù)據(jù)權(quán)限定義到對(duì)象層,是更底層的權(quán)限限制,如果對(duì)象數(shù)據(jù)限制不允許創(chuàng)建,即使開放創(chuàng)建按鈕也無法新建。
二、數(shù)據(jù)權(quán)限管理模型
1、基礎(chǔ)權(quán)限模型
- 全部數(shù)據(jù)安全性:允許用戶查看系統(tǒng)所有數(shù)據(jù)。一般授予系統(tǒng)管理員、企業(yè)高層(如:CEO、CFO等)
- 本部門及下級(jí)部門數(shù)據(jù)安全性:允許用戶查看當(dāng)前部門及下級(jí)部門的所有數(shù)據(jù),默認(rèn)是按數(shù)據(jù)創(chuàng)建人歸屬的部門進(jìn)行查看,即:查看數(shù)據(jù)創(chuàng)建人的部門為登錄用戶的部門或者下級(jí)部門的數(shù)據(jù)。一般授予部門負(fù)責(zé)人
- 本部門數(shù)據(jù)安全性:允許用戶查看當(dāng)前部門的所有數(shù)據(jù),默認(rèn)是按數(shù)據(jù)創(chuàng)建人歸屬的部門進(jìn)行查看,即:查看數(shù)據(jù)創(chuàng)建人的部門為登錄用戶的部門的數(shù)據(jù)。一般授予部門負(fù)責(zé)人
- 本人及下級(jí)數(shù)據(jù)安全性:允許用戶查看本人及下屬員工的所有數(shù)據(jù),默認(rèn)是按數(shù)據(jù)創(chuàng)建人進(jìn)行查看,即:查看數(shù)據(jù)的創(chuàng)建人為當(dāng)前用戶或者下屬員工的數(shù)據(jù)。一般授予部門負(fù)責(zé)人、小組組長(zhǎng)等
- 本人數(shù)據(jù)安全性:允許用戶查看本人的所有數(shù)據(jù),默認(rèn)是按數(shù)據(jù)創(chuàng)建人進(jìn)行查看,即:查看數(shù)據(jù)的創(chuàng)建人為當(dāng)前用戶的數(shù)據(jù)。一般授予普通業(yè)務(wù)人員
權(quán)限管理基礎(chǔ)模型可支持較為簡(jiǎn)單的一些業(yè)務(wù)場(chǎng)景,如:客戶管理中,銷售業(yè)務(wù)員僅查看自己創(chuàng)建的客戶,銷售總監(jiān)可以查看銷售部的所有客戶,CEO可以查看企業(yè)所有客戶。
2、基于數(shù)據(jù)歸屬人的權(quán)限模型
在實(shí)際業(yè)務(wù)中,稍微復(fù)雜一些的場(chǎng)景,基礎(chǔ)權(quán)限模型就已經(jīng)遠(yuǎn)遠(yuǎn)無法滿足業(yè)務(wù)需求了。
以一個(gè)實(shí)際場(chǎng)景來說明:企業(yè)希望通過撥打400熱線電話做售前咨詢的客戶,分配給到銷售人員進(jìn)行做跟進(jìn)成交。由客服人員在CRM系統(tǒng)中為客戶建檔,然后分配給到銷售業(yè)務(wù)員跟進(jìn)。
在這個(gè)場(chǎng)景中,客戶的創(chuàng)建人為客服人員,基礎(chǔ)權(quán)限模型可以滿足每個(gè)客服只能查看自己創(chuàng)建的客戶。但是,對(duì)于銷售人員而言,這部分客戶都不是自己創(chuàng)建的,也就沒辦法查看到這部分客戶,無法開展工作。
那么在這種情況下,我們就需要重新來定義數(shù)據(jù)歸屬,什么是“我的數(shù)據(jù)”。通常情況下,數(shù)據(jù)的創(chuàng)建人會(huì)默認(rèn)認(rèn)為是數(shù)據(jù)的歸屬人。但是,由于業(yè)務(wù)的需要,數(shù)據(jù)記錄會(huì)在不同的用戶之間進(jìn)行數(shù)據(jù)的轉(zhuǎn)移操作,也就是說:在這種情況下,數(shù)據(jù)的創(chuàng)建人并不一定是數(shù)據(jù)的歸屬人。
那么在上訴的場(chǎng)景中,客戶數(shù)據(jù)的歸屬人,在數(shù)據(jù)創(chuàng)建時(shí),歸屬人為客服人員。當(dāng)客服人員將客戶分配給到銷售業(yè)務(wù)員時(shí),銷售業(yè)務(wù)員成了數(shù)據(jù)的歸屬人。在基礎(chǔ)的權(quán)限模型中,將原本通過創(chuàng)建人/創(chuàng)建人所屬部門為基礎(chǔ)的權(quán)限優(yōu)化成通過歸屬人及歸屬部門為基礎(chǔ)的權(quán)限,就可以解決銷售人員無法查看到客服創(chuàng)建的客戶數(shù)據(jù)了。
3、基于角色自定義歸屬的權(quán)限模型
在企業(yè)復(fù)雜的業(yè)務(wù)場(chǎng)景中,【基于數(shù)據(jù)歸屬人的權(quán)限模型】同樣沒辦法滿足較為復(fù)雜的業(yè)務(wù)需求。將【2】中的實(shí)際場(chǎng)景再做延伸進(jìn)行說明:
客戶分配給到銷售業(yè)務(wù)員進(jìn)行跟進(jìn)后,在跟進(jìn)過程中,如果需要報(bào)價(jià)給到客戶時(shí),銷售業(yè)務(wù)員需要加入報(bào)價(jià)專員負(fù)責(zé)報(bào)價(jià)。
在這個(gè)場(chǎng)景中,數(shù)據(jù)歸屬人為銷售業(yè)務(wù)員,報(bào)價(jià)專員也需要加入進(jìn)來,能夠查看到客戶,為客戶進(jìn)行報(bào)價(jià)。但是在這個(gè)過程中,銷售業(yè)務(wù)員仍然需要跟進(jìn)客戶,數(shù)據(jù)歸屬人沒辦法直接轉(zhuǎn)移給到銷售業(yè)務(wù)員。
那么在這種場(chǎng)景下,我們又需要重新來定義數(shù)據(jù)的歸屬,“什么是我的數(shù)據(jù)”。
- 對(duì)于客服人員而言,創(chuàng)建人為自己的是我的數(shù)據(jù);
- 對(duì)于銷售業(yè)務(wù)員而言,銷售業(yè)務(wù)員為自己的是我的數(shù)據(jù);
- 對(duì)于報(bào)價(jià)專員而言,報(bào)價(jià)專員為自己的是我的數(shù)據(jù)。
也就是說,對(duì)于不同角色的用戶而言,“我的數(shù)據(jù)”的定義是不同的。那么就需要能夠給不同角色去定義“什么是我的數(shù)據(jù)”的能力。
那么,在進(jìn)行權(quán)限配置時(shí),支持用戶在定義角色的同時(shí),還需要支持用戶定義“我的數(shù)據(jù)”。如下圖:
在配置不同功能模塊的數(shù)據(jù)權(quán)限時(shí),除了定義權(quán)限類型(本人可見、本部門可見等),還可以支持用戶自定義配置權(quán)限字段,以滿足不同角色可以查看到不同的“我的數(shù)據(jù)”。
如:
- 客服人員根據(jù)“創(chuàng)建人”字段查看我的數(shù)據(jù);
- 銷售業(yè)務(wù)員根據(jù)“銷售員”字段查看我的數(shù)據(jù);
- 報(bào)價(jià)專員根據(jù)“報(bào)價(jià)員”字段查看我的數(shù)據(jù)。
三、特殊業(yè)務(wù)場(chǎng)景的通用設(shè)計(jì)
1、權(quán)限覆蓋
在實(shí)際業(yè)務(wù)場(chǎng)景中,當(dāng)用戶訪問某一數(shù)據(jù)記錄時(shí),該記錄關(guān)聯(lián)了其他的單據(jù),用戶需要同步查看關(guān)聯(lián)的這部分單據(jù)數(shù)據(jù)。
如:CRM系統(tǒng)中的客戶數(shù)據(jù),客戶同時(shí)關(guān)聯(lián)了聯(lián)系人數(shù)據(jù)、訂單數(shù)據(jù)、合同數(shù)據(jù)等。當(dāng)用戶查看客戶A時(shí),需要查看到A客戶的所有聯(lián)系人、訂單、合同數(shù)據(jù)。但是由于客戶A可能有多個(gè)銷售同時(shí)跟進(jìn),該客戶的聯(lián)系人、訂單、合同信息并非都是由該用戶創(chuàng)建,單一的數(shù)據(jù)權(quán)限便無法滿足該業(yè)務(wù)場(chǎng)景。
那么,當(dāng)用戶操作訪問客戶A的權(quán)限時(shí),他需要同步可以獲取到訪問A關(guān)聯(lián)的業(yè)務(wù)單據(jù)對(duì)象數(shù)據(jù)的權(quán)限。即:擁有客戶對(duì)象數(shù)據(jù)的訪問權(quán)限時(shí),需要覆蓋客戶相關(guān)聯(lián)對(duì)象原本的數(shù)據(jù)權(quán)限。
2、團(tuán)隊(duì)成員
在實(shí)際業(yè)務(wù)中,對(duì)于某一記錄,需要將數(shù)據(jù)共享給到多個(gè)用戶共同訪問、編輯。如:對(duì)于商機(jī)的跟進(jìn),需要不同角色的人員參與,需要銷售人員負(fù)責(zé)維護(hù)客戶、顧問負(fù)責(zé)方案制定、實(shí)施人員進(jìn)行可行性評(píng)估、報(bào)價(jià)專員制作報(bào)價(jià)、投標(biāo)人員負(fù)責(zé)投標(biāo)資料整理等。對(duì)于不同的商機(jī),不同角色對(duì)應(yīng)的業(yè)務(wù)員均不一樣,需靈活指派員工進(jìn)行負(fù)責(zé)。
那么,在這種場(chǎng)景下需要有個(gè)群組的概念,將這部分人員組成一個(gè)群組對(duì)數(shù)據(jù)記錄負(fù)責(zé),并且共享相關(guān)內(nèi)容,這個(gè)群組即是團(tuán)隊(duì)成員的概念。由數(shù)據(jù)的負(fù)責(zé)人進(jìn)行組建,可將相關(guān)用戶加入團(tuán)隊(duì)成員中,共享指定的數(shù)據(jù)記錄。
3、共享規(guī)則
團(tuán)隊(duì)成員適用于靈活組建數(shù)據(jù)負(fù)責(zé)群組的場(chǎng)景,不同的數(shù)據(jù)記錄可組建不同的團(tuán)隊(duì)。那在實(shí)際業(yè)務(wù)中,會(huì)存在一些相對(duì)固定的數(shù)據(jù)共享的場(chǎng)景。
如:公司派遣一名導(dǎo)師去到不同的門店進(jìn)行指導(dǎo)。當(dāng)培訓(xùn)導(dǎo)師去門店進(jìn)行指導(dǎo)前,就需要將該門店的訂單數(shù)據(jù)共享給到導(dǎo)師。這種場(chǎng)景下,每個(gè)訂單去添加導(dǎo)師的訪問權(quán)限明顯是不現(xiàn)實(shí),這就需要有批量共享的能力,將該門店的訂單打包共享給到培訓(xùn)導(dǎo)師。
那么,對(duì)于這種有固定規(guī)則的數(shù)據(jù)共享場(chǎng)景,可以將這些固定規(guī)則統(tǒng)一抽象,形成共享規(guī)則,更方便地完成數(shù)據(jù)共享。
4、崗位層級(jí)
一般的權(quán)限設(shè)計(jì)中,數(shù)據(jù)權(quán)限通常與人、組織進(jìn)行綁定。但是通過人和組織進(jìn)行綁定的方式,比較難解決一些特殊的業(yè)務(wù)場(chǎng)景,如:
- 企業(yè)的人員變動(dòng)頻繁,人員的離職/入職需要完成大量的數(shù)據(jù)交接工作;
- 一人多崗的業(yè)務(wù)場(chǎng)景下,難以實(shí)現(xiàn)不同崗位的數(shù)據(jù)權(quán)限隔離,如:用戶不同崗位的上級(jí)領(lǐng)導(dǎo)查看對(duì)應(yīng)崗位的數(shù)據(jù)。
引入崗位,可以將數(shù)據(jù)與人解綁,通過崗位與數(shù)據(jù)進(jìn)行關(guān)聯(lián)。員工離職的數(shù)據(jù)繼承,可以通過繼承崗位進(jìn)行實(shí)現(xiàn);一個(gè)多崗的場(chǎng)景,用戶不同崗位的數(shù)據(jù)與各崗位關(guān)聯(lián),崗位的上級(jí)領(lǐng)導(dǎo)只能查看對(duì)應(yīng)崗位的數(shù)據(jù)。
那么,首先要在系統(tǒng)中建立崗位層級(jí)管理,崗位與組織架構(gòu)類似,也是自上而下的樹狀結(jié)構(gòu)。頂層為企業(yè)CEO,一層一層向下延展。
其次,在數(shù)據(jù)記錄中記錄數(shù)據(jù)關(guān)聯(lián)的用戶崗位,一人多崗的場(chǎng)景下,數(shù)據(jù)關(guān)聯(lián)的崗位可以由用戶手工選擇或者默認(rèn)為當(dāng)前登錄的崗位等,可根據(jù)實(shí)際業(yè)務(wù)而定。
四、特別的權(quán)限設(shè)計(jì)架構(gòu) – 頁(yè)面級(jí)數(shù)據(jù)權(quán)限控制
目前,市面上大多數(shù)產(chǎn)品的數(shù)據(jù)權(quán)限均控制在對(duì)象層,在具體的功能對(duì)象上按角色設(shè)定數(shù)據(jù)權(quán)限。當(dāng)擁有該角色的用戶登錄系統(tǒng)后,在該對(duì)象的各個(gè)頁(yè)面均根據(jù)設(shè)置的數(shù)據(jù)安全性執(zhí)行數(shù)據(jù)查看。如:銷售人員角色的用戶設(shè)定了允許查看本人的客戶數(shù)據(jù)權(quán)限,那么客戶的各個(gè)頁(yè)面,銷售人員均查看自己創(chuàng)建的數(shù)據(jù)。
這種權(quán)限架構(gòu)下,有一些特殊的場(chǎng)景無法滿足,如:銷售人員查看客戶數(shù)據(jù)時(shí)只允許查看本人的客戶數(shù)據(jù)。
但是,銷售人員在做客戶報(bào)備時(shí),需要根據(jù)提報(bào)的客戶數(shù)據(jù),在系統(tǒng)中與全部客戶數(shù)據(jù)進(jìn)行查重,查看客戶是否已經(jīng)報(bào)備過。在這種場(chǎng)景下,對(duì)象級(jí)權(quán)限控制則無法滿足業(yè)務(wù),銷售人員因只允許查看本人的數(shù)據(jù),報(bào)備時(shí)也只能與本人的客戶數(shù)據(jù)進(jìn)行查重。
這里分享一種特殊的權(quán)限設(shè)計(jì)架構(gòu),頁(yè)面級(jí)數(shù)據(jù)權(quán)限控制。注:這種權(quán)限設(shè)計(jì)架構(gòu)可以滿足大部分的業(yè)務(wù)場(chǎng)景,但是,整體權(quán)限架構(gòu)較為復(fù)雜,維護(hù)成本也相對(duì)較高,并不推薦所有的系統(tǒng)數(shù)據(jù)權(quán)限設(shè)計(jì)按這個(gè)模式設(shè)計(jì),僅作為思維拓展。
首先,在對(duì)象層設(shè)定數(shù)據(jù)權(quán)限時(shí),設(shè)定的是數(shù)據(jù)權(quán)限模板,如:本部門的數(shù)據(jù)安全性,設(shè)定按哪個(gè)部門(創(chuàng)建部門、歸屬部門、更新部門等)字段作為權(quán)限字段;本人的數(shù)據(jù)安全性,設(shè)定按哪個(gè)用戶(創(chuàng)建人、歸屬人、更新人等)字段作為權(quán)限字段。
其次,在頁(yè)面層按不同的角色可設(shè)定引用哪一個(gè)數(shù)據(jù)權(quán)限模板。如:對(duì)于銷售人員而言,客戶列表執(zhí)行本人的數(shù)據(jù)安全性,僅可以查看自己創(chuàng)建的客戶數(shù)據(jù);客戶報(bào)備頁(yè)面執(zhí)行全部數(shù)據(jù)安全性,銷售人員可根據(jù)客戶信息查詢系統(tǒng)所有客戶數(shù)據(jù)。
本文由 @茶話B端 原創(chuàng)發(fā)布于人人都是產(chǎn)品經(jīng)理,未經(jīng)許可,禁止轉(zhuǎn)載
題圖來自Unsplash,基于CC0協(xié)議
該文觀點(diǎn)僅代表作者本人,人人都是產(chǎn)品經(jīng)理平臺(tái)僅提供信息存儲(chǔ)空間服務(wù)。
作者你好,實(shí)際中遇到的場(chǎng)景,同個(gè)角色在不同菜單可查看的數(shù)據(jù)權(quán)限范圍不一樣,比如在銷售部簽訂合同生成訂單,后端交付在交付管理菜單可以查看到銷售部的數(shù)據(jù),但在其他菜單比如商機(jī)管理,是只允許查看本部門數(shù)據(jù),這種應(yīng)該怎么處理呢?
數(shù)據(jù)權(quán)限要做到對(duì)象層面的控制,即:同一個(gè)角色,在不同的功能模塊,數(shù)據(jù)權(quán)限是不一樣的
寫的非常好,學(xué)習(xí)到了!希望大佬多多更新!
抱拳~
第2.3章節(jié),基于“基于角色自定義歸屬的權(quán)限模型”,這里面可以用自定義字段來定義“我的數(shù)據(jù)”,我實(shí)際遇到的場(chǎng)景會(huì)比這個(gè)更復(fù)雜:
CRM和工單系統(tǒng)打通,此銷售需要看到自己客戶的工單。這時(shí)候在工單的主表內(nèi)是沒有“責(zé)任銷售”這個(gè)字段的,涉及到跨表關(guān)聯(lián)。
當(dāng)然也能將“責(zé)任銷售”字段加入到工單主表,但是后面在轉(zhuǎn)移客戶的時(shí)候,工單表內(nèi)的字段需要同步轉(zhuǎn)移。
這就有2個(gè)方案:關(guān)聯(lián)字段時(shí)支持跨表關(guān)聯(lián);直接將“責(zé)任銷售”字段加入目標(biāo)主表。各有利弊,業(yè)務(wù)簡(jiǎn)單字段較少可以用方法2,業(yè)務(wù)復(fù)雜,主表字段已經(jīng)很多了,可以用方法1。
不應(yīng)該是定義工單和銷售員之間的關(guān)系,更多時(shí)候應(yīng)該是客戶和銷售員的關(guān)系。
一個(gè)銷售員負(fù)責(zé)哪些客戶,那么這些客戶的工單他就可以看到。
這種方式去定義的話,就能比較好地解決銷售員離職集成、客戶轉(zhuǎn)移的問題。
類似CRM里面的“人-區(qū)-客”的概念
內(nèi)容太棒了,從2.2章節(jié)開始,描述了多種復(fù)雜權(quán)限的設(shè)計(jì)方法,解決了我的疑惑,厲害。
PS:其他的文章的內(nèi)容基本都是很淺顯、簡(jiǎn)單的權(quán)限介紹,并沒有介紹復(fù)雜場(chǎng)景。