Sicherheitswarnungen für Access-Datenbanken ausschalten

20. Dezember 15

Die Informationen in diesem Artikel beziehen sich auf Access 2010, sind aber auf alle Versionen ab Access 2007 übertragbar. 

Sicherheitswarnungen beim Öffnen einer Access-Datenbank

Hat man sich mit dem Thema "Sicherheitswarnungen" in Access noch nicht beschäftigt, tritt beim Öffnen einer Access-Datenbank vermutlich einer der folgenden Fälle ein:

A) Beim Öffnen einer ACCDB bekommt man in einer gelben Box die Sicherheitswarnung: "Einige aktive Inhalte wurden deaktiviert. Klicken Sie hier, um weitere Details anzuzeigen." Klickt man auf "Inhalt aktivieren", öffnet sich die Access-Datenbank.

Access Sicherheitswarnung

B) Beim Öffnen einer ACCDB mit einem Makro "Autoexec" öffnet sich darüber hinaus ein Fenster mit dem Makronamen (meist "Autoexec") und dem Button "Alle Makros anhalten". Klickt man auf diesen Button und dann auf den Button "Inhalt aktivieren" in der Sicherheitswarnung, so öffnet sich die Access-Datenbank.

C) Beim Öffnen einer ACCDE bekommt man die Meldung "Es wurde ein potenzielles Sicherheitsrisiko erkannt." Klickt man auf den Button "Öffnen" unterhalb des Infotextes, so öffnet sich die Access-Datenbank.

Access Sicherheitswarnung

In jedem Fall kann man also die Datenbank letztendlich öffnen. 

Um allerdings zu erreichen, dass man die Access-Datenbank zukünftig ohne diese Sicherheitswarnungen öffnen kann, sollte man das Verzeichnis, in dem die Datenbank liegt, als vertrauenswürdigen Speicherort kennzeichnen.

Dazu gibt es mehrere Möglichkeiten.

Gruppenrichtlinien verwenden

Am elegantesten kann das Verzeichnis, in dem eine Access-Datenbank gespeichert ist, über Gruppen­richt­linien zum sicheren Speicherort erklärt werden. Hierzu muss allerdings der entsprechende Client-Rechner Mitglied einer Windows Domänen-Struktur sein.

Man benötigt zuallererst die sogenannten ADM-Dateien, mit deren Hilfe die Gruppen­richt­linien­struktur um Einträge für das Office-Paket ergänzt wird. Zu diesem Zweck lädt man sich die Datei Office2010ADM-x86-de.zip zum Beispiel » hier herunter. Sollte man die 64 bit-Version von Access benutzen, so verwendet man die entsprechende x64-Datei.

Eine Auswahl der sich in dem herunter­geladenen Archiv befindenden ADM-Dateien kopiert man auf seinem Domänen-Controller in das Verzeichnis %SystemRoot%\inf. Je nachdem, für welches Programm Einstellungen vorgenommen werden sollen, wählt man die entsprechende ADM-Datei oder eben die Datei office14.adm für allgemeine Einstellungen. In dem hier beleuchteten Zusammen­hang ist lediglich die Datei access14.adm von Belang.

Nachdem man die gewünschten Dateien in das inf-Verzeichnis kopiert hat, öffnet man den Gruppenrichtlinien-Editor. Um vertrauens­würdige Speicherorte zu definieren, wechselt man in den Bereich Benutzerkonfiguration / Richtlinien / Administrative Vorlagen / Klassische administrative Vorlage (ADM) / Microsoft 2010 / Anwendungs­einstellungen / Sicherheit / Sicherheits­center / Vertrauenswürdige Speicherorte. Man aktiviert hier, falls die Datenbank im Netzwerk gespeichert wird, zunächst die Einstellung Vertrauens­würdige Speicherorte im Netzwerk zulassen und trägt dann den gewünschten Speicherort in der Abteilung Vertrauens­würdiger Speicherort Nr. 1 ein. Im unten stehenden Screenshot sind diese Einstellungen rot umrandet.

Access Sicherheitswarnungen Trusted Locations

Zum generellen Vorgehen ist noch anzumerken, dass man die Office-Einstellungen in seinen allgemeinen Einstellungen vornehmen kann oder ein spezielles Office 2010-Gruppen­richt­linien-Objekt verwendet. Letzteres Vorgehen hat den Vorteil, dass man beim Übergang zu einer anderen Office-Version lediglich das Gruppen­richtlinien­objekt austauscht und nicht erst mühsam in seinen allgemeinen Einstellungen die nicht mehr benötigten Office-Einstellungen herauslöschen muss.

Access Sicherheitscenter

Verfügt man über eine Access-Lizenz, so kann man die vertrauenswürdigen Speicherorte für den aktuellen Benutzer und den aktuellen Rechner folgendermaßen setzen:

  • Menü "Datei", ganz unten "Optionen"
  • links "Sicherheitscenter"
  • rechts Button "Einstellungen für das Sicherheitscenter"
  • links "Vertrauenswürdige Speicherorte"

Befindet sich die ACCDB im Netzwerk, muss nun zunächst unten die Option "Vertrauenswürdige Speicherorte im Netzwerk zulassen" aktiviert werden.

Nun unten den Button "Neuen Speicherort hinzufügen" klicken. Es öffnet sich ein Dialog zum Eintragen eines vertrauenswürdigen Speicherorts:

Access Sicherheitscenter

Den Speicherort gibt man am besten als UNC-Pfad an, also in der Form \\<Server>\Verzeichnis.

Will man nicht für jede Access-Datenbank einen eigenen Speicherort angeben, so kann man auch ein höher gelegenes Verzeichnis eintragen und die Option "Unterordner dieses Speicherorts sind ebenfalls vertrauenswürdig" ankreuzen. 

Vertrauenswürdigen Speicherort in der Registry eintragen

Verfügt man nicht über Access, kann man auch mit dem Editor regedit die Registry anpassen. Für Access 2010 findet man den entsprechenden Key unterhalb von HKEY_CURRENT_USER\Software\Microsoft\Office\14.0\Access\Security\Trusted Locations. Hier wird ein neuer Schlüssel MyLocation angelegt. Der Name ist dabei frei wählbar.

In diesem Schlüssel wird eine Zeichenfolge mit dem Namen Path angelegt und das Verzeichnis, welches die Access-Datenbank enthält, als Wert eingetragen. Sollen auch die Unterverzeichnisse vertrauenswürdig sein, ergänzt man einen DWORD-Wert AllowSubfolders mit dem Wert 1. Handelt es sich um Netzwerkverzeichnisse, setzt man direkt in Trusted Locations den Schlüssel AllowNetworkLocations auf 1.

Möchte man nicht direkt die Registry editieren bzw. möchte man als Datenbank-Entwickler seinen Kunden diese Aktion erleichtern, so kann man auch etwa folgendes Skript verwenden:

Ein kleiner Nachteil bei diesem Skript ist, dass man möglicherweise eine bereits bestehende Location überschreibt.

Windows Registry Editor Version 5.00

[HKEY_CURRENT_USER\Software\Microsoft\Office\14.0\Access\Security\Trusted Locations]
"AllowNetworkLocations"=dword:00000001

[HKEY_CURRENT_USER\Software\Microsoft\Office\14.0\Access\Security\Trusted Locations\MyLocation]
"Description"="Meine Datenbank"
"Path"="\\\\SERVERNAME\\VERZ1\\VERZ2"
"AllowSubfolders"=dword:00000001

Dieses Script wird dann in einer Datei mit der Extension .reg gespeichert und per Doppelklick ausgeführt.

ACCDE: Funktion zum Eintrag des Speicherorts in die Registry

Liefert man eine Access-Anwendung als ACCDE aus, so kann man seinen Benutzern eine Funktion zum Eintragen der vertrauenswürdigen Speicherorte in die Registry zur Verfügung stellen.

Dazu verwendet man die Methoden RegRead und RegWrite des Windows Script Hosts. Nähere Informationen zu diesen Methoden findet man im » Microsoft Developer Network.

Public Function TrustedLocationSet() As Boolean

Dim DBLoc As String
Dim KeyStart As String
Dim fTrusted As Boolean

  DBLoc = ..UNC-Pfad des Verzeichnisses der aktuellen Datenbank..
  
  KeyStart = "HKEY_CURRENT_USER\Software\Microsoft\Office\14.0\Access\Security\Trusted Locations"
  If WSRegExists(KeyStart & "\MyLocation\Path") Then
    If WSRegRead(KeyStart & "\MyLocation\Path") = DBLoc Then
      fTrusted = True
    End If
  End If
  
  If Not fTrusted Then
    WSRegWrite KeyStart & "\AllowNetworkLocations", 1, "REG_DWORD"
    WSRegWrite KeyStart & "\MyLocation\Path", DBLoc, "REG_SZ"
  End If

  Exit Function
  
End Function


Function WSRegExists(RegKey As String) As Boolean
Dim WS As Object
  Set WS = CreateObject("WScript.Shell")
  On Error Resume Next
  WS.RegRead RegKey
  WSRegExists = (Err = 0)
  Err.Clear
  Set WS = Nothing
  Exit Function
End Function

Function WSRegRead(RegKey As String) As String
Dim WS As Object 
  On Error Resume Next
  Set WS = CreateObject("WScript.Shell")
  WSRegRead = WS.RegRead(RegKey)
  Set WS = Nothing
End Function

Sub WSRegWrite(RegKey As String, Value As String, Optional KType As String)
Dim WS As Object
  Set WS = CreateObject("WScript.Shell")
  WS.RegWrite RegKey, Value, KType
  Set WS = Nothing
End Sub

Sicherheitswarnung trotz vertrauenswürdigem Speicherort

Manchmal bekommt man beim Öffnen eine Sicherheitswarnung, obwohl man das Verzeichnis als vertrauenswürdigen Speicherort eingetragen hat, nämlich dann, wenn man die ACCDB von einem anderen Ort in das Verzeichnis kopiert. Hier handelt es sich möglicherweise um einen Fehler im Sicherheitssystem. Die Warnung erscheint aber nur beim ersten Öffnen, insofern kann man damit leben.

Weitere Informationen zum Thema

Detaillierte Informationen zu den Sicherheitseinstellungen in Access 2010 findet man auf den Seiten des Microsoft Supports zum Thema » Sicherheit von Access 2010.

Kommentare (1)

  • Thomas Unterstenhöfer
    am 12.05.2022
    Hallo.
    Sehr guter Artikel. Ähnliches gilt auch für Access 365.
    Leider hat Microsoft es versäumt für eine Lösung zu sorgen, wenn man kleinere Projekte entwickelt, die i.d.R. zur Nutzung in Verbindung mit Runtime-Version angeboten werden.
    Man könnte noch ergänzen, dass die Sicherheitswarnungen auch entfallen, wenn man den Code in der Datenbank digital signiert.
    Vielen Dank für einen interessanten Artikel.
    • Jörg Kannengießer
      am 10.10.2022
      Hi,
      wir haben das Problem, dass mit der 2019 / 365 Runtime auch eine Warnmeldung kommt, diese aber (im Gegenteil zu Versionen bis 2016) nicht bestätigt werden können : es geht nur "Abbruch" und das entsprechende Makro wird nicht ausgeführt. Gibt es dafür einen Patch und/oder Workaround ?!

Neue Antwort auf Kommentar schreiben