Suggerimenti su come proteggere il tuo database

 

In questo articolo affrontiamo il tema della sicurezza dei database, in particolare su come impedire che il nostro database venga usato per scopi contro il nostro consenso: ci tengo a precisare che questo articolo e' stato scritto dopo aver fatto ricerche in internet ed in particolare grazie ad un documento di Word realizzato da Daniele Bertocci.

Dunque per chi ha fatto dell'utilizzo di Access quasi un lavoro, ossia sviluppa applicazioni e software che poi vende, o semplicemente li usa per gestire dati importanti, e' utile sapere alcuni accorgimenti che permettono di rendere protetto e sicuro il suo database.

Un primo esempio e' quello gia' trattato in questo articolo che consiste nel creare una copia del database in formato mde il quale disabilita le modifiche agli oggetti (tabelle, maschere, report...).

 

Questa e' gia' una buona abitudine ma non ancora sufficiente: infatti all'apertura del database e' possibile by passare la maschera principale (od il pannello comandi) tenendo premuto il tasto Shift mentre si fa' doppio clic per aprire l'applicazione.
A questo si puo' rimediare inserendo un pulsante trasparente nascosto nella nostra maschera/pannello comandi di apertura che chimiamo &- (che possiamo richiamare con "ALT" + "-") e scrivendo sull'evento Su clic questo codice:

Dim stLinkCriteria As String
Dim strinput as String
Dim strMsg as String
Dim domanda as String
Dim messaggio as String
Dim intopzioni as Integer

  strinput = InputBox("Inserire una password valida.")
   
strMsg = "Password corretta"
    
' Prova il valore di input utente.
       
If strinput = "
password" Then
           
On Error Resume Next
   
        domanda = InputBox("Chiudere il database?")
           
Const DB_Boolean As Long = 1
           
If
domanda = "Apri" Then 
                       
ChangeProperty "AllowBypassKey", DB_Boolean, True
           
Else
 
                        ChangeProperty "AllowBypassKey", DB_Boolean, False
           
End If
           
Else

 intopzioni = vbCritical
messaggio = "La password immessa è ERRATA."
byscelta = MsgBox(messaggio, intopzioni)

DoCmd.Quit
        
End If

In questo modo abbiamo di fatto creato un sistema che chiede di inserire una password all'avvio dell'applicazione, password che e' possibile impostare nel codice modificando la scritta in rosso.
Inoltre scrivendo "apri" sara' possibile abilitare il tasto Shift. Al contrario scrivendo qualsiasi altra parola lo disabilitera'.

 

Un ultimo stratagemma infine puo' essere quello di impostare una sorta di licenza per l'applicazione al termine della quale il vostro cliente/utente deve contattarvi per poterla rinnovare e tornare così a lavorare con Access.

Per fare questo sfruttiamo la funzione DateDiff() che restituisce la differenza (in giorni, mesi o anni a seconda delle necessita') tra due date che gli vengono passate come parametri.
Sull'eventi Su caricamento della nostra maschera pricipale scriviamo questo codice:

Dim MyNumber As Integer
MyNumber = DateDiff("d", Date, #2/28/2017#)

If MyNumber < 0 Then
MsgBox ("Licenza scaduta. Contattare l'amministratore")
Quit
End If

End Sub

In questo caso DateDiff() mi restituisce la differenza in giorni, cioe' un numero intero, tra la data di oggi (Date restituisce la data odierna) e la data di scadenza (che io ho fissato ad esempio al 28 febbraio. Occhio alla formattazione della data!).
Se questo intero e' negativo significa che ho superato la data di scadenza e vengo avvisato da un messaggio. Cliccando su OK si chiude Access e da quel momento in poi non e' piu' possibile usarlo a meno di modificare il codice sopra.

Bene...se hai seguito questi 3 semplici consigli il tuo database e' diventato praticamente inviolabile!
 

A presto.

 

 

 

Ultimi Articoli

01.05.2017
Proteggere Access
11.03.2017
Perche' imparare il VBScript
22.08.2016
Rubrica con VBScript - Parte 2
28.07.2016
Rubbrica con VBScript - Parte 1
15.12.2015
Raccolta dati da sito web