statements - oracle sql monitoring



Wie man PL/SQL in Oracle-Abfragen deaktiviert (1)

Sie können nicht verhindern, dass Personen prozeduralen PL / SQL-Code auf Ihrem Server schreiben. Abhängig von der genauen Art des Problems, das Sie zu lösen versuchen, haben Sie jedoch möglicherweise andere Optionen. Zwei Möglichkeiten, die Ihnen in den Sinn kommen ...

Sie können ein Profil erstellen, das dem Datenbankbenutzer zugeordnet ist, der verschiedene Ressourcenbeschränkungen erzwingt. So können Sie die CPU-Auslastung eines einzelnen Anrufs oder die Anzahl der möglichen Lesevorgänge begrenzen. Damit können Sie automatisch Sitzungen beenden, die eine Endlosschleife codieren. Beachten Sie, dass der Initialisierungsparameter RESOURCE_LIMIT auf TRUE festgelegt werden muss, damit Oracle Ressourcenbeschränkungen in Profilen erzwingen kann.

Sie können Oracle Resource Manager verwenden , um den Zugriff auf Ressourcen zu priorisieren, um das Risiko zu verringern, dass der Fehler eines Entwicklers alle Ressourcen auf dem Server beansprucht und die wichtigen Produktionsprozesse zunichte macht.

Hier ist ein Beispiel für die Art von Abfrage, die ich auf meinem Server verhindern möchte:

begin
  While True
  LOOP
     dbms_output.put_line('tst');
  END LOOP;
end

Diese Abfrage (oder ähnliche) trifft möglicherweise meinen Oracle-Server über den Oracle JDBC Thin-Treiber. Ich wäre offen dafür, zu verhindern, dass diese Abfrage auf der JDBC-Konfigurationsebene, der Konfigurationsebene des Datenbankservers oder über Benutzerberechtigungen innerhalb des Schemas ausgeführt wird. Ich möchte, dass der Benutzer weiterhin normale Abfragen ausführen / einfügen / aktualisieren / löschen kann. Ehrlich gesagt wäre ich sehr glücklich, wenn keiner der PL / SQL-Befehle verfügbar wäre und stattdessen nur Standard-SQL.

Aktualisieren

Ich sollte auch erwähnen, dass Benutzer weiterhin Standardfunktionen in ihren SQL-Abfragen verwenden dürfen. Ich will wirklich nicht, dass sie irgendetwas tun, was nach prozeduraler Programmierung aussieht (und sich um die Fallstricke solcher Dinge kümmern muss, wie oben gesehen).





oracle11g