Objetivo
Aplicar mínimo privilegio y controlar consumo.
Explicación
Los privilegios se conceden a roles; los roles se asignan a usuarios. Separa administración de consumo. Para coste, combina tamaños adecuados, auto-suspend y monitorización del historial. En Snowflake, una decisión aparentemente pequeña puede afectar coste, seguridad o trazabilidad. El objetivo profesional es saber qué objeto estás usando, qué privilegios necesita y cómo demostrar que una carga o transformación no ha perdido datos. Para trabajar Roles, permisos y coste de forma profesional, no te quedes con el ejemplo: identifica la entrada, ejecuta el caso base, provoca al menos un caso incorrecto y compara el resultado con un control independiente. En este laboratorio el criterio de salida es concreto: SELECT en MARTS permitido; INSERT/UPDATE en RAW no permitido. La verificación principal será: Usa SHOW GRANTS TO ROLE ANALYST. Si no puedes explicar por qué pasa esa comprobación, vuelve al paso anterior antes de continuar.
Contexto profesional
En Snowflake, una decisión aparentemente pequeña puede afectar coste, seguridad o trazabilidad. El objetivo profesional es saber qué objeto estás usando, qué privilegios necesita y cómo demostrar que una carga o transformación no ha perdido datos.
Ejemplo real
GRANT USAGE ON DATABASE LEARNING_DB TO ROLE ANALYST;
GRANT USAGE ON SCHEMA LEARNING_DB.MARTS TO ROLE ANALYST;
GRANT SELECT ON ALL TABLES IN SCHEMA LEARNING_DB.MARTS TO ROLE ANALYST;
Archivos o datos de entrada
- sql/ecommerce_setup.sql
- data/ecommerce_orders.csv
Práctica guiada
Diseña un rol ANALYST que sólo lea MARTS.
Laboratorio paso a paso
- Prepara el entorno y localiza los datos/archivos de entrada: sql/ecommerce_setup.sql, data/ecommerce_orders.csv. Antes de modificar nada, anota el número de filas, columnas u objetos que esperas usar.
- Reproduce el ejemplo real de la lección y guarda la salida. No avances hasta poder explicar qué hace cada bloque relacionado con «Roles, permisos y coste».
- Ejecuta la práctica guiada: Diseña un rol ANALYST que sólo lea MARTS. Documenta el comando, consulta o acción exacta y el resultado obtenido.
- Resuelve el reto sin mirar la solución: Comprueba qué debería fallar si ese rol intenta modificar RAW. Si falla, registra el mensaje de error y formula una hipótesis antes de cambiar código.
- Compara tu resultado con el criterio esperado: SELECT en MARTS permitido; INSERT/UPDATE en RAW no permitido. Después ejecuta la comprobación: Usa SHOW GRANTS TO ROLE ANALYST.
- Provoca deliberadamente un caso problemático relacionado con este error frecuente: Usar ACCOUNTADMIN para trabajo diario aumenta riesgo.. Comprueba que sabes detectarlo y corregirlo.
Reto sin ayuda
Comprueba qué debería fallar si ese rol intenta modificar RAW.
Resultado esperado
SELECT en MARTS permitido; INSERT/UPDATE en RAW no permitido.
Cómo verificarlo
Usa SHOW GRANTS TO ROLE ANALYST.
Checklist de validación
- El resultado cumple: SELECT en MARTS permitido; INSERT/UPDATE en RAW no permitido.
- Has ejecutado esta verificación y puedes explicar el resultado: Usa SHOW GRANTS TO ROLE ANALYST.
- Has probado al menos un caso límite o dato inválido y el comportamiento es explícito, no silencioso.
- Puedes repetir la práctica desde cero sin copiar la solución y dejar evidencia (consulta, commit, captura o salida de consola).
Pista específica
Concede sólo USAGE y SELECT necesarios.
Solución paso a paso
1) Empieza reproduciendo el caso base con los datos indicados. 2) Aplica esta estrategia específica: No otorgues OWNERSHIP ni privilegios de escritura al consumidor. 3) Usa como referencia técnica el ejemplo de la lección (GRANT USAGE ON DATABASE LEARNING_DB TO ROLE ANALYST; GRANT USAGE ON SCHEMA LEARNING_DB.MARTS TO ROLE ANALYST; GRANT SELECT ON ALL TABLES IN SCHEMA LEARNING_DB.MARTS TO ROLE ANALYST;). 4) Ejecuta la verificación: Usa SHOW GRANTS TO ROLE ANALYST. 5) Compara con el resultado esperado: SELECT en MARTS permitido; INSERT/UPDATE en RAW no permitido. 6) Repite el reto cambiando un dato o condición para demostrar que entiendes el comportamiento y no has obtenido el resultado por casualidad. Si aparece el error «Usar ACCOUNTADMIN para trabajo diario aumenta riesgo.», corrige la causa antes de continuar; no ocultes el fallo ni cambies el resultado esperado para que la prueba pase.
Errores frecuentes
- Usar ACCOUNTADMIN para trabajo diario aumenta riesgo.
Qué debes recordar
Relaciona cada objeto de Snowflake con su responsabilidad y coste.
Preguntas de entrevista
- ¿Cómo separarías compute, almacenamiento y permisos para este caso? Aplícalo concretamente a «Roles, permisos y coste».
- ¿Qué consultarías para diagnosticar coste o una carga incompleta? Explica qué evidencia enseñarías al revisor.
Siguiente paso
Cerrarás con RAW→STAGING→MARTS.
Recursos de esta lección
Preparando contenido…
Quiz de la lección
¿Qué principio limita permisos a lo necesario?