Las traducciones son generadas a través de traducción automática. En caso de conflicto entre la traducción y la version original de inglés, prevalecerá la version en inglés.
Las columnas de la tabla configurada no permiten
La configuración de las columnas de salida no permitidas es un control de la regla de análisis AWS Clean Rooms personalizada que permite definir la lista de columnas (si las hay) que no se pueden proyectar en el resultado de la consulta. Las columnas a las que se hace referencia en esta lista se consideran «columnas de salida no permitidas». Esto significa que cualquier referencia a dicha columna mediante transformación, creación de alias u otros medios puede no estar presente en la parte final SELECT (proyección) de la consulta.
Si bien esta función impide que las columnas se proyecten directamente en la salida, no impide por completo que los valores subyacentes se deduzcan indirectamente mediante otros mecanismos. Estas columnas se pueden seguir utilizando en una cláusula de proyección (por ejemplo, en una subconsulta o en una expresión de tabla común (CTE)), siempre y cuando no se haga referencia a ellas en la proyección final.
La configuración de columnas de salida no permitidas le ofrece la flexibilidad de aplicar y codificar el control de la tabla, además de revisiones a nivel de plantilla de análisis en función de los casos de uso y los requisitos de privacidad correspondientes.
Para obtener más información sobre cómo establecer esta configuración, consulte. Añadir una regla de análisis personalizada a una tabla (flujo guiado)
Ejemplos
Los siguientes ejemplos muestran cómo se aplica el control de columnas de salida no permitidas.
-
El miembro A colabora con el miembro B.
-
El miembro B es el miembro que puede ejecutar consultas.
-
El miembro A define los usuarios de una tabla con las columnas edad, sexo, correo electrónico y nombre. Las columnas de antigüedad y nombre no son columnas de salida permitidas.
-
El miembro B define las mascotas de mesa con un conjunto similar de columnas: edad, sexo y nombre_propietario. Sin embargo, no establecen ninguna restricción en las columnas de salida, lo que significa que todas las columnas de la tabla se pueden proyectar libremente en la consulta.
Si el miembro B ejecuta la siguiente consulta, se bloquea porque las columnas de salida no permitidas no se pueden proyectar directamente:
SELECT age FROM users
Si el miembro B ejecuta la siguiente consulta, se bloquea porque las columnas de salida no permitidas no se pueden proyectar implícitamente mediante la estrella del proyecto:
SELECT * FROM users
Si el miembro B ejecuta la siguiente consulta, se bloquea porque no se pueden proyectar las transformaciones de las columnas de salida no permitidas:
SELECT COUNT(age) FROM users
Si el miembro B ejecuta la siguiente consulta, se bloquea porque no se puede hacer referencia a las columnas de salida no permitidas en la proyección final mediante un alias:
SELECT count_age FROM (SELECT COUNT(age) AS count_age FROM users)
Si el miembro B ejecuta la siguiente consulta, se bloquea porque las columnas restringidas transformadas se proyectan en la salida:
SELECT CONCAT(name, email) FROM users
Si el miembro B ejecuta la siguiente consulta, se bloquea porque no se CTE puede hacer referencia a las columnas de salida no permitidas definidas en la proyección final:
WITH cte AS ( SELECT age AS age_alias FROM users ) SELECT age_alias FROM cte
Si el miembro B ejecuta la siguiente consulta, se bloquea porque las columnas de salida no permitidas no se pueden usar como claves de clasificación o partición en la proyección final:
SELECT LISTAGG(gender) WITHIN GROUP (ORDER BY age) OVER (PARTITION BY age) FROM users
Si el miembro B ejecuta la siguiente consulta, se realiza correctamente porque las columnas que forman parte de las columnas de salida no permitidas se pueden seguir utilizando en otras estructuras de la consulta, como en las cláusulas de unión o filtro.
SELECT u.name, p.gender, p.age FROM users AS u JOIN pets AS p ON u.name = p.owner_name
En el mismo escenario, el miembro B también puede usar la columna de nombres en los usuarios como filtro o clave de clasificación:
SELECT u.email, u.gender FROM users AS u WHERE u.name = 'Mike' ORDER BY u.name
Además, las columnas de salida no permitidas por los usuarios se pueden utilizar en proyecciones intermedias, como subconsultas yCTEs, por ejemplo:
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)