Zur Hauptseite ... Zum Onlinearchiv ... Zum Abonnement ... Zum Newsletter ... Zu den Tools ... Zum Impressum ... Zum Login ...

Achtung: Dies ist nicht der vollständige Artikel, sondern nur ein paar Seiten davon. Wenn Sie hier nicht erfahren, was Sie wissen möchten, finden Sie am Ende Informationen darüber, wie Sie den ganzen Artikel lesen können.

Kompletten Artikel lesen?

Einfach für den Newsletter anmelden, dann lesen Sie schon in einer Minute den kompletten Artikel und erhalten die Beispieldatenbanken.

E-Mail:

Gedrucktes Heft

Diesen Beitrag finden Sie in Ausgabe 6/2005.

Unser Angebot für Sie!

Lesen Sie diesen Beitrag und 500 andere sofort im Onlinearchiv, und erhalten Sie alle zwei Monate brandheißes Access-Know-how auf 72 gedruckten Seiten! Plus attraktive Präsente, zum Beispiel das bald erscheinende Buch 'Access 2010 - Das Grundlagenbuch für Entwickler'!

Diesen Beitrag twittern

Zusammenfassung

Erfahren Sie, wie Sie Ihre Access-Anwendungen mit Makro-Sicherheit, digitalen Signaturen und dem Sandbox-Modus effektiv schützen.

Techniken

VBA, SQL

Voraussetzungen

Access 2003

Beispieldateien

-

Sicherheitsfeatures in Access 2003

Tom Jordan, Düsseldorf

Heutzutage erfährt man häufig in den Nachrichten von Computer-Viren, -Würmern und ähnlichem Getier, das sich per Internet, E-Mail oder auch Office-Anwendungen schlagartig verbreitet. Wenn es Sie erwischt, sind entweder Daten verloren oder der Rechner wird komplett außer Kraft gesetzt. Und ob Sie zu Hause als Freiberufler oder in einem großen Konzern-Netzwerk arbeiten, diese Angriffe führen zu verlorener Zeit und möglicherweise zu verlorenem Umsatz. Gegen solche Attacken hat sich Microsoft im aktuellen Office-Paket, vor allem in Access, einige Maßnahmen einfallen lassen. Welche das sind, erfahren Sie im vorliegenden Beitrag.

Durch den Einsatz einer zuverlässigen Antivirus-Software sowie ein wenig Vorsicht beim Öffnen fremder Office-Dokumente können Sie sich vor bösen Überraschungen schützen.

Vor allem beim Öffnen und Ausführen von Datenbankdateien hat Microsoft einige wichtige Features in Access 2003 integriert, um den Schutzgrad deutlich zu erhöhen. Die Hauptmerkmale dabei sind Makrosicherheit, digitale Signaturen und der neue Sandbox-Modus der Jet-Bibliothek.

Makrosicherheit

Office-Dateien wie Word-Dokumente, Excel-Arbeitsmappen oder auch Access-Datenbanken können eingebettete Makros beziehungsweise Programmcode enthalten, die zu einem bösen Zweck ausgeführt werden. Daher hat Microsoft eine neue universelle Makrosicherheit eingeführt, die alle Anwendungen im Office-Paket umfasst. Mit dem Begriff Makro sind hier Prozeduren und Routinen gemeint, die in VBA-Modulen (Visual Basic für Applikationen) entwickelt sind. VBA ist die Programmiersprache, in der solche Prozeduren geschrieben werden. Die klassischen Access-Makros dagegen, wie Autoexec, Menü-Makros und so weiter, sind für dieses Thema nicht von Bedeutung.

Die Makrosicherheit für Microsoft Access 2003 greift immer dann, wenn Sie eine beliebige Datenbankdatei öffnen. Selbst bei einer leeren Datenbank werden Sie mit der Sicherheitswarnung aus Abb. 1 begrüßt, bevor das übliche Datenbankfenster sichtbar wird. Bei dieser Gelegenheit können Sie sich mit der Schaltfläche Weitere Informationen näher über das Thema Access-Sicherheit informieren.

Um dieses Verhalten beim Öffnen von Datenbankdateien zu steuern, bietet Access drei Sicherheitsstufen an:

Abb. 1: Die Makrosicherheit stellt sich vor

  • Hoch - Die Datei muss eine digitale Signatur enthalten, bevor sie geöffnet werden kann. Was eine Signatur ist und wie Sie sie erstellen können, erfahren Sie später in diesem Beitrag.
  • Abb. 2: Die Makrosicherheitsstufe einstellen

  • Mittel - Dies ist die Standardeinstellung. Beim Öffnen einer Datei wird die Sicherheitswarnung aus Abb. 1 angezeigt. Es wird darauf hingewiesen, dass die Datei möglicherweise nicht sicher ist. Sie haben dann noch die Möglichkeit, den Vorgang abzubrechen. Bei dieser Einstellung spielt es keine Rolle, ob die Datei eine digitale Signatur enthält.
  • Niedrig - Dateien werden ohne Sicherheitsprüfung beziehungsweise -warnung geöffnet. Dies entspricht dem Verhalten von früheren Access-Versionen. Von dieser Einstellung wird dringend abgeraten. Eine temporäre Einstellung auf "Niedrig" ist dann sinnvoll, wenn eine Datenbank aus einer früheren Access-Version auf Access 2003 konvertiert werden soll.
  • Makrosicherheitsstufe einstellen

    Die Sicherheitsstufe können Sie mit dem Menübefehl Extras/Makro/Sicherheit... konfigurieren (s. Abb. 2).

    Wenn Sie also auf jeden Sicherheitshinweis beim Öffnen von Datenbanken verzichten möchten, stellen Sie die Sicherheitsstufe auf "Niedrig" ein (s. Abb. 3).

    Abb. 3: Die drei Sicherheitsstufen

    Wenn der Sandbox-Modus der Jet-Bibliothek aktiviert ist, erhalten Sie daraufhin einen weiteren Hinweis, dass unsichere Ausdrücke momentan blockiert werden.

    Dazu gibt Access Ihnen Gelegenheit, auch diese unsicheren Ausdrücke zuzulassen. Zu solchen Ausdrücken gehören beispielsweise alle VBA-Anweisungen, die auf das Dateisystem zugreifen. Wenn Sie diesen Hinweis mit Ja beantworten, wird die Sandbox-Einstellung von 3 auf 2 herabgesetzt. Diese Einstellung können Sie übrigens in der Registry unter HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Jet\4.0\Engines\SandBoxMode nachsehen. Mehr zum Thema Sandbox-Modus erfahren Sie später in diesem Beitrag.

    Makrosicherheit in
    COM-Add-Ins

    Zu den üblichen Vorgängen eines Access-Assistenten (also eines COM Add-Ins) gehört das Öffnen einer Datenbank. Damit der Programmablauf aufgrund der Makrosicherheit an dieser Stelle nicht zum Stillstand kommt, kann der Entwickler des Assistenten die Sicherheitsstufe vorübergehend auf Niedrig herabsetzen. Die ursprüngliche Einstellung sollte vorher ermittelt und nach dem Öffnen-Vorgang wieder hergestellt werden. Der Code-Ausschnitt aus Quellcode 1 zeigt, wie das programmatische Öffnen einer Datenbank innerhalb eines Add-Ins aussehen könnte.

    Quellcode 1: Öffnen einer Datenbank innerhalb eines Add-Ins

    Dim lCurrentSecurity As Long

    lCurrentSecurity = _
        Application.AutomationSecurity

    Application.AutomationSecurity = _
        msoAutomationSecurityForceDisable

    Application.OpenCurrentDatabase _
        "E:\Nordwind.mdb"

    Application.AutomationSecurity = _
        lCurrentSecurity

    Die drei Konstantenwerte der Eigenschaft AutomationSecurity des Objekts Application sind Tab. 1 zu entnehmen.

    Konstante

    Wert

    msoAutomationSecurityLow

    1

    msoAutomationSecurityByUI

    2

    msoAutomationSecurityForceDisable

    3

    Tab. 1: Konstanten der AutomationSecurity-Eigenschaft

    Die Konstante msoAutomationSecurityLow entspricht der Stufe "Niedrig". msoAutomationSecurityByUI verwendet einfach die Einstellung so, wie sie momentan im Dialog Sicherheit steht (s. Abb. 3). msoAutomationSecurityForceDisable schaltet die Sicherheitsprüfung komplett aus und sollte nur sparsam verwendet werden.

    Digitale Signaturen

    Bei der Sicherheitsstufe Hoch (s. Abb. 3) können nur Datenbanken mit einer so genannten digitalen Signatur geöffnet werden. Durch solche Signaturen können Sie verifizieren, dass eine Datenbank von einem vertrauenswürdigen Herausgeber stammt und dass dieser Herausgeber die VBA-Prozeduren selbst geschrieben hat. Wenn ein Fremder die Datenbank nachträglich modifizieren sollte, indem er etwa eine VBA-Prozedur manipuliert, wird die Signatur ungültig und von der Datenbank entfernt. So können Sie auch sicher sein, dass die Datenbank seit der Erstellung nicht mehr modifiziert wurde.

    Für den kommerziellen Betrieb werden digitale Signaturen mithilfe einer Zertifikat-Autorität erstellt. Eine Zertifikat-Autorität ist ein Unternehmen, welches auf die Erteilung von Zertifikaten spezialisiert ist.

    Ein sehr bekanntes Unternehmen in diesem Bereich ist Verisign Inc. (http://www.verisign.com). Nach Erhalten des Zertifikats kann die digitale Signatur erstellt werden.

    Wer diesen aufwändigen Weg nicht gehen möchte oder kann, dem steht die Möglichkeit zur Verfügung, digitale Zertifikate selbst zu erstellen. Beispielsweise kann ein kleines Unternehmen oder eine Arbeitsgruppe Zertifikate für die internen Access-Datenbanken erteilen. Diese Arbeitsgruppe würden Sie dann der Liste der vertrauenswürdigen Herausgeber hinzufügen, damit sie für alle weiteren Datenbanken gilt.

    Ein spezielles Programm zum Erstellen von selbst signierten digitalen Zertifikaten finden Sie im Office 2003-Paket. Sie starten das Programm über das Startmenü Microsoft Office Tools/Digitale Signatur für VBA-Projekte. Das Programm muss eventuell vor dem ersten Start von Ihrer Office-Installations-CD nachinstalliert werden.

    Nach dem Programmstart werden Sie nach dem Namen gefragt, auf den das Zertifikat erstellt werden soll (s. Abb. 4). Zusätzlich stehen in diesem Dialog allgemeine Informationen zu digitalen Zertifikaten sowie ein Link auf eine Liste bekannter Zertifikat-Autoritäten (u. a. Verisign).

    Nach dem Drücken auf OK wird eine Bestätigung angezeigt, dass das Zertifikat erfolgreich auf den Namen erfolgreich erstellt wurde.

    Abb. 4: Erstellung eines digitalen Zertifikats

    Abb. 5: Eine digitale Signatur wird in die Datenbank integriert

    Abb. 6: Digitales Zertifikat auswählen

    Ist das Zertifikat einmal erstellt, können Sie es direkt einsetzen, um eine Datenbank digital zu signieren. Dazu öffnen Sie zunächst einmal die Datenbankdatei und starten den VBA-Editor mit dem Menübefehl Extras/Makro/Visual Basic-Editor beziehungsweise mit der Taste ALT+11. Im VBA-Editor rufen Sie den Menübefehl Extras/Digitale Signatur... auf. Sie sehen dann den Dialog aus Abb. 5.

    Abb. 7: Informationen zum Zertifikat

    Mit der Schaltfläche Wählen... können Sie ein vorhandenes Zertifikat auswählen und es in das VBA-Projekt (also in die Datenbank) integrieren.

    Bevor Sie sich auf ein Zertifikat festlegen, können Sie sich mit der Schaltfläche Zertifikat anzeigen über das markierte Zertifikat noch detaillierter informieren (s. Abb. 6).

    Zu den dort verfügbaren Details (s. Abb. 7) gehören die Seriennummer, der verwendete Signaturalgorithmus, das Gültigkeitsdatum und so weiter. Nach der Auswahl eines passenden Zertifikats wird die Datenbank entsprechend signiert.

    Beim nächsten Öffnen dieser zertifizierten Datei erkennt Access die Signatur und zeigt eine entsprechende Sicherheitswarnung wie in Abb. 8 an.

    Zur Erinnerung: Dieser neue Hinweis wird nur dann angezeigt, wenn die Makrosicherheit auf Hoch beziehungsweise Mittel eingestuft ist. Bei Niedrig wird die Datenbank ohnehin ohne Warnung geöffnet.

    Bei dieser Sicherheitswarnung können Sie auch weitere Informationen zur Signatur anzeigen lassen. Im Prinzip handelt es sich hier um die gleichen Zertifikatsdaten, die Sie beim Erstellen des Zertifikats kennen gelernt haben (s. Abb. 7).

    Abb. 8: Sicherheitswarnung bei signierten Datenbanken

    Abb. 9: Liste der vertrauenswürdigen Herausgeber

    Zusätzlich haben Sie an dieser Stelle die Möglichkeit, das Zertifikat auf dem aktuellen Rechner zu installieren. Sie machen von dieser Funktion Gebrauch, wenn die Datenbank auf dem Rechner eines Kollegen beziehungsweise anderer Benutzer installiert werden soll.

    Dazu klicken Sie auf die Schaltfläche Zertifikat installieren..., um einen Assistenten zu starten, der diese Aufgabe für Sie erledigt.

    Wenn Sie nun allen Datenbanken des Herausgebers (in diesem Beispiel "Tom Jordan") vertrauen möchten, aktivieren Sie das untere Kontrollkästchen in der Sicherheitswarnung. In Zukunft werden alle Dateien vom vertrauten Herausgeber automatisch und ohne Warnung geöffnet.

    Eine Liste der aktuell vertrauenswürdigen Herausgeber finden Sie übrigens im Einstellungsdialog der Sicherheitsstufe für Makros (Menü Extras (
    Makro/Sicherheit...).

    Dort können Sie weitere Information zum Herausgeber einsehen sowie einen verdächtigten Herausgeber wieder aus der Liste entfernen (s. Abb. 9).

    Sandbox-Modus

    Eine zusätzliche Sicherheitsmaßnahme von Access stellt der Sandbox-Modus dar, der von der Jet-Bibliothek zur Verfügung gestellt wird.

    Wenn Access in diesem Modus läuft, werden alle Ausdrücke, die potenziell gefährliche VBA-Funktionen enthalten, außer Kraft gesetzt.

    Wie in einem vorherigen Abschnitt erwähnt, gehören alle VBA-Funktionen zu dieser Gruppe, die auf das Dateisystem beziehungsweise auf die Windows-Umgebung zugreifen.

    Beispielsweise gibt es in diesem Modus keine Möglichkeit, die folgende Abfrage zum Ermitteln der momentan angemeldeten Windows-User auszuführen:

    SELECT Environ('USERNAME') 

    AS WinUser

    Im Sandbox-Modus erscheint bei dieser Abfrage eine Fehlermeldung, dass die Funktion Environ() nicht definiert sei.

    Wichtig ist hierbei zu beachten, dass diese VBA-Funktionen innerhalb von Modulen im Sandbox-Modus durchaus verwendet werden können
    (s. Abb. 10).

    Abb. 10: Die Environ-Funktion läuft auch im Sandbox-Modus einwandfrei.

    Abb. 11: Sandbox-Modus ausschalten?

    Abb. 12: Ihre installierte Jet-Version feststellen

    Sie haben das Ende des frei verfügbaren Teils des Artikels erreicht. Lesen Sie weiter, um zu erfahren, wie Sie den vollständigen Artikel lesen und auf viele hundert weitere Artikel zugreifen können.

    Sind Sie Abonnent?Jetzt einloggen ...
     

    Kompletten Artikel lesen?

    Einfach für den Newsletter anmelden, dann lesen Sie schon in einer Minute den kompletten Artikel und erhalten die Beispieldatenbanken.

    E-Mail:

    Verwandte Beiträge:

    Benutzerverwaltung

    © 2003-2015 André Minhorst Alle Rechte vorbehalten.