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