Zurück zu den Datenbanken-FAQs
HILFECENTER · FAQDatenbanken2 Min. Lesezeit

Warum wird ein Datenbankupdate ohne Filter blockiert?

IaGenify blockiert Aktualisierungen oder Löschungen ohne Filter beziehungsweise SQL-WHERE-Klausel, sofern Sie nicht ausdrücklich bestätigen, dass alle Datensätze geändert werden sollen. Diese Schutzmaßnahme verhindert, dass eine fehlende Bedingung versehentlich eine ganze Sammlung oder Tabelle betrifft.

Datenbanken

So funktioniert die Sicherheitsprüfung

Bei MongoDB kann ein leerer Filter allen Dokumenten einer Sammlung entsprechen. Bei SQL kann ein UPDATE oder DELETE ohne WHERE jede Zeile der Zieltabelle ändern oder entfernen. Das Speicherwerkzeug erkennt solche unbegrenzten Vorgänge und verlangt vor der Ausführung die ausdrückliche Bestätigung `all: true`.

Die Prüfung entscheidet nicht, ob eine Änderung aller Datensätze sinnvoll ist; sie macht nur den großen Umfang deutlich. Sicherer ist es, zuerst die vorgesehenen Datensätze abzufragen, einen Filter mit einem stabilen Schlüssel zu erstellen und die Treffer vor dem Schreiben zu prüfen. Verwenden Sie in SQL eine WHERE-Bedingung, die genau die gewünschten Zeilen bezeichnet.

Die Bestätigung bewusst einsetzen

Wenn Sie wirklich alle Datensätze ändern oder löschen möchten, bestätigt `all: true` diesen Umfang für den Vorgang. Verwenden Sie die Option nur, wenn der Auftrag klar eine Gesamtänderung vorsieht und Sie die Folgen geprüft haben. Sie bietet keine Rückgängig-Funktion; erstellen Sie bei Bedarf vorher eine Sicherung.

War eine gezielte Änderung beabsichtigt, setzen Sie die Bestätigung nicht einfach, um die Fehlermeldung zu beseitigen. Korrigieren Sie den Filter, prüfen Sie Speicher, Tabelle oder Sammlung und kontrollieren Sie die Treffer vor dem Schreiben. Dadurch präzisiert die Fehlermeldung den gewünschten Umfang.

Zurück zu den Datenbanken-FAQs