SQL Server-Betrieb

Sicheres dynamisches SQL mit sp_executesql

Dynamisches SQL ist für optionale Filter und variable Abfrageformen nützlich. Stringverkettung erzeugt jedoch Injection-Risiken, Quote-Fehler, schlechte Planwiederverwendung und schwierige Fehlersuche.

Sicheres dynamisches SQL mit sp_executesql

Dynamisches SQL ist für optionale Filter und variable Abfrageformen nützlich. Stringverkettung erzeugt jedoch Injection-Risiken, Quote-Fehler, schlechte Planwiederverwendung und schwierige Fehlersuche.

Was gemessen werden sollte

Prüfen Sie, wie Werte in die Anweisung gelangen, ob Bezeichner eingeschränkt sind, ob Parameter exakt typisiert sind und wie viele unterschiedliche Pläne der Text erzeugt.

Praktisches Vorgehen

Übergeben Sie Werte als sp_executesql-Parameter, erlauben Sie nur bekannte Bezeichner und schützen Sie sie mit QUOTENAME, halten Sie den Text pro Abfrageform stabil und protokollieren Sie Vorlage und Werte getrennt.

Was vermieden werden sollte

Verketten Sie keine Benutzereingaben, behandeln Sie QUOTENAME nicht als Schutz beliebiger Werte und deklarieren Sie nicht jede Zeichenfolge als nvarchar(max).

Betriebliches Ergebnis

Dynamisches SQL bleibt sicher und wartbar, wenn die Struktur kontrolliert und die Daten parametrisiert sind.

Checkliste für die Produktion

Erfassen Sie eine Ausgangsbasis und definieren Sie die erwartete Verbesserung. Testen Sie mit repräsentativen Daten und realistischer Parallelität. Sichern Sie die ursprüngliche Einstellung oder den Plan, bereiten Sie einen Rollback vor und überwachen Sie die nächste normale Lastspitze.

Wenn Sie diese Methode auf eine konkrete SQL-Server-Umgebung anwenden möchten, nutzen Sie das Frageformular unten und nennen Sie SQL-Server-Version, Datenbankgröße, Lastprofil und bereits erfasste Nachweise.

Frage zu diesem Artikel

Haben Sie eine Frage zu diesem Thema?

Beschreiben Sie, was Sie bewerten oder wo Sie nicht weiterkommen. Wir antworten mit einer praktischen Empfehlung.

Inquiries are not enabled in this preview.

Eine Frage zu diesem Artikel stellen