Zum Inhalt springen
hs-sql-agent
2.0.2
Dokumentation 2.0.2
Dokumentation Administration

Sicherheitsrichtlinien

SQL-, DML-, Rate-Limit- und Parallelitätsregeln der hs-sql-agent-2.0.2-Laufzeit über die Admin-Steuerung konfigurieren.

Query-Regeln Ergebnisgröße und Ausführungs-Timeout kontrollierter Abfragen begrenzen.
DML-Regeln Prädikate verlangen, Änderungen an ganzen Tabellen einschränken und betroffene Zeilen begrenzen.
Laufzeitlimits Standard-Rate-Limits pro MCP-Schlüssel und die maximale Zahl paralleler SQL-Operationen festlegen.

Die Security Policy ist eine serverseitig durchgesetzte Laufzeitrichtlinie, keine Empfehlung dafür, was ein Agent freiwillig tun sollte. Die aktuelle Richtlinie wird von Query-/DML-Ausführung und Laufzeit-Limitern verwendet.

Felder in 2.0.2

FeldStandardGültiger Bereich / Bedeutung
QueryMaxRows10001–100.000
QueryTimeoutSeconds301–600 Sekunden
RequireWhereForUpdatetruePrädikat für UPDATE verlangen
RequireWhereForDeletetruePrädikat für DELETE verlangen
AllowFullTableUpdatefalseexplizite Freigabe für UPDATE der gesamten Tabelle
AllowFullTableDeletefalseexplizite Freigabe für DELETE der gesamten Tabelle
DmlMaxAffectedRows1001–1.000.000
KeyPermitLimit1201–1.000.000 Anfragen pro konfiguriertem Schlüssel-Zeitfenster
KeyWindowSeconds601–86.400 Sekunden
MaxConcurrentSql161–10.000 parallele SQL-Operationen

Werte außerhalb dieser Grenzen werden abgelehnt und nicht stillschweigend in eine andere Richtlinie umgerechnet.

Admin-Autorisierung

OperationBerechtigung
aktuelle Richtlinie lesen/runtime/securityview
Richtlinie aktualisieren/runtime/securityedit

Ein Update schreibt ein Audit-Ereignis und ersetzt den Laufzeitzustand der Richtlinie sofort. Die Änderung wird außerdem über den konfigurierten Provider für Security-Policy-Synchronisierung veröffentlicht, damit sie in verteilten Deployments zwischen Instanzen propagiert werden kann.

Query-Limits

QueryMaxRows begrenzt die Ausgabe über Compiler- und Laufzeitregeln. QueryTimeoutSeconds definiert den Timeout-Vertrag der Query-Ausführung. Beides wird serverseitig durchgesetzt und hängt nicht davon ab, dass der Client selbst LIMIT oder Cancellation korrekt verwendet.

Prädikate für UPDATE und DELETE

Standardmäßig verlangt die Richtlinie Prädikate für UPDATE und DELETE und verbietet Änderungen an der gesamten Tabelle.

Die Freigabe einer Full-Table-Änderung ist explizit: RequireWhereForUpdate=false allein drückt nicht dieselbe Absicht aus wie AllowFullTableUpdate=true. Behalten Sie die konservativen Standardwerte bei, solange ein realer Betriebsablauf keine breite Mutation erfordert.

Begrenzung betroffener DML-Zeilen

DmlMaxAffectedRows begrenzt die Auswirkung einer Mutation. Diese Grenze ergänzt das Safe-DML-Freigabeprotokoll, ersetzt es aber nicht. Eine Mutation muss weiterhin erfolgreich geparst, validiert und kompiliert werden und über MCP zusätzlich Freigabe und Revalidierung vor dem Commit durchlaufen.

Siehe Safe DML.

Rate Limits für MCP-Schlüssel

Die Security Policy liefert Standardwerte für Permit Limit und Zeitfenster pro Schlüssel. Einzelne MCP-Schlüssel können:

  • die Richtlinie erben,
  • einen eigenen Override verwenden oder
  • explizit unbegrenzt sein.

Siehe MCP-Schlüssel.

SQL-Parallelität

MaxConcurrentSql begrenzt parallele SQL-Operationen der Laufzeit. Ob dieses Limit pro Prozess oder über mehrere Instanzen hinweg gilt, hängt vom konfigurierten SQL-Concurrency-Provider ab.

In einem Cluster sollte der verteilte Provider verwendet werden, wenn das Limit für das gesamte Deployment statt für jeden Knoten einzeln gelten muss.