

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

# 設定的資料表不允許的資料欄
<a name="disallowed-columns"></a>

不允許的輸出資料欄組態是 AWS Clean Rooms 自訂分析規則中的控制項，可讓您定義不允許在查詢結果中投影的資料欄清單 （如果有的話）。此清單中參考的資料欄會被視為「不允許的輸出資料欄」。這表示透過轉換、別名或其他方式對此類資料欄的任何參考，可能不會出現在查詢的最終 SELECT （投影） 中。

雖然 功能禁止資料欄直接投影在輸出中，但無法完全防止透過其他機制間接推斷基礎值。這些欄仍然可用於投影子句 （例如子查詢或通用資料表表達式 (CTE))，只要它們在最終投影中沒有參考即可。

不允許的輸出資料欄組態可讓您靈活地在資料表上套用和編纂控制，並結合根據使用案例和對應的隱私權需求的分析範本層級檢閱。

如需如何設定此組態的詳細資訊，請參閱 [將自訂分析規則新增至資料表 （引導流程）](add-analysis-rule.md#add-custom-analysis-rule-wizard)。

**範例**

下列範例顯示如何套用不允許的輸出資料欄控制。
+ 成員 A 正在與成員 B 合作。
+ 成員 B 是可執行查詢的成員。
+ 成員 A 使用欄*年齡*、*性別*、*電子郵件*和*名稱*來定義資料表*使用者*。資料欄*存*留期和*名稱*是不允許的輸出資料欄。
+ 成員 B 使用類似的資料欄*存留期*、*性別*和 *owner\$1name* 來定義資料表*寵物*。不過，它們不會對輸出資料欄設定任何限制，這表示資料表中的所有資料欄都可以在查詢中自由投影。



如果成員 B 執行下列查詢，則會遭到封鎖，因為無法直接投影不允許的輸出資料欄：

```
SELECT 
  age 
FROM 
  users
```

如果成員 B 執行下列查詢，則會遭到封鎖，因為無法透過專案星星隱含投影不允許的輸出資料欄：

```
SELECT 
  * 
FROM 
  users
```

如果成員 B 執行下列查詢，則會遭到封鎖，因為無法投影不允許的輸出資料欄轉換：

```
SELECT 
  COUNT(age) 
FROM 
  users
```

如果成員 B 執行下列查詢，則會遭到封鎖，因為無法使用別名在最終投影中參考不允許的輸出資料欄：

```
SELECT 
  count_age
FROM 
  (SELECT COUNT(age) AS count_age FROM users)
```

如果成員 B 執行下列查詢，則會遭到封鎖，因為轉換的限制資料欄會投影在輸出中：

```
SELECT 
  CONCAT(name, email) 
FROM 
  users
```

如果成員 B 執行下列查詢，則會遭到封鎖，因為無法在最終投影中參考 CTE 中定義的不允許輸出資料欄：

```
WITH cte AS (
  SELECT 
    age AS age_alias 
  FROM 
    users
)
SELECT age_alias FROM cte
```

如果成員 B 執行下列查詢，則會遭到封鎖，因為不允許的輸出資料欄無法用作最終投影中的排序或分割區索引鍵：

```
SELECT 
  LISTAGG(gender) WITHIN GROUP (ORDER BY age) OVER (PARTITION BY age) 
FROM 
  users
```

如果成員 B 執行下列查詢，它會成功，因為屬於不允許輸出資料欄一部分的資料欄仍可用於查詢中的其他建構，例如聯結或篩選子句。

```
SELECT
  u.name, 
  p.gender, 
  p.age
FROM 
  users AS u
JOIN 
  pets AS p
ON 
  u.name = p.owner_name
```

在相同的案例中，成員 B 也可以使用*使用者*中的*名稱*欄做為篩選條件或排序索引鍵：

```
SELECT 
  u.email,
  u.gender
FROM 
  users AS u
WHERE 
  u.name = 'Mike'
ORDER BY
  u.name
```

此外，*來自使用者的*不允許輸出資料欄可用於中繼投影，例如子查詢和 CTEs，例如：

```
WTIH cte AS (
 SELECT 
   u.gender, 
   u.id,
   u.first_name
 FROM
   users AS u
)
SELECT 
  first_name 
FROM
  (SELECT cte.gender, cte.id, cte.first_name FROM cte)
```