Hello,
Wenn ich also einen Kundensatz löschen möchte, könnte eine Stored Procedure (SP) prüfen, ob noch offene Rechnungen vorliegen und das Löschen ggf. verweigern. So kann ich aus verschiedenen Programmen dieselbe SP aufrufen. Wenn dann Bedingungen hinzukommen, muss ich nicht in die Programme eingreifen, sondern "nur" die betr. SPs anpassen. Gute Sache, mache ich jetzt mit PHP-includes, gehört aber eigentlich in die Datenbank.
Genau das ist der Grund, warum ich sie auch dort unterbringen würde.
Man kann dann mit seinem "normalen" Webinterface zugreifen, mit einem nicht näher spezifizierten Programm über dessen API und Port 3306 (als Beispiel), oder auch direkt mit einem Client aus der Entfernung oder vom Localhost.
Und es gelten immer die in MySQL eingestellten Rechte sowie die in den Procedures verdrahteten.
So kann man z.B. erreichen, dass User "Albert" beim Select (über die entsprechende SP) nur "seine" Datensätze angezeigt bekommt. Auf andere Selects, als die für ihn vorbereiteten, bekommt er keine Rechte. Und man kann in der SP verdrahten, dass dieser Zugriff logged wird, wobei das bei Selects dann schon ein ziemliches "Voratsdatenaufkommen" geben kann. Aber in üblicher Bankensoftware oder aber bei Behörden ist das oft so geregelt.
Liebe Grüße aus dem schönen Oberharz
Tom vom Berg