 |
Datenbank mit Bordmitteln wirksam schützen
Sie haben für Ihre Datenbank einen Passwortschutz eingerichtet. Doch schon ein Notepad reicht aus, um den Inhalt der MDB-Datei anzuzeigen.
Verschlüsseln Sie die Datenbank-Datei. Dazu öffnen Sie »Extras | Sicherheit | Datenbank ver-/entschlüsseln«. Im Dialog »Datenbank codieren als« definieren Sie Namen und Speicherort für die gesicherte Datei. Wenn Sie hier die ursprüngliche Datenbank-Datei wählen, erscheint ein Warnhinweis, den Sie mit »Ja« bestätigen. Wenn Sie eine andere Datei angeben, bleibt das unverschlüsselte Original erhalten.
Eine verschlüsselte Datenbank können Sie mit Access wie gewohnt bearbeiten. Da die Daten jedoch bei jedem Lese- und Schreibvorgang ent- und verschlüsselt werden, dauert je nach Leistungsfähigkeit Ihres Rechners und der Größe der Datenbank alles etwas länger. Ein Trick verschafft Linderung: Mit Hilfe von VBA können Sie die Datei beim Öffnen automatisch entschlüsseln und beim Schließen wieder verschlüsseln. Dann dauert nur das Starten und Beenden länger.
Machen Sie zuerst eine Sicherheitskopie Ihrer Quell-Datenbank. Erzeugen Sie die neue Datei AUFRUF.MDB. Darin erstellen Sie ein Formular und wählen es unter »Extras | Start | Formular/Seite anzeigen« aus. Klicken Sie mit der rechten Maustaste in das Formular, wählen Sie »Ereignis...«, »Codegenerator« und »OK«. Der VBA-Editor startet – geben Sie den folgenden Code ein, oder kopieren Sie ihn von der Heft-CD oder -DVD (CHIP-Code Praxis11). Sie müssen lediglich die Pfadangaben für »strDBVerschluesselt« und »strDBEntschluesselt« an Ihre Datenbank anpassen: Option Compare Database
Dim appAccess As Access.Application
Dim strPasswort As String
Const strDBVerschluesselt = C:\Daten\Geheimnisse.mdb
Const strDBEntschluesselt =
C:\Daten\GeheimnisseOpen.mdb
Private Sub Form_Close()
On Error GoTo Err_Form_Encrypt
appAccess.CloseCurrentDatabase
appAccess.Quit
Err_Form_Encrypt:
On Error GoTo Err_Form_Close
If strPasswort < > Then
If Dir (strDBVerschluesselt) < > Then Kill strDBVerschluesselt
DBEngine.CompactDatabase strDBEntschluesselt, strDBVerschluesselt, ;pwd= & strPasswort, dbEncrypt
Kill strDBEntschluesselt
End If
Exit_Form_Close:
Set appAccess = Nothing
Exit Sub
Err_Form_Close:
MsgBox Err.Description
Resume Exit_Form_Close
End Sub
Private Sub Form_Open(Cancel As Integer)
On Error GoTo Err_Form_Open
strPasswort =
InputBox(Passwort)
If strPasswort < > Then
Set appAccess = New Access.Application
If Dir(strDBEntschluesselt) < > Then Kill strDBEntschluesselt
DBEngine.CompactDatabase strDBVerschluesselt, strDBEntschluesselt, ;pwd=, dbDecrypt, ;pwd= & strPasswort
Kill strDBVerschluesselt
appAccess.OpenCurrentDatabase strDBEntschluesselt, False
appAccess.Visible = True
Else
MsgBox Sie haben kein Passwort angegeben!
End If
Exit_Form_Open:
Exit Sub
Err_Form_Open:
strPasswort =
MsgBox Err.Description
Resume Exit_Form_Open
End Sub Schließen Sie danach den Editor und speichern Sie AUFRUF.MBD. Beim nächsten Start dieser Datei läuft automatisch die Ereignisprozedur »Beim Öffnen« und mit Ihr das Skript ab. Es entschlüsselt die Quell-Datenbank, fragt das Datenbank-Kennwort ab und schreibt es in die globale Variable »strPasswort«. Zur Entschlüsselung nutzt diese Prozedur den Befehl »DBEngine.CompactDatabase strDBVerschluesselt, strDBEntschluesselt, ;pwd=, dbDecrypt, ;pwd= & strPasswort«. Zuletzt löscht sie mit »Kill« die verschlüsselte Quell-Datei und öffnet die entschlüsselte Datenbank mit »appAccess.Open CurrentDatabase strDBEntschluesselt, False«. »appAccess« ist dabei ein Objekt von Typ »Access.Application«, das zuvor mit »Set appAccess = New Access.Application« erzeugt wird.
Die Ereignisprozedur »Beim Schließen« verschlüsselt die Datenbank automatisch mit dem Befehl »DBEngine. CompactDatabase strDBEntschluesselt, strDBVerschluesselt, ;pwd= & strPasswort, dbEncrypt« und löscht in diesem Fall die entschlüsselte Quell-Datei, damit sie kein Sicherheitsrisiko darstellt.
|
 |