Neuigkeiten:

Wenn ihr euch für eine gute Antwort bedanken möchtet, im entsprechenden Posting einfach den Knopf "sag Danke" drücken!

Mobiles Hauptmenü

Datenschutzoptionen verhindern Sicherheit

Begonnen von PawelPopolski, Juni 07, 2026, 16:24:57

⏪ vorheriges - nächstes ⏩

PawelPopolski

Hallo zusammen,

ich bin total irritiert. Bisher habe ich meine FE Datenbank immer so abgesichert, dass ich Navigation etc. ausgeschaltet habe, dann als ACCDE gespeichert und als letzten Schritt in den Dateioptionen die Einstellung "Vollständige Menüs zulassen" abgewählt habe.

User sind beim Start sofort im login-Form gelandet und das ganze Access Drumherum war weg und das war auch gut so.

Heute musste ich schockiert feststellen, dass alle meine FE's plötzlich im Backstage den Eintrag Datenschutzoptionen aufweisen. Hiermit kann ich jetzt problemlos wieder alles einschalten, was ausgeschaltet war. An den Code kommt zwar niemand, aber bei eingeschaltetem Navigationsbereich kann jeder User, unabhängig von seiner Berechtigung in Tabellen und Abfragen klicken, Aktionsabfragen ausführen, jedes Formular öffnen etc.

Frage: Habe ich da eine Einstellung übersehen, mit der ich meinen gewollten "Datenbank ist dicht" Zustand wieder herstellen kann?
Bin ich blind oder ist MS jetzt dem trumpischen Schwachsinn anheim gefallen?

Grüße
PawelPopolski

Debus

Hallo Pawel,

dazu habe ich mal die KI bemüht und folgende Antwort erhalten:

Ja, du bist nicht blind – Microsoft hat da tatsächlich was geändert und viele Access-Entwickler sind 2023/2024 drüber gestolpert.

Das ist die "Modern Backstage" bzw. die neuen "Datenschutzoptionen". Seit einem Office-Update ca. Mitte 2023 wird in ACCDE/MDE-Dateien der Backstage-Bereich nicht mehr komplett unterdrückt, wenn du "Vollständige Menüs zulassen" deaktivierst. Der Punkt `Datei > Datenschutzoptionen > Aktuelle Datenbank` ist jetzt immer da.

**Kurz: Dein "Datenbank ist dicht"-Setup per Häkchen reicht seitdem nicht mehr.**

### Warum passiert das?

Microsoft hat aus Compliance-Gründen den Backstage-Bereich umgebaut. Die Idee: User sollen ihre Datenschutz-Einstellungen immer erreichen können. Blöder Nebeneffekt: Darüber kommt man auch wieder an `Optionen > Aktuelle Datenbank` und kann Navigationsbereich, Menübänder etc. reaktivieren. Deine ACCDE schützt nur noch den VBA-Code, nicht mehr die Oberfläche.

### So machst du die DB wieder dicht

Du musst jetzt aktiv per Code die Shift-Taste + spezielle Access-Properties sperren. Die Häkchen in den Optionen reichen nicht mehr.

**1. Die 3 kritischen DB-Properties auf False setzen**

Das ist der neue Pflicht-Teil. Einmalig in einer ACCDB ausführen, bevor du die ACCDE erstellst:

```vba
Sub DatenbankAbdichten()
    Dim db As DAO.Database
    Set db = CurrentDb
   
    ' Fehler ignorieren falls Property noch nicht existiert
    On Error Resume Next
   
    ' Shift-Taste beim Start deaktivieren
    db.Properties("AllowBypassKey") = False
    If Err.Number = 3270 Then ' Property existiert nicht
        db.Properties.Append db.CreateProperty("AllowBypassKey", dbBoolean, False)
        Err.Clear
    End If
   
    ' Vollständige Menüs deaktivieren
    db.Properties("AllowFullMenus") = False
    If Err.Number = 3270 Then
        db.Properties.Append db.CreateProperty("AllowFullMenus", dbBoolean, False)
        Err.Clear
    End If
   
    ' Spezielle Access-Tasten deaktivieren - sperrt Backstage-Optionen
    db.Properties("AllowSpecialKeys") = False
    If Err.Number = 3270 Then
        db.Properties.Append db.CreateProperty("AllowSpecialKeys", dbBoolean, False)
        Err.Clear
    End If
   
    On Error GoTo 0
    MsgBox "Datenbank ist jetzt abgedichtet. Als ACCDE speichern!"
End Sub
```

`AllowSpecialKeys = False` ist der wichtigste: Der sperrt F11 für den Navigationsbereich und auch die meisten Backstage-Optionen, inkl. dem Weg zurück zu `Aktuelle Datenbank`.

**2. Runtime-Version nutzen als Alternative**

Wenn du es ganz hart willst: Gib deinen Usern nur die Access Runtime. Da gibt es von Haus aus keinen Backstage, keine Entwurfsansicht, kein F11. Nachteil: Du musst die Runtime auf allen Clients installieren.

**3. Navi-Bereich per Code ausblenden + sperren**

Zusätzlich im AutoExec-Makro oder Startformular:

```vba
DoCmd.NavigateTo "acNavigationCategoryObjectType"
DoCmd.RunCommand acCmdWindowHide
Application.SetOption "Show Hidden Objects", False
```

**4. Notfall-Schlüssel für dich als Entwickler**

Wenn `AllowBypassKey = False` ist, kommst du selbst auch nicht mehr mit Shift rein. Bau dir vorher eine versteckte Hintertür, z.B. eine separate ACCDB die die Properties per Code wieder auf True setzt:

```vba
Sub DatenbankOeffnen()
    Dim db As DAO.Database
    Set db = DBEngine.OpenDatabase("C:\Pfad\DeineFE.accdb")
    db.Properties("AllowBypassKey") = True
    db.Properties("AllowSpecialKeys") = True
    db.Close
End Sub
```

### Zu deiner Trump-Frage 😄

Ne, das ist kein politischer Schwachsinn, sondern DSGVO/GDPR-Paranoia. MS will sicherstellen dass jeder User seine Telemetrie/Diagnosedaten-Einstellungen sehen kann. Dass dabei 20 Jahre Access-Security-Praxis über den Haufen geworfen wird, war denen wohl egal.

**Checkliste für dein neues Vorgehen:**

1. In ACCDB: Alle 3 Properties per VBA auf False
2. Navigation, Menüband etc. wie gehabt in den Optionen ausschalten
3. Dann erst ACCDE erstellen
4. ACCDE testen: F11 darf nicht gehen, Backstage > Optionen sollte gesperrt sein

Damit bist du wieder so "dicht" wie früher. Der reine Haken bei "Vollständige Menüs" ist seit dem Update leider nur noch Deko.



Ich hoffe, dass hilft Dir weiter
Holger

PawelPopolski

Hallo und Danke für deine Mühe.

Vorweg der Hinweis, dass in der DB keine Fort Knox Sicherheit verlangt wird. Dann wäre Access auch tatsächlich eine schlechte Wahl.

Das hatte ich alles schon bei den früheren Versionen umgesetzt, ABER die meisten Einstellungen habe ich einfach durch händisches abschalten in den Optionen umgesetzt.

Ich werde das jetzt an mein Login Form heften.
Wenn es jetzt jemanden in die Datenschutzoptionen verschlägt, kann es dort gerne alles zurückstellen. "Gefährliche" Änderungen am System kann er (Warum gehe ich hier direkt von einem ER aus? :o ) aber nicht vornehmen, weil die meisten Änderungen erst nach Neustart wirksam werden...und beim Login werden sie wieder zurückgesetzt.

Danke, dass du mich auf den richtigen Weg gebracht hast!

Grüße,
PawelPopolski

Knobbi38

#3
Zitat... weil die meisten Änderungen erst nach Neustart wirksam werden...und beim Login werden sie wieder zurückgesetzt.
Dann gibt das beim Login Formular nicht so richtig Sinn. Besser, man schreibt die Optionen zurück, kurz bevor Access beendet wird. Wer zuletzt schreibt hat gewonnen.  :)
Alternativ könnte man vielleicht den Backstagebereich neu definiere und dabei den Eintrag weglassen (ungetestet):
<customUI xmlns="http://schemas.microsoft.com/office/2009/07/customui">
  <!-- StartFromScratch löscht das gesamte Datei-Menü inkl. Datenschutzoptionen -->
  <ribbon startFromScratch="true">
    <tabs>
      <!-- Hier blenden Sie die Standard-Registerkarten (z.B. Start) wieder ein -->
      <tab idMso="TabHomeAccess" visible="true" />
    </tabs>
  </ribbon>
 
  <backstage>
    <!-- Hier definieren Sie, welche wenigen Befehle im Datei-Menü übrig bleiben sollen -->
    <button idMso="FileCloseDatabase" visible="true"/>
    <button idMso="FileExit" visible="true"/>
  </backstage>
</customUI>

Hier gibt es auch noch ein paar Informationen:
https://www.access-programmers.co.uk/forums/threads/securing-your-databases-a-tutorial.304340/

Knobbi38


Debus

Vielleicht macht das ja auch noch spaß

Holger

PawelPopolski

Zitat von: Knobbi38 am Heute um 13:54:52Wer zuletzt schreibt hat gewonnen.  :)
Guter Hinweis, werde ich so machen.

Zitat von: Knobbi38 am Heute um 13:54:52Alternativ könnte man vielleicht den Backstagebereich neu definiere und dabei den Eintrag weglassen (ungetestet):

Das teste ich vielleicht mal später. Bisher gab es überall die Info, dass man zwar das Ribbon, aber nicht den Backstage Bereich beeinflussen kann.

Zitat von: Debus am Heute um 14:51:23Vielleicht macht das ja auch noch spaß
Macht es  :)  :)

Vielen Dank nochmal an euch
PawelPopolski