AGB  ·  Datenschutz  ·  Impressum  







Anmelden
Nützliche Links
Registrieren
Zurück Delphi-PRAXiS Programmierung allgemein Datenbanken Benutzerverwaltung Client-Server Datenbank
Thema durchsuchen
Ansicht
Themen-Optionen

Benutzerverwaltung Client-Server Datenbank

Ein Thema von elmar.faber · begonnen am 5. Apr 2016 · letzter Beitrag vom 6. Apr 2016
Antwort Antwort
Seite 1 von 2  1 2      
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
jobo

Registriert seit: 29. Nov 2010
3.072 Beiträge
 
Delphi 2010 Enterprise
 
#2

AW: Benutzerverwaltung Client-Server Datenbank

  Alt 5. Apr 2016, 09:39
Was ist denn so schlimm an einer 2. Instanz. Kostet das? Oder geht es um den Ressourcenverbrauch?
Eine eigene Welt hätte den Vorteil, dass es nie Streß gibt, wenn irgendwo was schief läuft und die IT sagt, sie haben da doch vorgestern was eingespielt...
Ansonsten bin ich nicht so bewandert mit dem MSSQL Benutzerkonzept, aber es gibt doch dort nicht nur Instanzen, sondern auch ganz normale Datenbanken. Bieten die nicht schon einen eigenständigen Rechtekontext? Dann kannst Du eine eigene DB nehmen und dort das gleiche machen wie in einer eigenen Instanz, ohne das Du auf die anderen Systeme kannst.

Nur ein User für den Zugriff, das wird ja eigentlich bei fast jeder Webanwendung so gemacht. Die haben dann für sich ein Userkonzept mit eigenen Usertabelle, PW Verwaltung usw.. Sollte also im Zweifel auch möglich sein.

In Oracle mache ich Rollenzuweisung beim Login. Ein User, der nichts darf, bekommt unter gewissen umständen beim Login eine Rolle zugewiesen. Das ist Dbseitig wiederum mit Priviliges und PW verbunden, könnte mir aber vorstellen, dass es sowas ähnliches auch in MSSQL gibt. Die schauen sich ja eh immer untereinander alles ab.
Gruß, Jo
  Mit Zitat antworten Zitat
elmar.faber

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

AW: Benutzerverwaltung Client-Server Datenbank

  Alt 5. Apr 2016, 11:35
Ja das habe ich auch gefragt, aber da geht es wohl um Prinzipien, dann kommen am ende noch andere und wollen auch...

Ja wie könnte man das wie bei einer Webanwendung umsetzen? Das wäre genau das, was ich gerne ausprobieren würde...
Elmar Faber
  Mit Zitat antworten Zitat
mquadrat

Registriert seit: 13. Feb 2004
1.113 Beiträge
 
Delphi XE2 Professional
 
#4

AW: Benutzerverwaltung Client-Server Datenbank

  Alt 5. Apr 2016, 12:20
Üblicherweise nimmt man 2.) und sorgt in der Zwischenschicht dafür, dass keine Statements gegen die DB ausgeführt werden, die im aktuellen Nutzerkontext nicht zulässig sind. Der DB-Benutzer darf meist alles.
  Mit Zitat antworten Zitat
elmar.faber

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

AW: Benutzerverwaltung Client-Server Datenbank

  Alt 5. Apr 2016, 13:48
Aber eine Zwischenschicht gibt es doch in meinem Fall nicht - oder hab ich da was mißverstanden?
Elmar Faber
  Mit Zitat antworten Zitat
mkinzler
(Moderator)

Registriert seit: 9. Dez 2005
Ort: Heilbronn
39.861 Beiträge
 
Delphi 11 Alexandria
 
#6

AW: Benutzerverwaltung Client-Server Datenbank

  Alt 5. Apr 2016, 13:59
Die "Zwischenschicht" kann auch in Deinem Programm implementiert werden. Die Benutzer müssen dann nicht als Datenbankbenutzer angelegt werden, sondern Dein Programm enscheidet anhand des Benutzers (des Programmes) was dieser darf.
Markus Kinzler
  Mit Zitat antworten Zitat
elmar.faber

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

AW: Benutzerverwaltung Client-Server Datenbank

  Alt 5. Apr 2016, 15:09
Dann hätte ich aber keine saubere Trennung von Frontend und Backend mehr da ja prinzipiell
alle Daten ins Frontend gelangen und erst da gefiltert wird
Elmar Faber
  Mit Zitat antworten Zitat
mkinzler
(Moderator)

Registriert seit: 9. Dez 2005
Ort: Heilbronn
39.861 Beiträge
 
Delphi 11 Alexandria
 
#8

AW: Benutzerverwaltung Client-Server Datenbank

  Alt 5. Apr 2016, 15:50
Jein. Wenn die Rechte fehlen kannst Du ja verhindern, dass die Daten geladen werden.
Markus Kinzler
  Mit Zitat antworten Zitat
elmar.faber

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

AW: Benutzerverwaltung Client-Server Datenbank

  Alt 5. Apr 2016, 17:04
Ja genau da liegt mein Verständnisproblem, ich baue eine Verbindung zur Datenbank auf und die Rechte
sind fest über einen Benutzer definiert, wie erreiche ich es, dass ein bestimmter Benutzer nur ganz
bestimmte Rechte bekommt? Ich müßte doch hierzu die Verbindung trennen und mit einem Benutzer mit anderen Rechten
wieder neu aufbauen. Wie steuere ich die Rechte für viele Anwender mit nur einem angelegten DB-Benutzer?
Und verhindere gleichzeitig, dass nie Daten das Backend verlassen, zu denen der Anwender keine Rechte besitzt?
Elmar Faber
  Mit Zitat antworten Zitat
mkinzler
(Moderator)

Registriert seit: 9. Dez 2005
Ort: Heilbronn
39.861 Beiträge
 
Delphi 11 Alexandria
 
#10

AW: Benutzerverwaltung Client-Server Datenbank

  Alt 5. Apr 2016, 17:10
Die Frage ist ja, ob man das über Datenbankbenutzer regeln muss, oder durch eine Benutzerverwaltung im Programm.
Markus Kinzler
  Mit Zitat antworten Zitat
Antwort Antwort
Seite 1 von 2  1 2      


Forumregeln

Es ist dir nicht erlaubt, neue Themen zu verfassen.
Es ist dir nicht erlaubt, auf Beiträge zu antworten.
Es ist dir nicht erlaubt, Anhänge hochzuladen.
Es ist dir nicht erlaubt, deine Beiträge zu bearbeiten.

BB-Code ist an.
Smileys sind an.
[IMG] Code ist an.
HTML-Code ist aus.
Trackbacks are an
Pingbacks are an
Refbacks are aus

Gehe zu:

Impressum · AGB · Datenschutz · Nach oben
Alle Zeitangaben in WEZ +1. Es ist jetzt 00:55 Uhr.
Powered by vBulletin® Copyright ©2000 - 2024, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024 by Thomas Breitkreuz