1. Role Hierarchy
在私有或者混合模型中,如果在organization-wide defaults設置某個對象為Private,那么對象的記錄只有擁有者可以查看。但是,role hierarchy可以讓該條記錄擁有者的上司有權限訪問該條記錄。
前提:Case在Organization-wide Defaults中被設為Private.
如圖片中所說,如果US Sales Rep為Case A的擁有者,則US Sales Director,VP of Global Sales以及CEO都擁有訪問Case A的權限。
注意,這里的權限繼承是單向的。例如:US Sales Director為Case B的擁有者,那么VP Sales Director和CEO擁有Case B的訪問權限,而US Sales Rep沒有。
2. Orgnazation-Wide Defaults
相當於全局范圍內,sObject的訪問權限設置,一般分為:Private, Public Read Only, Public Read/Write
- Private: 除了該條記錄的擁有者,其他人無法訪問(可通過其他的手段增加訪問權限)。
- Public Read Only: 除了該條記錄的擁有者,其他人只有查看權限,沒有修改權限(可通過其他手段增加修改權限)。
- Public Read/Write: 所有的用戶都可以訪問該對象的所有記錄。
3. Sharing Rules
除了設置全局范圍內默認的權限外,還可針對某個Object,自定義設置Sharing Rules以滿足業務需求。
首先,選擇需要設置規則的對象,點擊New。
由圖可見,Rule Type有兩種:
- Based on record owner:當記錄擁有者為某個用戶或某個角色等時,滿足分享條件。
- Based on criteria:當達到設計的過濾准則時,滿足分享條件
3.1 Based on record owner
當記錄的擁有者的條件:Public groups == Account Share-BALTI 為真時,將該條記錄分享給NGCC-CC Site Manager這個Role以及屬於該Role下的所有用戶。
注意:這里擁有者和被分享者有多種選擇,可以是Group(用戶組), Role(某個用戶或某類用戶),Roles, Internal and Portal Subordinates(某個用戶及該用戶下屬所有用戶)等,這些都可以自定義創建。
3.2 Based on criteria
這里的Criteria便是規則,具體內容如下:
- Field,選擇Lead Record Type字段。
- Operator,判斷的條件,equal(==),not equal(!=), start with(字符串以什么開始), contains(字符串中包含該字符), does not contain(字符串不包含), less than(<), greater than(>), less or equal(<=), greater or equal(>=), includes(包括), excludes(不包括), within(在什么里)。注意,這里是全量操作,而實際情況下,不同字段屬不同類型,只有部分操作可選擇。例如:less than/greater than則適用於Number類型,start with適用於Text(可理解為String)類型。
- Value,判斷的值,多個值之間用逗號隔開。
Filter Logic, 不同過濾條件之間的邏輯關系,上述圖中,有三條過濾條件,其過濾邏輯為1 AND (2 OR 3),即(第一個條件為真)並且(第二個條件或第三個條件為真)時,該條規則滿足。
Share with, 當滿足該條規則時,便將該條記錄分享給NGCC-CC Site Manager這個Role以及屬於該Role下的所有用戶。
** Access, 被分享用戶對於該條記錄的權限設置,分為Read Only和Read/Write兩種。
4. Teams
顧名思義,創建一個team,在其中添加多個用戶,然后將記錄分享給整個team成員。
注意:對於Salesfroce來講,目前只有兩個標准對象擁有team概念:Account, Case.
Step 1: Enable Account Team
Step 2: 選擇在哪些Page layout中可以看到Team,並將其添加到用戶的自定義相關列表中,點擊save。
Step 3: 【Setup】-->【Object Manager】-->【Account】-->【Page Layouts】-->【***】(自定義page layout)
選擇Related Lists,在右側找到Account Team后,將其拖至下方,點擊Save按鈕--> Yes,如下圖所示。
Step 4: 點擊九宮格,在All Items下面選擇Account,進入Account導航頁面。
Step 5: Account Team列中添加Team成員,點擊Add Team Members。當然,你也可以創建一個Team,然后在此處直接Add Default Team。
點擊Save按鈕,分享該條記錄至RestrieveCode SP和wu kai用戶。
PS:點擊用戶旁邊的倒三角,可以對該用戶進行編輯和刪除操作。
5. Manual Sharing
手動分享,通過sharing按鈕,手動分享該條記錄至指定用戶(群)。但是,該功能目前還沒有合入Lighnting Experience版本,若想使用,可切換至Classic版本。
點擊右上角頭像,選擇Switch to Salesforce Classic
切換至Classic版本,界面如下。
從Recent Items下找到Account Team Sample用戶,點擊Sharing,添加要分享的用戶。
6. 權限控制
對於Salesforce來說,權限是不斷累加的,多種規則權限間表現為並集關系,但對於Salesfroce來說,搜尋不同規則是有先后順序的,具體表現如下圖所示。
用戶訪問某記錄依次查詢:
1)Organization-Wide Default: Public Read/Write,讀寫權限;Public Read/Only,只讀權限,若想修改,往下查看;Private, 無訪問權限,往下查看。
2)Role Hierarchy: 用戶為記錄擁有者的領導,有權限訪問(讀寫權限)。
3)Sharing Rules: 滿足規則,並且屬於被分享者之一,則有訪問權限(讀寫權限可配置)。
4)Teams and Manual Sharing: 屬於Team成員之一或者屬於Sharing成員之一,則擁有訪問權限(讀寫權限可配置)
上述四條規則依次查詢,滿足操作權限則退出,如不滿足,繼續往下,若皆不滿足則無權限訪問。
Okay,上述內容是我對於Data Security的一點理解,如有誤之處,望大佬斧正。