Colonnes interdites dans le tableau configuré - AWS Clean Rooms

Les traductions sont fournies par des outils de traduction automatique. En cas de conflit entre le contenu d'une traduction et celui de la version originale en anglais, la version anglaise prévaudra.

Colonnes interdites dans le tableau configuré

La configuration des colonnes de sortie interdites est un contrôle de la règle d'analyse AWS Clean Rooms personnalisée qui vous permet de définir la liste des colonnes (le cas échéant) dont vous n'autorisez pas la projection dans le résultat de la requête. Les colonnes référencées dans cette liste sont considérées comme des « colonnes de sortie interdites ». Cela signifie que toute référence à une telle colonne par transformation, aliasing ou autre moyen peut ne pas être présente dans le SELECT final (projection) de la requête.

Bien que cette fonctionnalité empêche les colonnes d'être directement projetées dans la sortie, elle n'empêche pas totalement les valeurs sous-jacentes d'être déduites indirectement par d'autres mécanismes. Ces colonnes peuvent toujours être utilisées dans une clause de projection (telle que dans une sous-requête ou une expression de table commune (CTE)), tant qu'elles ne sont pas référencées dans la toute dernière projection.

La configuration des colonnes de sortie interdites vous donne la flexibilité d'appliquer et de codifier le contrôle sur votre table en combinaison avec des révisions au niveau des modèles d'analyse basées sur des cas d'utilisation et des exigences de confidentialité correspondantes.

Pour plus d'informations sur la façon de définir cette configuration, consultezAjouter une règle d'analyse personnalisée à un tableau (flux guidé).

Exemples

Les exemples suivants montrent comment le contrôle des colonnes de sortie interdites est appliqué.

  • Le membre A est en collaboration avec le membre B.

  • Le membre B est le membre qui peut exécuter des requêtes.

  • Le membre A définit les utilisateurs d'une table avec les colonnes âge, sexe, e-mail et nom. L'âge et le nom des colonnes sont des colonnes de sortie interdites.

  • Le membre B définit un animal de table avec un ensemble similaire de colonnes age, sexe et nom_propriétaire. Cependant, ils ne définissent aucune contrainte sur les colonnes de sortie, ce qui signifie que toutes les colonnes de la table peuvent être projetées librement dans la requête.

Si le membre B exécute la requête suivante, elle est bloquée car les colonnes de sortie interdites ne peuvent pas être projetées directement :

SELECT age FROM users

Si le membre B exécute la requête suivante, elle est bloquée car les colonnes de sortie interdites ne peuvent pas être implicitement projetées via project star :

SELECT * FROM users

Si le membre B exécute la requête suivante, elle est bloquée car les transformations des colonnes de sortie interdites ne peuvent pas être projetées :

SELECT COUNT(age) FROM users

Si le membre B exécute la requête suivante, elle est bloquée car les colonnes de sortie interdites ne peuvent pas être référencées dans la projection finale à l'aide d'un alias :

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

Si le membre B exécute la requête suivante, elle est bloquée car les colonnes restreintes transformées sont projetées dans la sortie :

SELECT CONCAT(name, email) FROM users

Si le membre B exécute la requête suivante, elle est bloquée car les colonnes de sortie interdites définies dans CTE ne peuvent pas être référencées dans la projection finale :

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

Si le membre B exécute la requête suivante, elle est bloquée car les colonnes de sortie interdites ne peuvent pas être utilisées comme clés de tri ou de partition dans la projection finale :

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

Si le membre B exécute la requête suivante, elle aboutit car les colonnes faisant partie des colonnes de sortie interdites peuvent toujours être utilisées dans d'autres constructions de la requête, par exemple dans les clauses de jointure ou de filtrage.

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

Dans le même scénario, le membre B peut également utiliser la colonne de nom dans les utilisateurs comme filtre ou clé de tri :

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

En outre, les colonnes de sortie interdites aux utilisateurs peuvent être utilisées dans des projections intermédiaires telles que des sous-requêtes et CTEs, par exemple :

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)