Le secret des architectes Data pour auditer et automatiser cette sauvegarde de sécurité de bout en bout

Audit et Automatisation de Sauvegarde CAS

Une administration de niveau entreprise exige de ne jamais déclencher une sauvegarde à l'aveugle. L'architecture de cette action est pensée pour s'intégrer de manière fluide dans vos processus d'automatisation, que vous orchestriez via des clients comme Python, Lua, R ou directement en CASLLangage de script de SAS Viya utilisé pour interagir avec le serveur CAS. Il permet de combiner des actions CAS, de gérer la logique de programmation et de manipuler les résultats en mémoire..

La clé de cette automatisation réside dans l'exploitation des retours de l'API. Afin de garantir une traçabilité sans faille de l'opération, il est impératif d'utiliser la structure d'appel complète, par exemple en invoquant accessControl.createBackup result=results status=rc.

En interceptant systématiquement l'objet de résultats et le code de retour du serveur, vous pouvez concevoir des flux logiques intelligents. Cela vous permet d'enregistrer précisément l'horodatage de la réussite de l'opération ou de déclencher un workflow de notification d'incident si le système indique qu'une autre sauvegarde a rendu l'action indisponible.

Exemple de Code Additionnel

1<pre>/* CASL Script : Sauvegarde de sécurité avec audit et capture de retour
2(c) Nicolas Housset 2026 - Code SAS pour VIYA 4 - testé et validé en version 2024.09 */
3PROC CAS;
4/* 1. Définition des variables de contexte */
5source_lib = "Public";
6source_tbl = "SALES_DATA";
7backup_name = source_tbl || "_" || put(date(), yymmddn8.);
8/* 2. Exécution de la sauvegarde avec capture du résultat dans 'r' */
9TABLE.save RESULT = r /
10 caslib = "BackupLib"
11 name = backup_name
12 replace = true
13 TABLE = {caslib=source_lib, name=source_tbl};
14/* 3. Analyse experte du retour de l'action */
15PRINT "--- Analyse du statut de la sauvegarde ---";
16IF (r.severity == 0) THEN DO;
17 PRINT "SUCCÈS : La table " source_tbl " a été sauvegardée sous le nom " backup_name;
18 /* Extraction des détails pour l'audit */
19 TABLE.fileInfo RESULT = info / caslib="BackupLib" filter="name='" || backup_name || ".sashdat'";
20 PRINT "Détails du fichier sauvegardé :";
21 PRINT info.fileInfo[,{"name", "size", "lastModified"}];
22END;
23ELSE DO;
24 PRINT "ERREUR : La sauvegarde a échoué avec la sévérité " r.severity;
25 PRINT "Message d'erreur SAS Viya : " r.messages[1];
26 /* Ici, on pourrait forcer un code de sortie pour l'orchestrateur externe */
27 exit({severity=r.severity});
28END;
29QUIT;</pre>

Exemples pour l'action createBackup

Sauvegarde standard sur disque
Schéma conceptuel de l'exemple : Sauvegarde standard sur disque

Découvrez cet exemple pour l'action CAS createBackup : il sérialise les contrôles d'accès (ACL) en un fichier binaire au chemin spécifié pour garantir la résilience de vos métadonnées de sécurité.

Sauvegarde sous forme de tables CAS
Schéma conceptuel de l'exemple : Sauvegarde sous forme de tables CAS

Cet exemple illustre l'instanciation en mémoire des métadonnées d'accès via l'argument tables=True. Il permet un audit rapide sans I/O disque, idéal pour valider les droits sur des nœuds CAS actifs.