Wir haben eine bestehende C++ Anwendung, die derzeit (noch) auf einer Accessdatenbank aufsetzt, und in absehbarer Zeit auf Serverdatenbanken migriert werden soll, im ersten Schritt auf SQL Server (aber auch andere wie z.B. Firebird & Oracle könnten folgen).
In der Anwendung gibt es ein Benutzerkonzept (Benutzer/Rollen/Rechte...) bei der bislang die eigentliche Logik komplett in der Anwendung abläuft, es also keine korrespondierenden Datenbankbenutzer gibt. Diese Rechte können auch nicht 1:1 Datenbankaktionen zugeordnet werden.
In Zukunft soll ein kleiner Teil der Logik in der Datenbank ablaufen (Seien es nun Datensätze die automatisch beim Anlegen eines anderen erzeugt werden müssen, oder STPs die Kunden für den Import bereit gestellt werden sollen).
Nun wäre es schön, wenn man einen an der Datenbank angemeldeten Benutzer auch direkt einem Anwendungsbenutzer (Für den z.B. ein Eintrag in einer speziellen Tabelle mit einer BenutzerId existiert) zuordnen könnte, so das man Beispielsweise in einer STP die zugehörige BenutzerId abfragen und verwenden kann (z.B. für Historieneinträge etc.).
Nach meinen Verständnis könnte man nun z.B. für jeden bisherigen Benutzer beispielsweise einen gleichnamigen Benutzer für die Datenbankinstanz anlegen, und darüber eine Verbindung herstellen, ein weiterer Kundenwunsch ist es, das gar keine Anmeldung mehr an unserer Anwendung nötig ist, und man sich mit seinem Windowsbenutzer anmeldet (was imho bei dem SQL Server ja möglich sein müsste wenn man die Anmeldung über die Windowsbenutzer zulässt und irgendwie eine Zuordnung von diesen zu "unseren" Anwendungsbenutzern herstellen könnte). Wie stellt man am besten die Verbindung her, auch in Hinsicht auf die Anmeldung an unserer Anwendung?
Wenn ich die Windowsbenutzer einmal ausklammere und es richtig verstehe könnte man z.B. eine STP veröffentlichen, über die, die Anmeldung erfolgt:
Liege ich hiermit einigermaßen richtig? Gibt es bessere Möglichkeiten? Wie könnte man dies mit den Windowsbenutzern regeln?
In der Anwendung gibt es ein Benutzerkonzept (Benutzer/Rollen/Rechte...) bei der bislang die eigentliche Logik komplett in der Anwendung abläuft, es also keine korrespondierenden Datenbankbenutzer gibt. Diese Rechte können auch nicht 1:1 Datenbankaktionen zugeordnet werden.
In Zukunft soll ein kleiner Teil der Logik in der Datenbank ablaufen (Seien es nun Datensätze die automatisch beim Anlegen eines anderen erzeugt werden müssen, oder STPs die Kunden für den Import bereit gestellt werden sollen).
Nun wäre es schön, wenn man einen an der Datenbank angemeldeten Benutzer auch direkt einem Anwendungsbenutzer (Für den z.B. ein Eintrag in einer speziellen Tabelle mit einer BenutzerId existiert) zuordnen könnte, so das man Beispielsweise in einer STP die zugehörige BenutzerId abfragen und verwenden kann (z.B. für Historieneinträge etc.).
Nach meinen Verständnis könnte man nun z.B. für jeden bisherigen Benutzer beispielsweise einen gleichnamigen Benutzer für die Datenbankinstanz anlegen, und darüber eine Verbindung herstellen, ein weiterer Kundenwunsch ist es, das gar keine Anmeldung mehr an unserer Anwendung nötig ist, und man sich mit seinem Windowsbenutzer anmeldet (was imho bei dem SQL Server ja möglich sein müsste wenn man die Anmeldung über die Windowsbenutzer zulässt und irgendwie eine Zuordnung von diesen zu "unseren" Anwendungsbenutzern herstellen könnte). Wie stellt man am besten die Verbindung her, auch in Hinsicht auf die Anmeldung an unserer Anwendung?
Wenn ich die Windowsbenutzer einmal ausklammere und es richtig verstehe könnte man z.B. eine STP veröffentlichen, über die, die Anmeldung erfolgt:
- Unser Programm wird gestatet, die Anmeldemaske erscheint in der man sein Kürzel/Kennwort eingibt.
- Eine STP wird aufgerufen die die Zuordnung zu dem Benutzer macht:
- Prüfen ob Benutzerdaten (Über Tabelle) existieren und stimmen.
- [Falls noch nicht existent] Einen DB-Benutzer der mit diesem Benutzerdatensatz korrespondiert anlegen.
- Dem angemeldeten Benutzer (Über Serverlogin) diesen Datenbankbenutzer zuordnen.