Einzelnen Beitrag anzeigen

elmar.faber

Registriert seit: 10. Sep 2007
Ort: Neustadt (Hessen)
37 Beiträge
 
Delphi 10.2 Tokyo Architect
 
#1

Benutzerverwaltung Client-Server Datenbank

  Alt 5. Apr 2016, 09:09
Datenbank: MS-SQL • Version: 2008 • Zugriff über: Netzwerk
Hallo,

ich suche Konzepte zum Aufbau einer Client-Server Benutzerverwaltung - vornehmlich MS-SQL, doch sollte das Konzept ja durchaud übertragbar sein.
Erst einmal sehe ich zwei unterschiedliche Möglichkeiten:

1. Die Benutzerverwaltung verwendet die Datenbankfunktionalitäten, Benutzer anlegen, Rollen vergeben etc.
- Vorteil: Funktioniert und ist durch verwenden von Views sehr sicher, kein Benutzer hat direkten Zugriff auf die Tabellen
- Nachteil: eine eigene Instanz ist notwendig mit rechten die das alles ermöglichen.

2. Eine eigene Benutzerverwaltung mittels einer Tabelle die die Zugangsdaten und Rollen der einzelnen Benutzer enthält
- Vorteil: keine eigene Instanz nötig, es wird nur ein Benutzer benötigt
- Nachteil, ich hab keine Ahnung wie ich das am besten umsetzen soll.

Zum besseren Verständnis:

Die aktuelle Situation ist folgende: Ich habe eine Delphi Applikation die im Domänen-Netzwerk läuft und auf einen MS-SQL Server
via FireDAC Komponenten zugreift. Die Benutzer die sich an der Applikation anmelden werden als Datenbank-Benutzer auf dem Server
eingetragen und über Rollen bekommen sie die Rechte innerhalb der Datenbank zugewiesen. Bei 50 Benutzern muß ich 50 Benutzer-Einträge
in die Datenbank machen und benötige dazu höhere Rechte zur Verwaltung auf dem SQL Server.
Im MS-SQL Cluster bräuchte ich nun eine eigene Instanz dafür ansonsten könnte ich auch Benutzer anderer Datenbanken löschen.
Das will der Systembetrieb nicht.
Wenn ich nun eine Tabelle nehme und dort meine Anwenderdaten ablege, bräuchte ich nur einen Benutzer der das Recht hat lesend und schreibend
auf die Datenbank zuzugreifen, müsste aber die Zugriffsverwaltung irgendwie innerhalb meiner Datenbank organisieren.
Da fehlt mir aber die zündende Idee, bzw. ich weiß nicht, ob das überhaupt funktionieren kann.
Es steht die Delphi XE7 Enterprise Version zur Verfügung.

zu 2: Wenn ich mit FDConnection eine Verbindung aufbaue mit einem Benutzer der lediglich das Recht hat eine Stored-Procedure
aufzurufen mit der ich auf die Tabelle mit den Benutzerdaten zugreifen kann, könnte ich ja die Benutzerdaten überprüfen
aber wie geht es weiter? Ich habe doch lediglich die Rechte zur Verfügung die der einzelne Benutzer hat - somit hilft mir
das ja nicht weiter? Wie kann ich im Backend (in meiner Datenbank) eine Verwaltung aufbauen die nur einen Benutzer benötigt?

Gibt es noch andere Verfahren und kennt von euch jemand Links die mir da auf die Sprünge helfen?

Ich hoffe auf eine angeregte Diskussion

Viele Grüße

Crossposting: http://forum.delphi-treff.de/index.p...105#post445106
Elmar Faber
  Mit Zitat antworten Zitat