Base-Split-DB: Datenbankdateien vor Löschen schützen per NTFS
Verfasst: Fr 13. Nov 2015, 18:44
Hallo,
für alle anderen Paranoiker außer mir stelle ich hier eine einfache Methode vor, wie man unter Windows bei einem NTFS-formatierten Laufwerk die wichtigsten Datenbankdateien einer gesplitteten DB vor versehentlichem Löschen schützen kann. Wie der Schutz sich bei einer eingebetteten DB verhält (nur dbname.odb), habe ich nicht ausprobiert. Die Methode ersetzt natürlich keine Sicherheitskopien, kann aber Ärger ersparen.
Bitte: erst an einer DB-Kopie ausprobieren. Nur ausprobieren, wenn der Windows-Papierkorb aktiv ist. Nicht daß beim probeweisen Löschen wichtige Dateien im Nirvana verschwinden...
Ausgangssituation: Die Datenbankdateien befinden sich in einem eigenen Unterordner "Datenbank" irgendwo unter Windows.
Ziel: Die Dateien dbname.data, dbname.odb und hsqldb.jar vor versehentlichem Löschen schützen.
Kein Ziel: die dbname.properties und dbname.script werden offenbar durch Löschen und Neuschreiben benutzt, da funktioniert dieser Schutz nicht. Wie man die schützen kann, weiß ich nicht...
Problem: Im selben Ordner liegen, entstehen während des Betriebs und werden wieder gelöscht beim Schließen der DB auch andere Dateien, wie zB die dbname.lck und die dbname.log. Daher verbietet sich ein Löschschutz für das ganze Verzeichnis. Diese Dateien brauchen den Löschschutz auch nicht, da sie, solange sie existieren, von Base bzw. der DB geöffnet sind und von Windows geschützt werden.
Lösung:
0. Sicherstellen, daß der angemeldete Benutzer der Besitzer des Ordners und der Dateien ist.
Eigenschaften - Sicherheit - Erweitert - Besitzer
1. Der Unterordner "Datenbank" bekommt die vererbten Rechte weggenommen, die sonst nur für Verwirrung sorgen. Einträge für Administratoren oder System sind unnötig. Je nach Wunsch können die folgenden Rechte für "Jeder", "Authentifizierte Benutzer" oder nur den konkreten Benutzer eingeräumt werden.
Eigenschaften - Sicherheit - Erweitert - Berechtigungen ändern: Häkchen raus bei "Vererbbare Berechtigungen ... einschließen".
Die folgende Frage mit "Entfernen" beantworten. 2. Für "Jeder" einen neuen Berechtigungseintrag erstellen.
Eigenschaften - Sicherheit - Bearbeiten - Hinzufügen: Jeder.
Dann in der "Zulassen"-Spalte "Ändern" anklicken. Es entstehen fünf Häkchen.
OK drücken. 3. Für die Dateien dbname.data, dbname.odb und hsqldb.jar jeweils einzeln einen Verweigerungseintrag setzen.
Eigenschaften - Sicherheit - Erweitert - Berechtigungen ändern - Hinzufügen: "Jeder".
Dann in der "Verweigern"-Spalte ein Häkchen setzen bei "Löschen".
OK drücken. Kontextmenü schließen. Die drei Dateien (und der Datenbankordner selbst) sind, sobald die Verweigerungseinträge gesetzt sind, nicht mehr löschbar, aber von Base bzw. der Datenbank ganz normal beschreib- und veränderbar.
Mein Sicherheitsgefühl hat sich dadurch jedenfalls erhöht.
Gruß
Freischreiber
für alle anderen Paranoiker außer mir stelle ich hier eine einfache Methode vor, wie man unter Windows bei einem NTFS-formatierten Laufwerk die wichtigsten Datenbankdateien einer gesplitteten DB vor versehentlichem Löschen schützen kann. Wie der Schutz sich bei einer eingebetteten DB verhält (nur dbname.odb), habe ich nicht ausprobiert. Die Methode ersetzt natürlich keine Sicherheitskopien, kann aber Ärger ersparen.
Bitte: erst an einer DB-Kopie ausprobieren. Nur ausprobieren, wenn der Windows-Papierkorb aktiv ist. Nicht daß beim probeweisen Löschen wichtige Dateien im Nirvana verschwinden...
Ausgangssituation: Die Datenbankdateien befinden sich in einem eigenen Unterordner "Datenbank" irgendwo unter Windows.
Ziel: Die Dateien dbname.data, dbname.odb und hsqldb.jar vor versehentlichem Löschen schützen.
Kein Ziel: die dbname.properties und dbname.script werden offenbar durch Löschen und Neuschreiben benutzt, da funktioniert dieser Schutz nicht. Wie man die schützen kann, weiß ich nicht...
Problem: Im selben Ordner liegen, entstehen während des Betriebs und werden wieder gelöscht beim Schließen der DB auch andere Dateien, wie zB die dbname.lck und die dbname.log. Daher verbietet sich ein Löschschutz für das ganze Verzeichnis. Diese Dateien brauchen den Löschschutz auch nicht, da sie, solange sie existieren, von Base bzw. der DB geöffnet sind und von Windows geschützt werden.
Lösung:
0. Sicherstellen, daß der angemeldete Benutzer der Besitzer des Ordners und der Dateien ist.
Eigenschaften - Sicherheit - Erweitert - Besitzer
1. Der Unterordner "Datenbank" bekommt die vererbten Rechte weggenommen, die sonst nur für Verwirrung sorgen. Einträge für Administratoren oder System sind unnötig. Je nach Wunsch können die folgenden Rechte für "Jeder", "Authentifizierte Benutzer" oder nur den konkreten Benutzer eingeräumt werden.
Eigenschaften - Sicherheit - Erweitert - Berechtigungen ändern: Häkchen raus bei "Vererbbare Berechtigungen ... einschließen".
Die folgende Frage mit "Entfernen" beantworten. 2. Für "Jeder" einen neuen Berechtigungseintrag erstellen.
Eigenschaften - Sicherheit - Bearbeiten - Hinzufügen: Jeder.
Dann in der "Zulassen"-Spalte "Ändern" anklicken. Es entstehen fünf Häkchen.
OK drücken. 3. Für die Dateien dbname.data, dbname.odb und hsqldb.jar jeweils einzeln einen Verweigerungseintrag setzen.
Eigenschaften - Sicherheit - Erweitert - Berechtigungen ändern - Hinzufügen: "Jeder".
Dann in der "Verweigern"-Spalte ein Häkchen setzen bei "Löschen".
OK drücken. Kontextmenü schließen. Die drei Dateien (und der Datenbankordner selbst) sind, sobald die Verweigerungseinträge gesetzt sind, nicht mehr löschbar, aber von Base bzw. der Datenbank ganz normal beschreib- und veränderbar.
Mein Sicherheitsgefühl hat sich dadurch jedenfalls erhöht.
Gruß
Freischreiber