Also ich persönlich mache es ganz anders:
Ich identifiziere den User beim Starten der Applikation anhand seines Windows-Login-Namens und gebe ihm dann innerhalb meiner Applikation die entsprechenden Rechte (aktiviere/deaktiviere Buttons oder TabSheets etc.).
Das heißt Du hast eigentlich kein Rechtesystem, sondern ein Verstecksystem, und wenn es dann noch unter XP läuft (unter neueren dann "nur" noch als Admin), kann eigentlich jeder zu neugierige oder gar böswillige User die Tabs/Buttons mit simpelsten Werkzeugen verfügbar machen. Wenn schon obscurity statt security, dann mindestens Tabs gar nicht vorhanden und Event-Handler der deaktivierten Buttons weg, um eine Rechteausweitung per einfachster UI-Manipulation zu verhindern. Aber auch dann kann ein lokaler Admin mit ner Proxy-
DLL (gibt's bestimmt auch längst von der Stange) - oder gar Malware - trivialst die mächtigen Login-Daten erlangen.
Klar gibt es oft Anwendungsfälle, wo man tatsächlich nur einen
SQL-User hat und die Rechte dann separat verwaltet werden. Das klappt aber nur, wenn man auch weiß, was wo passiert, und nicht ordentlich mit so einem Zusatz:
Würde ich einfach nur die
DB-Rechte einschränken, dann würden ja z.B. irgendwelche Editier-/Speicher-Funktionen aktiv sein und dann auf einen (kryptischen
MySQL-)Fehler laufen, weil der User keine
DB-Schreibrechte hat.