使用決定性加密的考量事項
這些考量事項適用於使用 Shield Platform Encryption 的決定性加密方式加密的資料。某些考量事項資料清單有所不同,取決於資料是否使用區分大小寫方式,或不區分大小寫決定性加密方式。
必要版本
| 提供版本:Salesforce Classic (並非所有組織均可使用) 與 Lightning Experience。 |
| 提供版本:具備 Salesforce Shield 或 Shield Platform Encryption 授權的 Enterprise、Performance 及 Unlimited Edition。 |
| Developer Edition 免費提供。 |
用來識別可篩選欄位的 API 選項
使用決定性加密方式加密的欄位可篩選。您可以使用 isFilterable() 方法來決定特定加密欄位的加密方式。如果欄位可篩選,此方法會傳回 true。
不過,您無法透過 API 明確偵測或設定決定性加密方式。
可用欄位與其他資料
決定性加密適用於自訂 URL、電子郵件、電話、文字以及文字區域欄位類型。不適用於其他類型的資料,包括:
- 自訂日期、日期/時間、長文字區域、Rich Text 文字區域或描述欄位類型
- Chatter
- 檔案與附件
區分大小寫
您在使用區分大小寫決定性加密時,系統會區分大小寫。在加密欄位的報告、清單檢視以及 SOQL 查詢中,結果區分大小寫。因此,若 LastName = Jones,針對「連絡人」物件的 SOQL 查詢只會傳回 Jones,而不會傳回 jones 或 JONES。同樣地,當區分大小寫決定性方式測試其獨特性時,每個版本的「Jones」都是唯一的。
聊天
「說話方式建議」物件上的「說話方式」欄位僅支援不區分大小寫的決定性加密。雖然 UI 會顯示區分大小寫決定性與區分大小寫可能性性加密,但這些方式目前並非可用。
「交談項目」物件上的「執行動作名稱」欄位支援區分大小寫決定性加密,但不支援不區分大小寫決定性加密。
複合欄位
即使是對於決定性加密,在使用區分大小寫決定性加密加密資料時,某些種類的搜尋也無效。串連值 (例如複合名稱) 與分隔值不同。例如,複合名稱「William Jones」的加密文字與「William」和「Jones」加密文字的串連不同。
因此,如果「名字」和「姓氏」欄位已在「連絡人」物件中加密,則此查詢無法運作。
Select Id from Contact Where Name = 'William Jones'但此查詢有效。
Select Id from Contact Where FirstName = 'William’ And LastName ='Jones'
區分大小寫與不區分大小寫決定性加密架構支援複合欄位,但僅支援包含個別資料欄查詢的欄位。
將帳戶和連絡人記錄轉換為個人帳戶
當您將帳戶和連絡人記錄轉換為「個人帳戶」時,請同步您的資料。同步會重設允許不區分大小寫篩選的索引。
無法使用合併帳戶工具進行搜尋
使用可能性或決定性加密加密「帳戶名稱」或「連絡人名稱」欄位時,搜尋要合併的重複帳戶或連絡人不會傳回任何結果。
自訂欄位配置
為了支援不區分大小寫的查詢,Salesforce 會將資料的小寫重複項目儲存為資料庫中的自訂欄位。這些重複項目對於不區分大小寫的查詢是必要的,但會計入您的自訂欄位總數。例如,如果您的組織中有 200 個自訂欄位,且您選擇使用不區分大小寫決定性加密來加密一個欄位,則您的自訂欄位總數為 201。
外部識別碼
不區分大小寫決定性加密支援「文字」與「電子郵件」外部識別碼自訂欄位,但不支援其他外部識別碼自訂欄位。當您建立或編輯這些欄位時,請使用下列欄位設定組合其中之一。
| 外部識別碼欄位類型 | 唯一屬性 | 加密 |
|---|---|---|
| 文字 | 無 | 使用區分大小寫決定性加密。 |
| 文字 | 唯一且區分大小寫 | 使用區分大小寫決定性加密。 |
| 文字 | 唯一且不區分大小寫 | 使用區分大小寫決定性加密。 |
| 電子郵件 | 無 | 使用區分大小寫決定性加密。 |
| 電子郵件 | 唯一 | 使用區分大小寫決定性加密。 |
您無法同時儲存「唯一 - 區分大小寫」和「加密」選項的變更。變更一個設定,儲存設定,然後變更下一個設定。
篩選器運算子
在報告與清單檢視中,區分大小寫決定性加密支援「等於」和「不等於」運算子。例如「包含」或「開頭為」等其他運算子不會傳回完全符合的結果,且不受支援。依賴不支援之運算子的功能也不受支援,例如「精簡依據」篩選條件。
不區分大小寫決定性加密支援清單檢視與報告。不過,使用者介面會顯示所有運算子,包含不支援加密資料的運算子。若要檢閱 Salesforce Classic 中支援的運算子清單,請參閱在公式中使用加密資料。
依字串篩選記錄
您可以使用字串搜尋記錄。然而,字串中的逗號會如 OR 陳述式運作。若您的字串包含逗號,請在字串周圍使用引號。例如,搜尋 “Universal Containers, Inc, Berlin” 會傳回包含內有逗號的完整字串的記錄。搜尋 Universal Containers, Inc, Berlin 會傳回包含「Universal Containers」或「Inc」或「Berlin」的記錄。
公式
使用可能性加密方式加密的欄位無法在 SOQL WHERE 查詢中參照。不過,您可以將 SOQL WHERE 查詢與使用決定性加密方式加密的非公式欄位搭配使用。「名稱」是非公式欄位的範例。
索引
當您的加密方式包含用於索引的加密欄位時,請針對這些欄位使用決定性加密。
如果您選擇加密屬於索引一部分或具有唯一性需求的欄位,則會有明顯的影響。請仔細閱讀此區段,以瞭解問題。
系統支援區分大小寫與不區分大小寫決定性加密。
- 區分大小寫決定性加密支援針對標準與自訂欄位的單欄索引、單欄區分大小寫的唯一索引、雙欄索引以及自訂索引。
- 不區分大小寫決定性加密對下列標準欄位的標準索引提供有限的支援。
- 連絡人—電子郵件
- 電子郵件訊息—關係
- 商機—電子郵件
- 名稱
計畫加密索引欄位之前,請先注意這些效能考量事項。
- 查詢效能不佳:針對以不區分大小寫決定性加密的欄位進行的查詢可能會對大型表格執行不佳。為獲取最佳查詢效能,請使用自訂索引,而不是標準索引。若要設定「自訂索引」,請連絡 Salesforce 客戶支援。
- 對應欄位篩選:參照「名稱」欄位的對應欄位也依賴索引。若要篩選清單檢視和報告中的「名稱」欄位,請根據標準「名稱」欄位而非對應欄位進行篩選。
- 長的啟用流程:當您將決定性加密套用至包含大量記錄的欄位時,啟用程序預期需花費較長時間。啟用流程也會重新建立欄位索引。
如果您選擇加密索引欄位,請使用這些最佳作法。
- 確保一致的加密:在索引欄位或具有唯一性需求的欄位上使用決定性加密時,請確保所有值皆使用相同的決定性金鑰加密。這可確保在記錄之間可靠識別重複項目。
- 執行加密同步:建議在進行任何可能影響索引唯一性的變更後立即執行加密同步,例如變更加密方式或輪替「決定性加密」租戶機密。
- 停機計畫:在離峰時段規劃這些變更,以儘量減少中斷。「加密同步化」會以批次方式執行,並視實體結構、記錄量和涉及的欄位而定,可能會花費不同的時間。與我們的支援小組合作計畫必要的停機時間。
金鑰輪換和篩選可用性
新增、移除或變更決定性加密方式會重新建立您的索引。加密欄位上的使用者活動會造成索引中的重複資料,這會干擾同步作業。在您輪替決定性金鑰資料或將欄位的加密方式變更為區分大小寫決定性加密或不區分大小寫決定性加密後,請盡快將資料同步至已啟用的金鑰。同步化會將啟用的金鑰資料套用至現有與新資料。若您並未同步資料,則使用唯一屬性篩選和查詢欄位不會傳回精確的結果。
您可以在「設定」的「加密統計資料和資料同步化」頁面上,自行同步化標準和自訂欄位中的資料。若要同步化所有其他資料或大量資料,請連絡 Salesforce 客戶支援。如需資料同步的詳細資訊,請參閱 使用背景加密服務同步化資料加密。
Next Best Action 建議
當您使用決定性加密時,您只能在搭配等於或不等於運算子的載入條件下使用加密欄位。
將決定性加密從欄位中移除
如果您從使用決定性加密加密的欄位移除加密,Shield Platform Encryption 需要一些時間才能解密整個組織的該欄位。您組織的大小會決定此流程所花費的時間,因此欄位在更新完成前將不會具有未加密欄位的篩選與排序特性。
SOQL GROUP BY 陳述式
根據 SOQL/SOSL 參照頁面比較運算子上的規則,組合 where 子句。
決定性加密不支援 GROUP BY 子句。如果您使用決定性欄位指定 GROUP BY,則分組不會準確或一致。
SOQL LIKE 和 STARTS WITH 陳述式
決定性加密僅支援確切且區分大小寫的相符項目。不支援傳回部分相符項目的比較運算子。例如,LIKE 和 STARTS WITH 陳述式不受支援。
SOQL ORDER BY 陳述式
由於決定性加密不會保留加密資料在資料庫中的排序順序,因此不支援 ORDER BY。

