Einzelnen Beitrag anzeigen

Benutzerbild von Jelly
Jelly

Registriert seit: 11. Apr 2003
Ort: Moestroff (Luxemburg)
3.741 Beiträge
 
Delphi 2007 Professional
 
#7

Re: Realisation von Nutzergruppen in Anwendung - Vorgehenswe

  Alt 18. Nov 2004, 17:31
Zitat von mschaefer:
Das Problem fing damit an, das jetzt Rechner auch im Kundenbereich stehen, wo er nicht immer unter Aufsicht steht.
In dem Fall würde ich UNBEDINGT die Serversicherheit von Firebird nutzen, da du auf entfernten Rechnern überhaupt keinen Einblick hast, wer da was drauf macht. Wer sich bischen mit Computern auskennt kommt schnell auf die Idee, z.B. mit IBConsole o.ä. zu versuchen, sich in die Datenbank einzuloggen, und kann da weil ja noch Adminrechte bestehen, so ziemlich alles kaputt machen. Es wäre fahrlässig, dies nicht zu unterbinden.

Gerade bei Firebird kannst du sehr schön Lese-Edit-Insert-Lösch-Rechte jeder einzelnen Benutzergruppe vergeben. In diese Gruppen nimmst du dann deine Logins auf. Ist in etwa mit der Windows Benutzeraccount Logik zu vergleichen. Adminrechte kriegt KEINER, ausser du (und dein Chef ). Jedenfalls nicht Ottonormaluser bei den Kunden. Das wär viel zu gefährlich.

Wenn das jetzt erst einmal steht, ist die Sicherheit schon mal gegeben, ohne auch nur eine Zeile Code im Delphi zu ändern. Wenn einer ohne entsprechende Rechte versucht, einen Datensatz zu löschen, kriegt er schlicht und einfach eine Fehlermeldung. Ist zwar nicht schön, aber schon mal sehr funktionell, und eben vor allem sicher. Das mit dem Disablen von Buttons ist, wie bereist oben gesagt, schön für die Programmbedienung, aber zwingend notwendig ist das nicht.

Ein Problem will ich noch ansprechen, auf das du früher oder später stößt. Stell dir eine Gruppe vor, die neue Rechnungen einsehen darf, erstellen darf, ändern darf, jedoch NICHT drucken darf. Auf Tabellenebene allein kannst du das nicht einstellen, da du lesen können musst. Und wenn du lesen kannst, somit kannst du prinzipiell auch Rechnungen drucken. Ein Ausweg ist das Erstellen einer View, welches eine 1:1 Kopie deiner Rechnungstabelle darstellt. Lesezugriff auf diese View gibts du nur den Gruppen, die auch drucken dürfen. Das Drucken an sich erfolgt dann auf Basis dieser View, und nicht direkt auf Basis deiner Tabelle. Somit hast du dieses Sicherheitsloch auch gestopft. Alles Andere ist nur noch bischen Kosmetik in deinem Programm, dürfte aber prinzipiell kein Problem darstellen.

Gruß,
Tom

PS: Immer weiter munter fragen, denn mit solchen Porblemen hatte ich in Vergangenheit schon des öfteren zu tun.
  Mit Zitat antworten Zitat