這一篇讓你徹底搞懂 SaaS 產(chǎn)品的數(shù)據(jù)權(quán)限設(shè)計(jì)!

8 評(píng)論 12303 瀏覽 98 收藏 12 分鐘

數(shù)據(jù)權(quán)限是SaaS產(chǎn)品必不可少的功能,明確權(quán)限管控的顆粒度,保障數(shù)據(jù)安全。本文作者對(duì)如何SaaS 產(chǎn)品的數(shù)據(jù)權(quán)限該如何設(shè)計(jì)展開(kāi)了分析,希望對(duì)你有幫助。

最近正好在做數(shù)據(jù)權(quán)限這塊的產(chǎn)品設(shè)計(jì),同時(shí)拆解完紛享銷(xiāo)客的 PaaS 平臺(tái)后,又受到了新的啟發(fā)。事實(shí)上,我發(fā)現(xiàn)不少 SaaS 的產(chǎn)品經(jīng)理都沒(méi)有接觸過(guò)數(shù)據(jù)權(quán)限這塊的產(chǎn)品設(shè)計(jì) —— 通常,如果經(jīng)歷過(guò)從0-1的 SaaS 產(chǎn)品過(guò)程的話(huà),就會(huì)知道數(shù)據(jù)權(quán)限是一開(kāi)始就需要設(shè)計(jì)和開(kāi)發(fā)的。

本篇就來(lái)和大家講講如何設(shè)計(jì)數(shù)據(jù)權(quán)限產(chǎn)品功能。

一、數(shù)據(jù)權(quán)限是什么?

我想如果面試的時(shí)候來(lái)問(wèn)產(chǎn)品經(jīng)理這個(gè)問(wèn)題,估計(jì)會(huì)得到很多不一樣的答案。簡(jiǎn)單的回答可能就是“對(duì)系統(tǒng)的數(shù)據(jù)進(jìn)行訪問(wèn)控制”,而這相當(dāng)于沒(méi)有回答。

實(shí)際上,我認(rèn)為要從三個(gè)方面回答這個(gè)問(wèn)題。

  • 一是控制登錄人訪問(wèn)的數(shù)據(jù)范圍,不該看的不能看;
  • 二是控制登錄人操作數(shù)據(jù)的行為,不該管的不能管;
  • 三是控制登錄人能夠查看的業(yè)務(wù)對(duì)象屬性,敏感的屬性要管控。

數(shù)據(jù)權(quán)限一是控制登錄人訪問(wèn)的數(shù)據(jù)范圍,不該看的不能看;二是控制登錄人操作數(shù)據(jù)的行為,不該管的不能管;三是控制登錄人能夠查看的業(yè)務(wù)對(duì)象屬性,敏感的屬性要管控。

二、怎么控制數(shù)據(jù)權(quán)限?

我們來(lái)看看應(yīng)該怎么來(lái)控制登錄人的數(shù)據(jù)權(quán)限,這里可以分為數(shù)據(jù)范圍權(quán)限控制、數(shù)據(jù)操作權(quán)限控制和業(yè)務(wù)對(duì)象字段權(quán)限控制。

1. 數(shù)據(jù)范圍權(quán)限控制

B 端客戶(hù)內(nèi)部的業(yè)務(wù)對(duì)象通常來(lái)說(shuō)會(huì)按管理層級(jí)劃分管轄范圍,比如我曾經(jīng)做過(guò)的物業(yè)平臺(tái),他們會(huì)按小區(qū)(也叫物業(yè)項(xiàng)目)、片區(qū)、分公司、大區(qū)和總部五個(gè)層級(jí)來(lái)劃分管轄范圍。

這里的小區(qū)其實(shí)就是一個(gè)基礎(chǔ)的授權(quán)業(yè)務(wù)對(duì)象,然后將多個(gè)小區(qū)集合起來(lái)會(huì)形成片區(qū)。同時(shí),經(jīng)營(yíng)小區(qū)的會(huì)是具有法人資質(zhì)的主體,即分公司。多個(gè)分公司又會(huì)按地理區(qū)域劃分到不同的大區(qū),最后到總部管轄全部的業(yè)務(wù)數(shù)據(jù)。這個(gè)時(shí)候,我們就需要支持從基礎(chǔ)的業(yè)務(wù)對(duì)象到更大范圍的數(shù)據(jù)授權(quán)。

比如下面幾個(gè)場(chǎng)景:

  • A 小區(qū)的物業(yè)項(xiàng)目經(jīng)理授權(quán) A 小區(qū),他只能看到 A 小區(qū)的各類(lèi)業(yè)務(wù)數(shù)據(jù)(報(bào)修、投訴、收費(fèi)等等);
  • B 片區(qū)的物業(yè)片區(qū)經(jīng)理授權(quán) B 片區(qū),他能夠看到 B 片區(qū)下的全部小區(qū)的各類(lèi)業(yè)務(wù)數(shù)據(jù),包括以后在 B 片區(qū)再新增的小區(qū)。
  • C 公司的物業(yè)分公司總經(jīng)理授權(quán) C公司,他能夠看到C 公司下的全部小區(qū)的各類(lèi)業(yè)務(wù)數(shù)據(jù),包括以后在C 公司再新增的小區(qū)。
  • D 大區(qū)的物業(yè)大區(qū)經(jīng)理授權(quán)D大區(qū),他能夠看到D 大區(qū)下的全部小區(qū)的各類(lèi)業(yè)務(wù)數(shù)據(jù),包括以后在 D大區(qū)下各個(gè)分公司新增的小區(qū)。
  • 總部的集團(tuán)領(lǐng)導(dǎo)可以看到全部的小區(qū)各類(lèi)業(yè)務(wù)數(shù)據(jù)。

通常來(lái)說(shuō),不同層級(jí)的授權(quán)方式是互斥的,也就是一個(gè)人不能說(shuō)既按小區(qū)級(jí)別授權(quán)又按片區(qū)級(jí)別授權(quán)。同時(shí),同一個(gè)層級(jí)的,是支持授權(quán)多個(gè)的。

對(duì)于 B 端客戶(hù)的外部業(yè)務(wù)對(duì)象,因?yàn)椴淮嬖诠茌爩蛹?jí),往往是通過(guò)分配的方式進(jìn)行。即將一個(gè)或多個(gè)業(yè)務(wù)對(duì)象分配給某類(lèi)角色或某個(gè)員工,登錄人只能看到分配給自己的業(yè)務(wù)對(duì)象。典型的就是 CRM 系統(tǒng)的客戶(hù)公海資源,員工只能看到分配給自己的客戶(hù)。

2. 業(yè)務(wù)對(duì)象操作權(quán)限控制

業(yè)務(wù)對(duì)象操作權(quán)限是指對(duì)業(yè)務(wù)對(duì)象以及業(yè)務(wù)對(duì)象屬性能夠進(jìn)行的操作。典型的業(yè)務(wù)對(duì)象的操作就是新增、刪除、編輯、查看、導(dǎo)出、改變業(yè)務(wù)對(duì)象狀態(tài)(如市場(chǎng)線(xiàn)索轉(zhuǎn)銷(xiāo)售線(xiàn)索)等等。比方說(shuō),我們控制 A 員工只能查看客戶(hù)信息,不能新增、編輯、刪除和導(dǎo)出客戶(hù)信息。

3. 業(yè)務(wù)對(duì)象字段權(quán)限控制

業(yè)務(wù)對(duì)象字段的顆粒度就更小一點(diǎn),是針對(duì)某個(gè)類(lèi)型的業(yè)務(wù)對(duì)象,約束登錄人能查看、編輯或?qū)С鰳I(yè)務(wù)對(duì)象的哪些屬性。業(yè)務(wù)對(duì)象屬性在技術(shù)上對(duì)應(yīng)的是數(shù)據(jù)表的字段。

舉個(gè)例子,CRM 系統(tǒng)的“客戶(hù)”這個(gè)業(yè)務(wù)對(duì)象,會(huì)有名稱(chēng)、地址、電話(huà)、級(jí)別、所屬行業(yè)等等信息。我們就可以控制A 員工(或角色)只能查看客戶(hù)名稱(chēng)、級(jí)別和所屬行業(yè),不允許查看地址和電話(huà)。

三、數(shù)據(jù)權(quán)限產(chǎn)品設(shè)計(jì)

接下來(lái)我們看數(shù)據(jù)權(quán)限的產(chǎn)品怎么設(shè)計(jì)。

1. 數(shù)據(jù)范圍權(quán)限設(shè)計(jì)

數(shù)據(jù)范圍權(quán)限控制首先我們要明確系統(tǒng)的基礎(chǔ)業(yè)務(wù)對(duì)象,比如物業(yè)平臺(tái)的小區(qū)、房地產(chǎn)管理的樓盤(pán)、WMS的倉(cāng)庫(kù)、線(xiàn)下商超的門(mén)店等等,這些都可以作為基礎(chǔ)的授權(quán)業(yè)務(wù)對(duì)象。然后,基于基礎(chǔ)業(yè)務(wù)對(duì)象構(gòu)建管理層級(jí),劃分到不同層級(jí)的不同集合里。之后,就可以授權(quán)某個(gè)角色或人員擁有的管轄范圍,下面是一個(gè)示例。

給業(yè)務(wù)對(duì)象分配成員的比較簡(jiǎn)單,基于業(yè)務(wù)對(duì)象添加成員或者移除成員即可,在文檔協(xié)作類(lèi)產(chǎn)品非常常見(jiàn)。

2. 業(yè)務(wù)對(duì)象操作權(quán)限設(shè)計(jì)

控制業(yè)務(wù)對(duì)象的操作權(quán)限,我們首先要基于某類(lèi)業(yè)務(wù)對(duì)象定義好這類(lèi)業(yè)務(wù)對(duì)象有哪些操作,然后再勾選某個(gè)角色或人員有能夠進(jìn)行哪些操作。

業(yè)務(wù)對(duì)象的操作涉及如下信息:

  • 操作名稱(chēng):比如操作按鈕的名稱(chēng);
  • 操作標(biāo)識(shí):系統(tǒng)全局唯一的標(biāo)識(shí),前端可以通過(guò)這個(gè)標(biāo)識(shí)來(lái)決定是否展示相應(yīng)的操作入口;
  • 顯示方式:即操作入口是隱藏還是禁用。隱藏是比較常見(jiàn)的操作,但是禁用的話(huà)可以讓登錄人知道他沒(méi)有這個(gè)權(quán)限,如果需要可以找他們內(nèi)部的管理員開(kāi)通。
  • 對(duì)應(yīng)數(shù)據(jù)接口:即對(duì)應(yīng)操作的數(shù)據(jù)接口,這個(gè)是防止有人知道了數(shù)據(jù)接口,繞過(guò)操作按鈕直接訪問(wèn)接口來(lái)獲得數(shù)據(jù),通過(guò)同時(shí)禁止數(shù)據(jù)接口的訪問(wèn)權(quán)的安全等級(jí)會(huì)更高一些。

下面是紛享銷(xiāo)客的業(yè)務(wù)對(duì)象操作權(quán)限控制的界面,大家可以參考一下。

3. 字段操作權(quán)限設(shè)計(jì)

字段操作權(quán)限和業(yè)務(wù)對(duì)象操作權(quán)限類(lèi)似,我們也需要先定義好業(yè)務(wù)對(duì)象的字段屬性,主要的信息如下:

  • 名稱(chēng):字段的顯示名稱(chēng),如姓名、手機(jī)號(hào)等都是字段的名稱(chēng);
  • 數(shù)據(jù)表字段名:對(duì)應(yīng)業(yè)務(wù)對(duì)象數(shù)據(jù)表的字段名,技術(shù)上需要通過(guò)這個(gè)字段名來(lái)控制字段的權(quán)限;
  • 顯示方式:即未授權(quán)該字段時(shí)該如何顯示,目前有兩種做法,一是直接隱藏;二是脫敏。直接隱藏比較簡(jiǎn)單,但是可能會(huì)引起頁(yè)面布局不美觀;脫敏則是隱藏掉部分的內(nèi)容,比如手機(jī)號(hào)中間4位使用“*”號(hào)替代,這種方式的好處是頁(yè)面布局不需要改動(dòng),但需要開(kāi)發(fā)做一定的處理。
  • 是否必選:有些字段是不能來(lái)控制權(quán)限的,比如客戶(hù)名稱(chēng),如果客戶(hù)名稱(chēng)都不顯示了,那么這條數(shù)據(jù)都沒(méi)有意義了,因此需要定義業(yè)務(wù)對(duì)象的主要字段是必須勾選的,不可以禁止相應(yīng)的字段權(quán)限。

字段的操作一般只有讀取、編輯和導(dǎo)出,因此字段操作上不需要單獨(dú)管理。下面同樣給出了紛享銷(xiāo)客的字段授權(quán)的界面,供大家參考。

四、總結(jié)

總的來(lái)說(shuō),數(shù)據(jù)權(quán)限的授權(quán)分為三個(gè)方面,業(yè)務(wù)對(duì)象范圍授權(quán)、業(yè)務(wù)對(duì)象操作授權(quán)和業(yè)務(wù)對(duì)象字段授權(quán)。

為了實(shí)現(xiàn)這三個(gè)方式的授權(quán),我們?cè)诋a(chǎn)品設(shè)計(jì)上需要支持業(yè)務(wù)對(duì)象范圍的劃分、業(yè)務(wù)對(duì)象操作的定義和業(yè)務(wù)對(duì)象字段的定義,如下圖所示。之后,我們就可以配置某個(gè)角色或人員的數(shù)據(jù)權(quán)限了。

數(shù)據(jù)權(quán)限是SaaS產(chǎn)品必不可少的功能。企業(yè)的數(shù)據(jù)很多涉及敏感信息,包括商業(yè)機(jī)密信息等等,因此必須在產(chǎn)品規(guī)劃之初就明確權(quán)限管控的顆粒度,以及按何種方式管理數(shù)據(jù)權(quán)限。希望看了本篇之后,能夠給大家一些參考和啟發(fā)。

專(zhuān)欄作家

產(chǎn)品海豚灣,公眾號(hào):產(chǎn)品海豚灣(ID:pm-dophin-bay),人人都是產(chǎn)品經(jīng)理專(zhuān)欄作家。技術(shù)出身的產(chǎn)品經(jīng)理,從事過(guò) C 端產(chǎn)品和 B 端產(chǎn)品設(shè)計(jì),擅長(zhǎng) SaaS 產(chǎn)品設(shè)計(jì)、產(chǎn)品架構(gòu)設(shè)計(jì)和需求分析。負(fù)責(zé)的B 端產(chǎn)品完成了完整的從0到1,從1到 N 的過(guò)程,成功簽約行業(yè)百?gòu)?qiáng)客戶(hù)。

本文原創(chuàng)發(fā)布于人人都是產(chǎn)品經(jīng)理,未經(jīng)許可,禁止轉(zhuǎn)載。

題圖來(lái)自Unsplash,基于CC0協(xié)議。

該文觀點(diǎn)僅代表作者本人,人人都是產(chǎn)品經(jīng)理平臺(tái)僅提供信息存儲(chǔ)空間服務(wù)。

更多精彩內(nèi)容,請(qǐng)關(guān)注人人都是產(chǎn)品經(jīng)理微信公眾號(hào)或下載App
評(píng)論
評(píng)論請(qǐng)登錄
  1. 請(qǐng)教個(gè)問(wèn)題,如果同一個(gè)用戶(hù)在不同的資源下,操作權(quán)限不一致,如何設(shè)計(jì)?
    比如,第一個(gè)物業(yè)公司的權(quán)限管控案例,如果張三負(fù)責(zé)多個(gè)片區(qū)的管理,他是A片區(qū)的物業(yè)總經(jīng)理(操作權(quán)限較大),同時(shí)他也是B片區(qū)的樓棟管家(操作權(quán)限較?。?。這種情況下,權(quán)限如何設(shè)計(jì)?

    來(lái)自湖北 回復(fù)
    1. 每個(gè)用戶(hù)有什么權(quán)限是根據(jù)這個(gè)用戶(hù)分配了什么角色決定的,想你說(shuō)的這種;建兩個(gè)角色給這個(gè)用戶(hù)分配上就行了:1個(gè)角色是A區(qū)物業(yè)總經(jīng)理,一個(gè)是B片區(qū)管家

      來(lái)自北京 回復(fù)
    2. 角色控制的是操作權(quán)限,數(shù)據(jù)權(quán)限可不是通過(guò)角色控制的。

      來(lái)自四川 回復(fù)
    3. 請(qǐng)問(wèn)這個(gè)場(chǎng)景您這邊是如何解決的?我們也遇到這個(gè)問(wèn)題,同一個(gè)人在系統(tǒng)中有不同的崗位,且不同崗位的數(shù)據(jù)權(quán)限需要不同

      來(lái)自北京 回復(fù)
  2. 數(shù)據(jù)范圍產(chǎn)品設(shè)計(jì)可以講的更深入一些,這塊是核心。比如按照組織架構(gòu)、獨(dú)立分配,獨(dú)立分配又可以按照屬性(部門(mén)等等)過(guò)濾條件分配,這樣才能構(gòu)建一個(gè)比較貼近實(shí)際業(yè)務(wù)需要的數(shù)據(jù)權(quán)限。

    來(lái)自上海 回復(fù)
  3. 很棒!請(qǐng)教個(gè)問(wèn)題,字段權(quán)限這個(gè)受菜單限制么,還是整個(gè)系統(tǒng)這個(gè)字段全部限制了?

    來(lái)自廣東 回復(fù)
    1. 這個(gè)應(yīng)該是每個(gè)菜單里的字段,其他菜單即使同名也是算另一個(gè)字段。有的會(huì)通過(guò)引用或關(guān)聯(lián)等方式將兩個(gè)菜單的字段連接起來(lái),可能會(huì)讓你覺(jué)得是同一個(gè)字段

      來(lái)自四川 回復(fù)
    2. 一般人員都會(huì)有一個(gè)人員類(lèi)型的字段,可以在角色的基礎(chǔ)上再通過(guò)這個(gè)人員類(lèi)型字段去判斷字段權(quán)限。

      來(lái)自四川 回復(fù)