Périmètre
- Plateforme : Snowflake
- Périmètre : compte xy12345, base CANOT_LAB
- Niveau de droits : 3 (+ droits et outils (pseudonymisés))
- Mode SQL : lecture seule
- Lectures : 33 faites sur 35
- Contenu lu : 12 tables, 25 objets, 6 familles de requêtes
- Versions : canot 0.1.0, duckdb 1.5.6, sqlglot 30.22.0
Capacités
Ce rapport est un inventaire : inventorié, ni exporté ni rejoué.
| Niveau | Ce rapport | Canot sur Snowflake |
|---|---|---|
| Inventaire | fait par ce scan (niveau 3) | complet, niveaux 1 à 3 |
| Export | non fait par ce scan | iceberg, avec canot drill |
| Preuve | non faite par ce scan | P1 parité des données ; P2 rejeu des requêtes, avec canot drill |
Connecteur Snowflake : testé ; test enregistré : canot drill, 2026-10-17 : compte d'essai Snowflake, TPC-H SF10 (docs/banc-essai.md).
Ce que Canot ne peut pas prouver ici : les formes déclarées (P1, P2) couvrent les tables et les requêtes ; les objets à reconstruire hors tables sont comptés, non prouvés.
Coûts observés
Fenêtre : 365 jours. Crédits mesurés ; en dollars, seulement avec le prix fourni ou une fourchette de prix catalogue datée.
| Élément | Valeur | Nature et base |
|---|---|---|
| Crédits consommés | 43,50 crédits | calculé · S05 somme des crédits par service sur 365 jours |
| En dollars | 113,10 $ à 226,20 $
| estimé, confiance basse · S05 crédits × prix catalogue du crédit, du plus bas au plus haut |
Par service
| Service | Crédits |
|---|---|
| WAREHOUSE_METERING | 41,50 crédits |
| SERVERLESS_TASK | 1,20 crédit |
| AUTO_CLUSTERING | 0,80 crédit |
Par entrepôt
| Entrepôt | Crédits |
|---|---|
| CANOT_WH | 40,00 crédits |
| COMPUTE_WH | 1,50 crédit |
Stockage
| Élément | Valeur | Nature et base |
|---|---|---|
| Stockage facturé moyen | 24 Go | mesuré · S04 |
| Stockage en dollars | Non estimé : prix de votre contrat non lu. | non estimé |
Mouvements
3 figées, 7 vivantes, 1 recréée, 1 non déterminée.
recréée : DDL de moins de 7 jours sans écriture ultérieure ; vivante : écriture de moins de 30 jours ; figée : dernière écriture plus ancienne ; non déterminée : écritures non lues. Base : S01, S08, S25.
| Table | Type | Volume | Mouvement | Preuve |
|---|---|---|---|---|
| CANOT_LAB.RAW.ARCHIVE_1 | TABLE | 5 Go | figée | dernière écriture le 2025-01-10 |
| CANOT_LAB.RAW.ARCHIVE_2 | TABLE | 5 Go | figée | dernière écriture le 2025-01-10 |
| CANOT_LAB.RAW.ARCHIVE_3 | TABLE | 5 Go | figée | dernière écriture le 2025-01-10 |
| CANOT_LAB.RAW.ORDERS | TABLE | 2 Go | vivante | dernière écriture le 2026-10-16 |
| CANOT_LAB.MART.FCT_ORDERS | TABLE | 1,5 Go | recréée | dernier DDL le 2026-10-17, aucune écriture ultérieure |
| CANOT_LAB.RAW.CUSTOMERS | TABLE | 800 Mo | vivante | dernière écriture le 2026-10-15 |
| CANOT_LAB.RAW.ORDERS_CLONE | CLONE | 100 Mo | vivante | dernière écriture le 2026-10-15 |
| CANOT_LAB.MART.DIM_LEGACY | TABLE | 10 Mo | non déterminé | écritures non lues |
| CANOT_LAB.OPS.EVENTS_LOG | TABLE | 10 Mo | vivante | dernière écriture le 2026-10-17 |
| CANOT_LAB.SANDBOX.OLD_EXPORT_2023 | TABLE | 10 Mo | vivante | dernière écriture le 2026-10-15 |
| CANOT_LAB.SANDBOX.TEAM_WORK | TABLE | 10 Mo | vivante | dernière écriture le 2026-10-15 |
| CANOT_LAB.EXT.US_STATES | EXTERNE | non lu | vivante | dernière écriture le 2026-10-15 |
Ce qui ne part pas avec la copie
Objets à reconstruire ou à décrire
| Type | Nombre | Exemples |
|---|---|---|
| base importée | 2 | SNOWFLAKE, SNOWFLAKE_SAMPLE_DATA |
| étiquette (tag) | 1 | CANOT_LAB.OPS.PII |
| flux (stream) | 1 | CANOT_LAB.OPS.ORDERS_STREAM |
| fonction | 3 | CANOT_LAB.MART.CLEAN_NAME, CANOT_LAB.MART.FX_TO_CENTS, CANOT_LAB.MART.SLUG |
| partage | 2 | S_CLIENTS, S_PARTNER |
| pipe | 1 | CANOT_LAB.OPS.P_EVENTS |
| politique d'accès aux lignes | 1 | CANOT_LAB.OPS.RAP_COUNTRY |
| politique de masquage | 1 | CANOT_LAB.OPS.MP_EMAIL |
| procédure | 3 | CANOT_LAB.MART.SP_DYNAMIC_JS, CANOT_LAB.MART.SP_DYNAMIC_PY, CANOT_LAB.MART.SP_REFRESH_MART |
| stage | 2 | CANOT_LAB.EXT.S3_PUBLIC, CANOT_LAB.RAW.INT_STAGE |
| table dynamique | 1 | CANOT_LAB.MART.DT_COUNTRY_REVENUE |
| tâche | 4 | CANOT_LAB.OPS.T_DAILY, CANOT_LAB.OPS.T_EXPORT_NIGHTLY, CANOT_LAB.OPS.T_REFRESH, CANOT_LAB.OPS.T_SERVERLESS |
| vue | 3 | CANOT_LAB.MART.V_KPI, CANOT_LAB.STAGING.STG_ORDERS, CANOT_LAB.STG.V_STATES |
Routines par langage : JAVASCRIPT 2, PYTHON 2, SQL 2.
Colonnes de type propre à la plateforme (2)
| Table | Colonne | Type |
|---|---|---|
| CANOT_LAB.RAW.CUSTOMERS | profile | VARIANT |
| CANOT_LAB.RAW.CUSTOMERS | geo | GEOGRAPHY |
Historique facturé
| Élément | Valeur | Nature et base |
|---|---|---|
| Time Travel et Fail-safe (2 tables) | 6,3 Go | calculé · S03 Time Travel + Fail-safe des tables présentes, + octets encore facturés des tables supprimées |
Dépendances
Dépendances externes (F01)
| Objet | Type | Emplacement |
|---|---|---|
| CANOT_LAB.EXT.S3_PUBLIC | stage | s3://canot-lab-public |
| SNOWFLAKE_SAMPLE_DATA | base importée | non lu |
| CANOT_LAB.EXT.US_STATES | table | s3://canot-lab-public |
Dépendances externes cachées (F02)
| Objet | Chemin | Emplacement |
|---|---|---|
| CANOT_LAB.MART.V_KPI | CANOT_LAB.MART.V_KPI → CANOT_LAB.STG.V_STATES → CANOT_LAB.EXT.US_STATES | s3://canot-lab-public |
| CANOT_LAB.STG.V_STATES | CANOT_LAB.STG.V_STATES → CANOT_LAB.EXT.US_STATES | s3://canot-lab-public |
Écritures hors de la plateforme (F03)
| Source | Mode | Destination |
|---|---|---|
| famille dddddddddddd | observé | s3://canot-lab-export |
| objet CANOT_LAB.OPS.T_EXPORT_NIGHTLY | déclaré | s3://canot-lab-export |
Consommateurs externes (F09)
| Partage | Comptes |
|---|---|
| S_CLIENTS | 2 |
Outils vus dans les requêtes
| Outil | Familles | Exécutions |
|---|---|---|
| looker | 1 | 340 |
| dbt-snowflake | 1 | 72 |
| airflow | 2 | 60 |
| notebook | 1 | 25 |
| bi-sim | 1 | 12 |
Clients connectés (sessions)
| Client | Sessions |
|---|---|
| dbt-snowflake | 2 190 |
| looker | 310 |
Rejouabilité des requêtes
| Catégorie | Signification | Familles | Exécutions | Poids |
|---|---|---|---|---|
| C0 | traduite et acceptée par DuckDB | 2 | 352 | 1,80 crédit |
| C1 | non analysable | 0 | 0 | 0,00 crédit |
| C2 | commande, non analysée | 0 | 0 | 0,00 crédit |
| C3 | traduction impossible | 0 | 0 | 0,00 crédit |
| C4 | erreur d'analyse DuckDB | 1 | 25 | 0,30 crédit |
| C5 | erreur de liaison (objet ou fonction propre à la plateforme) | 0 | 0 | 0,00 crédit |
| C6 | variable | 0 | 0 | 0,00 crédit |
| C7 | DDL, COPY, MERGE, requêtes de métadonnées : comptées à part | 3 | 132 | 4,20 crédits |
| Élément | Valeur | Nature et base |
|---|---|---|
| Taux C0, par familles | 66,7 % | calculé · S24 C0 ÷ C0 à C6, en familles ; C7 compté à part |
| Taux C0, par exécutions | 93,4 % | calculé · S24 C0 ÷ C0 à C6, en exécutions ; C7 compté à part |
| Taux C0, pondéré | 85,7 % | calculé · S24 C0 ÷ C0 à C6, en crédits ; C7 compté à part |
Base : 6/6 familles, du 2025-10-18 au 2026-10-17, sqlglot 30.22.0, duckdb 1.5.6.
accepté ≠ résultat identique. Traduit vers DuckDB, non comparé.
Familles les plus exécutées (formes normalisées)
| Catégorie | Exécutions | Outil | Forme normalisée |
|---|---|---|---|
| C0 | 340 | looker | SELECT country, SUM(total) FROM MART.FCT_ORDERS WHERE order_date >= ? GROUP BY country |
| C7 | 72 | dbt-snowflake | MERGE INTO DBT.FCT USING (SELECT * FROM RAW.ORDERS WHERE x = ?) AS s ON ? WHEN MATCHED THEN UPDATE SET y = ? |
| C7 | 30 | airflow | COPY INTO @EXT.S3_PUBLIC FROM (SELECT * FROM OPS.EVENTS_LOG) |
| C7 | 30 | airflow | COPY INTO @RAW.INT_STAGE FROM (SELECT * FROM OPS.EVENTS_LOG) |
| C4 | 25 | notebook | SELECT f.value:k::STRING FROM RAW.EVENTS, LATERAL FLATTEN(input => props) AS f |
| C0 | 12 | bi-sim | SELECT * FROM RAW.CUSTOMERS WHERE email = ? |
Fourchettes
Estimations de cadrage : chaque fourchette porte ses hypothèses. Un canot drill remplace le débit supposé par une mesure.
| Élément | Valeur | Nature et base |
|---|---|---|
| Volume à copier | 19,4 Go
| calculé · S03 somme des octets actifs |
| Durée de lecture de la copie | 4 min à 16 min
| estimé, confiance basse · S03 volume ÷ débit supposé |
| Crédits de lecture de la copie | 0,07 crédit à 0,27 crédit
| estimé, confiance basse · S03 durée × crédits par heure |
| Coût de lecture de la copie | 0,18 $ à 1,40 $
| estimé, confiance basse · S03 crédits × prix catalogue du crédit, du plus bas au plus haut |
| Reprise | 5,2 j à 31,0 j
| estimé, confiance basse · S02, S11, S12, S13, S14, S17 objets × jours par objet + colonnes × jours par colonne |
Constats
Chaque constat est étiqueté « À examiner », sans niveau de gravité. Il dit ce qui est observé et ce qui ne l'est pas.
F01 · Dépendance externeÀ examiner
3 constats
| Cible | Observé |
|---|---|
| objet CANOT_LAB.EXT.S3_PUBLIC | Stage externe (s3://canot-lab-public). |
| objet SNOWFLAKE_SAMPLE_DATA | Base importée depuis un partage entrant. |
| table CANOT_LAB.EXT.US_STATES | Table externe : données hors de la plateforme (s3://canot-lab-public). |
F02 · Dépendance externe cachéeÀ examiner
2 constats
| Cible | Observé |
|---|---|
| objet CANOT_LAB.MART.V_KPI | Dépend de CANOT_LAB.EXT.US_STATES, hors de la plateforme, à travers 2 niveaux : CANOT_LAB.MART.V_KPI → CANOT_LAB.STG.V_STATES → CANOT_LAB.EXT.US_STATES (s3://canot-lab-public). |
| objet CANOT_LAB.STG.V_STATES | Dépend de CANOT_LAB.EXT.US_STATES, hors de la plateforme, à travers 1 niveau : CANOT_LAB.STG.V_STATES → CANOT_LAB.EXT.US_STATES (s3://canot-lab-public). |
F03 · Écriture hors de la plateformeÀ examiner
2 constats
| Cible | Observé |
|---|---|
| famille dddddddddddd | Écriture hors de la plateforme observée : 30 exécutions (airflow) ; destination : s3://canot-lab-export. |
| objet CANOT_LAB.OPS.T_EXPORT_NIGHTLY | Tâche qui écrit hors de la plateforme (écriture déclarée dans sa définition) ; destination : s3://canot-lab-export. |
F04 · Rôle propriétaire sans titulaireÀ examiner
1 constat
| Cible | Observé |
|---|---|
| rôle LAB_ORPHAN | Le rôle LAB_ORPHAN possède 1 objet et n'est attribué à aucun utilisateur, ni directement ni par un autre rôle. |
F05 · Stockage sans lecture observéeÀ examiner
3 constats
| Cible | Observé |
|---|---|
| table CANOT_LAB.RAW.ARCHIVE_1 | 5 Go stockés. Aucune lecture observée dans ACCESS_HISTORY du 2025-10-18 au 2026-10-17 ; angles morts : consommateurs des partages, RESULT_SCAN. Partagée avec 2 consommateurs externes : leurs lectures ne sont pas vues. |
| table CANOT_LAB.RAW.ARCHIVE_2 | 5 Go stockés. Aucune lecture observée dans ACCESS_HISTORY du 2025-10-18 au 2026-10-17 ; angles morts : consommateurs des partages, RESULT_SCAN. |
| table CANOT_LAB.RAW.ARCHIVE_3 | 5 Go stockés. Aucune lecture observée dans ACCESS_HISTORY du 2025-10-18 au 2026-10-17 ; angles morts : consommateurs des partages, RESULT_SCAN. |
F06 · Historique facturé qui ne se transfère pasÀ examiner
1 constat
| Cible | Observé |
|---|---|
| table CANOT_LAB.RAW.ORDERS | 6 Go d'historique facturé (Time Travel et Fail-safe), rétention 30 jours, pour 2 Go actifs ; cet historique ne part pas avec la copie. |
F07 · Table supprimée encore facturéeÀ examiner
1 constat
| Cible | Observé |
|---|---|
| table CANOT_LAB.RAW.TMP_DROPPED | Supprimée le 2026-10-10 ; 300 Mo encore facturés (Time Travel et Fail-safe). |
F08 · SQL dynamiqueÀ examiner
2 constats
| Cible | Observé |
|---|---|
| objet CANOT_LAB.MART.SP_DYNAMIC_JS | Procédure (JAVASCRIPT) : construit du SQL à l'exécution ; les objets touchés ne peuvent pas être lus dans le code. |
| objet CANOT_LAB.MART.SP_DYNAMIC_PY | Procédure (PYTHON) : construit du SQL à l'exécution ; les objets touchés ne peuvent pas être lus dans le code. |
F09 · Consommateurs externesÀ examiner
1 constat
| Cible | Observé |
|---|---|
| objet S_CLIENTS | Partage vers 2 comptes cibles ; 2 objets partagés. Les lectures des consommateurs ne sont pas vues par ce scan. |
F10 · Sécurité à reconstruireÀ examiner
5 constats
| Cible | Observé |
|---|---|
| objet CANOT_LAB.OPS.MP_EMAIL | Politique de masquage appliquée à 1 objet ; elle ne part pas avec la copie ; la copie exige un principal non filtré. |
| objet CANOT_LAB.OPS.PII | Étiquette (tag) appliquée à 1 objet ; elle ne part pas avec la copie. |
| objet CANOT_LAB.OPS.RAP_COUNTRY | Politique d'accès aux lignes appliquée à 1 objet ; elle ne part pas avec la copie ; la copie exige un principal non filtré. |
| table CANOT_LAB.MART.FCT_ORDERS | Politiques : OPS.RAP_COUNTRY. Elles ne partent pas avec la copie ; la copie exige un principal non filtré par ces politiques. |
| table CANOT_LAB.RAW.CUSTOMERS | Politiques : OPS.MP_EMAIL ; 1 étiquette. Elles ne partent pas avec la copie ; la copie exige un principal non filtré par ces politiques. |
F11 · Chaîne planifiée et ses échecsÀ examiner
7 constats
| Cible | Observé |
|---|---|
| objet CANOT_LAB.MART.DT_COUNTRY_REVENUE | Table dynamique, planification 1 day ; exécutions non lues. |
| objet CANOT_LAB.OPS.ORDERS_STREAM | Flux (stream) ; sur CANOT_LAB.RAW.ORDERS. |
| objet CANOT_LAB.OPS.P_EVENTS | Pipe, état RUNNING ; exécutions non lues. |
| objet CANOT_LAB.OPS.T_DAILY | Tâche, planification USING CRON 0 3 * * * Europe/Paris, état started ; 365 exécutions, 2 échecs, dernière le 2026-10-17. |
| objet CANOT_LAB.OPS.T_EXPORT_NIGHTLY | Tâche, planification USING CRON 0 2 * * * UTC, état started ; 30 exécutions, 30 échecs, dernière le 2026-10-17. |
| objet CANOT_LAB.OPS.T_REFRESH | Tâche, état started ; 365 exécutions, 0 échec, dernière le 2026-10-17 ; chaîne : CANOT_LAB.OPS.T_DAILY → CANOT_LAB.OPS.T_REFRESH. |
| objet CANOT_LAB.OPS.T_SERVERLESS | Tâche, planification 60 MINUTE, état suspended ; 0 exécution, 0 échec. |
F12 · Lecture incomplèteÀ examiner
3 constats
| Cible | Observé |
|---|---|
| lecture S33 | STREAMS non lu (droit absent) ; limite : flux (F11). |
| lecture S34 | TASK_VERSIONS non lu (droit absent) ; limite : versions des tâches (F11). |
| lecture lectures_par_table | Lectures non déterminées pour 1 table ; limite : stockage sans lecture observée (F05). |
Ce que ce rapport ne chiffre pas
- Coût du stockage : prix de votre contrat non lu.
- Votre tarif contractuel : prix de votre contrat non lu.
- Stockage de destination, fonctionnement en parallèle des deux plateformes, exploitation après la sortie : dépendent de votre contrat et de votre architecture.
- Résultats identiques des requêtes traduites : accepté ≠ résultat identique ; traduites vers DuckDB, non comparées ; un canot drill compare les résultats.
- Projections de coût fournies par la plateforme : non utilisées, car elles ne peuvent pas être vérifiées depuis le scan.
Utiliser ce rapport pour vos travaux réglementaires (RGPD, DORA, NIS2, Data Act, SecNumCloud, ABE)
Ces éléments peuvent appuyer vos propres travaux sur le RGPD, DORA, NIS2, le Data Act, SecNumCloud ou les orientations de l'ABE sur l'externalisation. Ce sont des éléments de preuve, pas une conclusion : ce rapport n'est pas une certification, ce n'est pas un conseil juridique, et il ne dit pas si vos contrats ou votre organisation satisfont à une réglementation.
| Cadre | Ce qu'il demande, en bref | Ce que ce rapport vous apporte | Ce qu'il ne couvre pas |
|---|---|---|---|
| DORA (règlement (UE) 2022/2554) | Art. 28, § 8, et art. 30, § 3, point f) : une transition réaliste, avec une période adéquate. | Le débit mesuré et une fourchette de temps de reprise issus de l'exercice ; une fourchette de durée de copie (estimée) dans le scan. | Hors validation humaine et bascule de vos applications. |
| DORA (règlement (UE) 2022/2554) | Art. 28 : savoir ce qui dépend du prestataire TIC. | Ce qui ne se déplace pas tel quel : vues, routines, tâches, politiques, dépendances externes, avec les éléments à l'appui de chaque constat. | Un inventaire de la plateforme, pas de vos contrats ni des applications qui y sont connectées. |
| Data Act (règlement (UE) 2023/2854) | Art. 29 : les frais de changement sont supprimés à partir du 12 janvier 2027. | L'effort qui reste à votre charge : coût de lecture, durée de copie et estimations de reprise, chacun marqué mesuré, calculé ou estimé. | Ne dit rien des frais que votre prestataire peut encore appliquer avant cette date. Les prix sont des tarifs catalogue datés, pas votre contrat. |
| RGPD (règlement (UE) 2016/679) | Chapitre V (transferts) et art. 32 (sécurité du traitement). | L'endroit où la copie est hébergée, et les objets de sécurité qui ne la suivent pas (politiques de masquage et d'accès aux lignes, tags). | Le lieu d'hébergement est la destination que vous avez choisie. L'appréciation juridique d'un transfert vous revient. |
| RGPD (règlement (UE) 2016/679) | Art. 5, § 1, point c) : minimisation des données. | Le scan lit les métadonnées et l'historique d'exécution, pas le contenu des tables. Le texte SQL est masqué et les identités sont pseudonymisées. | Vaut pour le scan seulement : un exercice de sortie (drill) lit les données qu'il copie. |
| NIS2 (directive (UE) 2022/2555) | Art. 21, § 2, point d) : sécurité de la chaîne d'approvisionnement, y compris la relation avec chaque prestataire direct. | Ce qui vous lie à ce prestataire : dépendances externes et objets qui ne se déplacent pas tels quels, avec les éléments à l'appui de chaque constat. | N'évalue pas les mesures de sécurité du prestataire. |
| Orientations de l'ABE sur l'externalisation (EBA/GL/2019/02) | Stratégies de sortie : documentées, réalistes, suffisamment testées et réexaminées périodiquement, pour les externalisations visées par les orientations. | L'exercice de sortie (drill) et l'inventaire de ce qui ne se déplace pas (scan), comme éléments de test dans votre dossier de sortie. | Un exercice. Les prestataires alternatifs, le volet métier et le réexamen périodique vous reviennent. Vérifiez quel texte s'applique à vous en plus de DORA. |
Références arrêtées au 2026-10-19. Vérifiez les textes en vigueur : ils évoluent, et leur application dépend de votre situation.
Méthode
33 lectures faites sur 35. Chaque lecture est enregistrée avec son statut et son motif ; une valeur non lue reste vide, jamais 0.
| Id | Vue | Statut | Motif | Lignes | Fenêtre | Latence |
|---|---|---|---|---|---|---|
| S33 | STREAMS | non lu | droit absent ; limite : flux (F11) | non lu | ||
| S34 | TASK_VERSIONS | non lu | droit absent ; limite : versions des tâches (F11) | non lu | ||
| S01 | TABLES | lu | 10 | 1,5 h | ||
| S02 | COLUMNS | lu | 10 | |||
| S03 | TABLE_STORAGE_METRICS | lu | 10 | 2 h | ||
| S04 | STORAGE_USAGE | lu | 10 | du 2025-10-18 au 2026-10-17 | ||
| S05 | METERING_DAILY_HISTORY | lu | 10 | du 2025-10-18 au 2026-10-17 | 3 h | |
| S06 | WAREHOUSE_METERING_HISTORY | lu | 10 | du 2025-10-18 au 2026-10-17 | 3 h | |
| S07 | QUERY_ATTRIBUTION_HISTORY | lu | 10 | |||
| S08 | TABLE_DML_HISTORY | lu | 10 | du 2025-10-18 au 2026-10-17 | 6 h | |
| S09 | TABLE_QUERY_PRUNING_HISTORY | lu | 10 | du 2025-10-18 au 2026-10-17 | 4 h | |
| S10 | OBJECT_DEPENDENCIES | lu | 10 | |||
| S11 | VIEWS | lu | 10 | |||
| S12 | FUNCTIONS | lu | 10 | |||
| S13 | PROCEDURES | lu | 10 | |||
| S14 | TASKS | lu | 10 | |||
| S15 | TASK_HISTORY | lu | 10 | du 2025-10-18 au 2026-10-17 | ||
| S16 | SERVERLESS_TASK_HISTORY | lu | 10 | |||
| S17 | PIPES | lu | 10 | |||
| S18 | COPY_HISTORY | lu | 10 |
… et 15 de plus dans reads.csv.
Droits utilisés
Niveau 3 : SNOWFLAKE.OBJECT_VIEWER, SNOWFLAKE.USAGE_VIEWER, SNOWFLAKE.GOVERNANCE_VIEWER, SNOWFLAKE.SECURITY_VIEWER. Jamais demandés : IMPORTED PRIVILEGES, MANAGE GRANTS, IMPORT SHARE, USAGE sur les fonctions, READ sur les stages.
Coût du scan
| Élément | Valeur | Nature et base |
|---|---|---|
| Requêtes envoyées | 35 requêtes | mesuré |
| Durée de lecture | 412 s | mesuré |
Garde-fous
- Chaque instruction SQL envoyée passe par une garde lecture seule : seules les instructions SELECT, SHOW, DESCRIBE et ALTER SESSION SET sortent. Aucune écriture, aucune activation d'API, aucun changement de paramètre.
- Utilisateurs et rôles des requêtes pseudonymisés par HMAC, avec un sel tiré pour ce scan et jamais écrit ; valeurs d'étiquettes hachées ; emplacements réduits au bucket.
- Le texte SQL brut n'est jamais écrit : seules les formes normalisées, littéraux masqués, sortent de la collecte.
Règles
- Mouvement : recréée : DDL de moins de 7 jours sans écriture ultérieure ; vivante : écriture de moins de 30 jours ; figée : dernière écriture plus ancienne ; non déterminée : écritures non lues.
- Stockage sans lecture : fenêtre réelle de la vue lue, comparée à 365 jours ; les angles morts de chaque vue sont listés dans le constat.
- Durée de copie : débit supposé de 20 à 80 Mo/s.
- Les prix catalogue sont datés et sourcés ; ils ne remplacent pas le prix de votre contrat.
Suite
Ce rapport décrit votre plateforme ; il ne recommande ni de partir ni de rester.
Pour mesurer une sortie sur un périmètre choisi : canot drill copie vers Apache Iceberg, compare la source et la copie, et signe un dossier de preuve.
Pour aller plus loin, le diagnostic q4o, dès 22 000 € HT : votre tarif contractuel, l'exécution réelle, des scénarios, les étapes à suivre. canot.io