La classe NsDataAccessLogEntry désigne une entrée dans le journal des accès aux données sauvegardées. Ce journal est conservé à long terme par le serveur de sauvegarde et permet à des fins de sécurité et d'audit de tracer toutes les opérations ayant entraîné l'accès aux fichiers stockés sur le serveur. Il n'est pas possible de supprimer ses entrées manuellement.
Les opérations d'extraction effectuées par le client ou le serveur de sauvegarde renseignent le champ RestorePackageID avec l'identificateur de l'archive de restauration contenant les fichiers récupérés. Les opérations de restauration réalisées avec l'agent client renseignent le champ OperationSummaryID avec l'identificateur de l'opération transactionnelle.
Les entrées du journal pouvant persister plus longuement que les sauvegardes ou les utilisateurs auxquelles elles se référent, les champs RequestorName, BackupName et OwnerName stockent une copie des noms des objets pointés par les champs RequestorID, BackupID et OwnerID dans l'état qu'ils possédaient au moment de l'enregistrement de l'opération.
Le journal groupe les entrées par sauvegardes. Si une archive de restauration comporte des fichiers de sauvegardes différentes le journal contiendra autant de lignes que de sauvegardes accédées, chacune d'entre elles possédant la même valeur pour le champ RestorePackageID.
L'identificateur unique de l'opération.
La date d'exécution de l'opération, au format UTC.
Le type de l'opération ayant entrainé l'accès aux données.
L'identificateur unique de l'utilisateur (NsUser) ayant demandé l'accès aux données.
L'adresse IP de l'utilisateur ayant demandé l'accès aux données telle qu'elle était connue par le logiciel au moment de l'opération.
Le nom de l'utilisateur ayant l'accès aux données tel qu'il était connu par le logiciel au moment de l'opération.
L'identificateur unique de la sauvegarde (NsBackup) contenant les données accédées par l'opération.
Le nom de la sauvegarde telle qu'il est connu par le logiciel au moment de l'opération.
L'identificateur unique de l'utilisateur (NsUser) propriétaire des données accédées.
Le nom de l'utilisateur propriétaire des données tel qu'il était connu par le logiciel au moment de l'opération.
L'identificateur unique de l'archive de restauration (NsRestorePackage) dans laquelles les données ont été empaquettées (ou -1 si cela ne s'applique pas à l'opération).
L'identificateur de résumé de l'opération transactionnelle (NsOperationSummary) (ou -1 si cela ne s'applique pas à l'opération)
Le nombre total de fichiers accédés durant l'opération.
Le volume total de données accédés durant l'opération.
Le message saisi par l'administrateur lors de l'accès aux données, le cas échéant.
Set connection = CreateObject("NsAPI.NsConnection") Set sysutils = CreateObject("NsAPI.NsScriptUtils") if connection.ConnectToLocalServer then set server = CreateObject("NsAPI.NsServer") if server.Load(connection) then ' Demande un nom de sauvegarde à analyser backupName = InputBox("Saisissez le nom d'une sauvegarde sur le serveur : ", "Test de l'API UB", "") if backupName <> "" then ' Rechercher la sauvegarde dans la liste des sauvegardes stockées set allBackups = server.allBackups(connection) i = allBackups.FindByName(backupName) if i > -1 then ' Obtenir la liste de tous les accès à la sauvegarde set allEntries = allBackups(i).DataAccessLogEntries(connection) ' Parcours toutes les entrées extractedFiles = 0 extractedBytes = 0 ' Let's go for each entry in allEntries extractedFiles = sysutils.Int64Add(extractedFiles, entry.NumberOfFiles) extractedBytes = sysutils.Int64Add(extractedBytes, entry.TotalSize) next ' Affiche les informations if allEntries.count = 0 then MsgBox "Aucun élément de la sauvegarde ''" + backupName + "'' n'a jamais été restauré." else MsgBox allEntries.Count & " opération(s) ont accédé aux fichiers de la sauvegarde ''" + backupName + "''. " + vbCrLf + "Au total, " + sysutils.Int64ToStr(extractedFiles) + " fichiers ont été restaurés, représentant un volume de " + sysutils.SizeToStr(extractedBytes) + "." end if else msgbox "La sauvegarde n'existe pas sur le serveur !" end if end if else MsgBox "Impossible de charger les informations serveur." end if connection.Disconnect end if