Erst mal geht es mir nur um direkte Kommunikation zwischen Windows-Programm und Datenbank. Eine Multi-Tier-Anwendung ist bei uns wohl nicht unbedingt notwendig. (zumindest hat in den letzten 20 Jahren kaum jemand danach gefragt)
Eine Multi-Tier Architektur kann gerade im Bereich der Rechteverwaltung Vorteile haben. Bei Änderungen der Rechte ist ein erneutes Einlesen der Rechte aus der Datenbank notwendig. Dazu startet man die Anwendung entweder manuell neu, aktualisiert die Rechte in Intervallen (was ineffizient ist bei einer grossen Anzahl Clients) oder verwendet ein System bei dem der Server die Clients über eine Nachricht (beispielsweise InterBase oder Firebird Events) auffordert, die Rechte zu aktualisiern. Bei Multi-Tier wird das sehr viel komfortabler, da man auf der Mittelschicht eine
API zur Änderung der Rechte leichter intgrieren kann und von der Mittelschicht dann aktive Benachrichtigungen, zum Beispiel einfach über eine UDP Broadcast Nachricht, ins Netz sendet. Man ist dann datenbankunabhängig und kann im Gegensatz zu InterBase / Firebird Events noch mehr Daten aktiv an die Clients senden, die dann automatisch zum Beispiel bestimmte Menüpunkte deaktivieren, die nicht mehr verwendet werden dürfen.
Was heute noch wie ein Märchen klingt, kann morgen Wirklichkeit sein.