Fehler 1248 und 2005 bei 4D-Datenbankverschlüsselung (v18.1)

Umgebung: 4D Server 18.1 (Build 18.249751) auf Windows 10 Pro (Version 1903, Betriebssystembuild 18362.778)
Unverschlüsselte Datenbank mit 471 Tabellen, davon 254 als “Verschlüsselbar” gekennzeichnet. Einige der “verschlüsselbar” gekennzeichneten Tabellen haben Datensätze, andere nicht.

Start des MSC und Verschlüsselung der Datenbank läuft erfolgreich durch.

Start des 4D Servers läuft erfolgreich durch, der Schlüssel wird automatisch aus einer .4DKeychain gezogen.

Wird jetzt in einer als “verschlüsselbar” gekennzeichneten Tabelle, in der zum Zeitpunkt der Verschlüsselung per MSC aber 0 Datensätze waren, ein neuer Datensatz angelegt und gespeichert, schlägt dieses fehl mit dem Fehler:

Cannot save new record in table Serverjob of database Vertinex

Error code: 1248 (dbmg)
Cannot save new record in table Serverjob of database Vertinex
component: ‘dbmg’
task -10, name: ‘Hauptprozess’

Error code: 2005 (dbmg)
Table Serverjob is set as encryptable but has not been encrypted.
component: ‘dbmg’
task -10, name: ‘Hauptprozess’

Getestet wurde auch der Fall, dass in einer solchen betroffenen Tabelle im unverschlüsselten Zustand ein Datensatz erstellt wurde. Nach Verschlüsseln des Datenfiles mittels MSC konnten in der entsprechenden Tabelle dann weitere Datensätze angelegt und erfolgreich gespeichert werden. Selbst nach Löschen aller Datensätze und Neustart des 4D-Servers (weiterhin mit “ds.encryptionStatus.encrypted=TRUE”) konnten neue Datensätze angelegt werden.

Das lässt den Schluss zu, dass das MSC in einer als “verschlüsselbar” gekennzeichneten Tabelle zum Zeitpunkt der Verschlüsselung mindestens einen Datensatz braucht, um intern ein entsprechendes Flag zu setzen. Das ist in meinen Augen ein Bug und sollte behoben werden.