class NsDataAccessLogEntry

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.

ID : __int64 readonly

L'identificateur unique de l'opération.

Timestamp : VARIANT readonly

La date d'exécution de l'opération, au format UTC.

OperationType : enum NsDataAccessLogOperationType readonly

Le type de l'opération ayant entrainé l'accès aux données.

RequestorID : __int64 readonly

L'identificateur unique de l'utilisateur (NsUser) ayant demandé l'accès aux données.

RequestorIP : BSTR readonly

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.

RequestorName : BSTR readonly

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.

BackupID : __int64 readonly

L'identificateur unique de la sauvegarde (NsBackup) contenant les données accédées par l'opération.

BackupName : BSTR readonly

Le nom de la sauvegarde telle qu'il est connu par le logiciel au moment de l'opération.

OwnerID : __int64 readonly

L'identificateur unique de l'utilisateur (NsUser) propriétaire des données accédées.

OwnerName : BSTR readonly

Le nom de l'utilisateur propriétaire des données tel qu'il était connu par le logiciel au moment de l'opération.

RestorePackageID : __int64 readonly

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).

OperationSummaryID : __int64 readonly

L'identificateur de résumé de l'opération transactionnelle (NsOperationSummary) (ou -1 si cela ne s'applique pas à l'opération)

NumberOfFiles : __int64 readonly

Le nombre total de fichiers accédés durant l'opération.

TotalSize : __int64 readonly

Le volume total de données accédés durant l'opération.

AccessMsg : BSTR readonly

Le message saisi par l'administrateur lors de l'accès aux données, le cas échéant.

Affichage des statistiques d'extraction de données pour une sauvegarde particulière

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