

本文為英文版的機器翻譯版本，如內容有任何歧義或不一致之處，概以英文版為準。

# 適用於 的密碼編譯運算中的資料欄類型 Clean Rooms
<a name="crypto-computing-column-types"></a>

本主題提供 密碼編譯運算中資料欄類型的相關資訊Clean Rooms。

**Topics**
+ [Fingerprint 資料欄](#fingerprint-columns)
+ [已密封的資料欄](#sealed-columns)
+ [Cleartext 資料欄](#cleartext-columns)

## Fingerprint 資料欄
<a name="fingerprint-columns"></a>

*Fingerprint 資料欄*是以密碼編譯方式保護的資料欄，可用於 JOIN陳述式。

資料fingerprint欄的資料無法解密。只有來自密封資料欄的資料才能解密。

Fingerprint 欄只能用於下列 SQL 子句和函數：
+ JOIN (INNER, OUTER, LEFT, RIGHT, or FULL) 針對其他fingerprint資料欄：
  + 如果 `allowJoinsOnColumnsWithDifferentNames` 參數的值設定為 `false`，則 的兩個fingerprint資料欄JOIN也必須具有相同的名稱。
+ `SELECT COUNT()`
+ `SELECT COUNT(DISTINCT )`
+ `GROUP BY` （只有在協同合作已將 `preserveNulls` 參數的值設定為 時，才能使用 `true`。)

違反這些限制條件的查詢可能會導致不正確的結果。

## 已密封的資料欄
<a name="sealed-columns"></a>

*密封資料欄*是以密碼編譯方式保護的資料欄，可用於 SELECT陳述式。

密封資料欄只能用於下列 SQL 子句和函數：
+ `SELECT`
+ `SELECT ... AS`
+ `SELECT COUNT()`
**注意**  
不支援 `SELECT COUNT(DISTINCT )`。

違反這些限制條件的查詢可能會導致不正確的結果。

### 在加密之前填補資料sealed欄的資料
<a name="padding-data"></a>

當您指定資料欄應為資料sealed欄時，C3R 會要求您選擇哪種*填補*。在加密之前填補資料是選用的。不使用填補 ( 的鍵盤類型`none`)，加密資料的長度表示 的大小cleartext。在某些情況下， 的大小cleartext可能會公開純文字。使用填補 （鍵盤類型為 `fixed`或 `max`) 時，所有值會先填補至通用大小，然後加密。使用填補時，加密資料的長度不會提供有關原始cleartext長度的資訊，除了在大小上加上上限。

如果您想要填補資料欄，且已知該資料欄中的資料位元組長度上限，請使用`fixed`填補。使用至少與該資料欄中最長`length`值的位元組長度相同的值。

**注意**  
如果值超過提供的 ，則發生錯誤且加密失敗`length`。

如果您想要填補資料欄，而且該資料欄中的資料位元組長度上限不明，請使用`max`填補。此填補模式會將所有資料填入最長值加上額外`length`位元組的長度。

**注意**  
您可能想要批次加密資料，或定期使用新資料更新資料表。請注意，`max`填補會將項目填補至指定批次中最長純文字項目的長度 `length` （加位元組）。這表示加密文字長度可能因批次而異。因此，如果您知道資料欄的最大位元組長度，則應該使用 `fixed`而非 `max`。

## Cleartext 資料欄
<a name="cleartext-columns"></a>

*Cleartext 資料欄*是未受密碼編譯保護的資料欄，可用於 JOIN或 SELECT陳述式。

Cleartext 資料欄可用於 SQL 查詢的任何部分。