Userunterscheidung bei Anmeldung an Datenbank in SQL Server



  • Ich benutze seit neuestem Microsoft MSDE2000 SQL-Server.
    Ich habe dort eine Datenbank eingerichtet und verschiedene Benutzerkonten erstellt. Nun wollte ich aber in einer Tabelle verschiedene Zugriffsrechte für Teile meines Clientprogramms spiechern. Also z. Bsp. User XXX darf nur auf Formulare a,b,d zugreifen und User yyy nur auf Formulare c und e. Dazu müsste ich aber zuerst einmal herausbekommen unter was sich der User eingeloggt hat!

    Geht das irgendwie? Wenn nicht, wie könnte ich das anders lösen?



  • ich verstehe nich ganz was du meinst... 😞

    wenn der benutzer das clientprogramm startet wird er sich
    doch einloggen muessen, oder?



  • Hallo,

    wir melden unsere Programme immer unter einem Standarduser an. Die Userverwaltung selbst ist bei uns in verschiedenen Tabellen gespeichert.

    Ablauf:

    1. Programm wird gestartet:
    Ein Anmeldedialog erscheint, und fragt den Anwender nach Namen und Password.
    2. ProgrammController meldet sich am Userverwaltungsserver an. Dabei gibt er die eigene Versionsnummer an und die Login-Daten des Users. Die Versionsnummer der Controllers wird benutz um die Berechtigungen und Konfigurationen des Prgramms in ein Berechtigungsobjekt zu laden. Berechtigungen sind also nicht nur Programmspezifisch, sonder Versions-Spezifisch. Man kann so zum Beispiel ältere Programm-Versionen blocken oder neuere auf andere Datenbanken umleiten.

    3. Der Userverwaltungsserver gibt ein Berechtigungsobjekt zurück, mit den sich der Programmcontroller am Applicationserver anmelden kann, welcher die Datenbanken und Daten verwaltet.
    4. Userspezifische Einstellungen, welche im Berechtigungsobjekt hinterlegt sind, werden automatisch vom Programmcontroller verarbeitet.

    Diese Routinen sind in einer Basisklasse implementiert, von der ich nur ein ProgrammController ableite. Formular / Webseiten sind ebenfalls von eine Basisklasse abgeleitet und haben alle notwendigen Sachen bereits drin, um mit den Programmcontroller klar zu kommen.
    Es wird also alles im Hintergrund erledigt.

    Wenn ich im Debug-Modus starte, werden automatisch Debug-Anmeldungen konfiguriert. Beim Testen muss ich mich also nicht mehr anmelden und kann über Konfigurationsdateien die Sprungposition des Debuggens beeinflussen. Ist sehr effizient. 😉



  • AndreasW schrieb:

    Hallo,
    wir melden unsere Programme immer unter einem Standarduser an. Die Userverwaltung selbst ist bei uns in verschiedenen Tabellen gespeichert.

    Ah, so hatte ich das bei meiner Accessdatenbanklösung auch gemacht. Dann werd ich das jetzt wohl ummodeln auf die MSDE2000 und das dort auch so weitermachen.



  • AndreasW schrieb:

    Hallo,

    2. ProgrammController meldet sich am Userverwaltungsserver an. Dabei gibt er die eigene Versionsnummer an und die Login-Daten des Users. Die Versionsnummer der Controllers wird benutz um die Berechtigungen und Konfigurationen des Prgramms in ein Berechtigungsobjekt zu laden. Berechtigungen sind also nicht nur Programmspezifisch, sonder Versions-Spezifisch. Man kann so zum Beispiel ältere Programm-Versionen blocken oder neuere auf andere Datenbanken umleiten.

    3. Der Userverwaltungsserver gibt ein Berechtigungsobjekt zurück, mit den sich der Programmcontroller am Applicationserver anmelden kann, welcher die Datenbanken und Daten verwaltet.
    4. Userspezifische Einstellungen, welche im Berechtigungsobjekt hinterlegt sind, werden automatisch vom Programmcontroller verarbeitet.

    Also, habe ich das jetzt richtig Verstanden, das ihr zwei Server auf dem system laufen habt? Oder meinst du nur 2 verschiedene Datenbanken?
    Kann man denn den MSDE2000 überhaupt zweimal installieren und starten?


Anmelden zum Antworten