AGB  ·  Datenschutz  ·  Impressum  







Anmelden
Nützliche Links
Registrieren
Thema durchsuchen
Ansicht
Themen-Optionen

Rechte aus DB Gruppieren

Ein Thema von barnti · begonnen am 4. Aug 2008 · letzter Beitrag vom 4. Aug 2008
Antwort Antwort
barnti

Registriert seit: 15. Aug 2003
Ort: Mal hier mal da...
689 Beiträge
 
Delphi 7 Enterprise
 
#1

Rechte aus DB Gruppieren

  Alt 4. Aug 2008, 09:41
Datenbank: Oracle • Version: 9/10 • Zugriff über: pl/sql ODBC
Hallo,

heute mal wieder etwas zu Datenbanken.

Ich habe die Aufgabe Rechte von mehreren Applikationen zu vereinheitlichen. Die Rechte sind in einer DB hinterlegt. Pro Applikation gibt es verschiedene Funktionen, die jeweils mit einem Recht verbunden sind, z.B. Leserechte, Schreibrechte, etc. Wird nun ein User neu eingerichtet, so wurden bisher benötigte Rechte einzeln in die DB eingetragen. Das hatte zur Folge, dass es mitlerweile unterschiedlichste Kombinationen der Rechte in der DB gibt.

Um diese Rechtevergabe zu vereinfachen, möchte ich nun bestimmte Gruppen oder Rechteprofile identifizieren. Beispiel

User A hat die Rechte 21, 22, 23 => Profil I
User B hat die Rechte 21, 22, 23, 38 => Profil II

usw.
Damit könnte man einen User einrichten indem man ihm eiinem bestimmten Profil zuordnet.


Meine Fragen:

1. Wie würdet ihr vorgehen, um die Profile zu bestimmen(User eines Profils)?
2. Wie kann man geschickt die Anzahl der Profile herabsetzen ohne Rechte zu verlieren?
Gruß,

Barnti
  Mit Zitat antworten Zitat
Benutzerbild von DGL-luke
DGL-luke

Registriert seit: 1. Apr 2005
Ort: Bad Tölz
4.149 Beiträge
 
Delphi 2006 Professional
 
#2

Re: Rechte aus DB Gruppieren

  Alt 4. Aug 2008, 10:23
Naja.

Tabelle PrivilegeCaptions: PrivilegeID int, Caption varchar(255), PRIMARY KEY PrivilegeID autoincrement;

Ordnet jedem recht, das durch eine zahl identifiziert ist, eine beschreibung zu.

Tabelle Privileges: UserID int, Privilege int

Ordnet einzelnen usern einzelne rechte zu.

Tabelle ProfileLinks: UserID int, PrivilegeProfile int

Ordnet einzelnen usern Profile zu

Tabelle Profiles: ProfileID int, Privilege int

Ordnet einzelnen profilen rechte zu.

So könnte man es machen, ist aber so normalisiert, dass die einfache frage, "darf user $userid eine aktion ausführen, die das recht $privilege erfordert" einiges an logik über der DB erfordert. (also anwendungscode oder SP)
Lukas Erlacher
Suche Grafiktablett. Spenden/Gebrauchtangebote willkommen.
Gotteskrieger gesucht!
For it is the chief characteristic of the religion of science that it works. - Isaac Asimov, Foundation I, Buch 1
  Mit Zitat antworten Zitat
barnti

Registriert seit: 15. Aug 2003
Ort: Mal hier mal da...
689 Beiträge
 
Delphi 7 Enterprise
 
#3

Re: Rechte aus DB Gruppieren

  Alt 4. Aug 2008, 10:37
Hallo DGL-luke,

ich habe mich wohl mißverständlich ausgedrückt: Die User und zugehörigen Rechte existieren bereits. Ich möchte daraus Profile bilden und die Anzahl der Profile auf ein Minimum beschränken.
Gruß,

Barnti
  Mit Zitat antworten Zitat
Benutzerbild von DGL-luke
DGL-luke

Registriert seit: 1. Apr 2005
Ort: Bad Tölz
4.149 Beiträge
 
Delphi 2006 Professional
 
#4

Re: Rechte aus DB Gruppieren

  Alt 4. Aug 2008, 11:33
Naja. Zuerst muss auf der DB auch eine Infrastruktur für die Templates stehen.

Und dann stehen wir vor einem Problem der linearen (?) ganzzahligen Optimierung.
Du musst die also ein Optimierungsframework suchen - eine Matlab-Implementation, oder dieses gnu-teil. damit drückst du dein problem durch mathematische gleichungen und eine optimierungsbedingung aus.
wenn du glück hast, spuckt das programm dir dann eine passende lösung aus.

Andererseits wird ja wohl eine gewisse Logik auf die rechterverteilung superimposed sein. Z.B. werden bestimmte Administratoren sehr viele Rechte haben, Benutzer weniger, etc.
Ich würde das also eher "nach Gefühl" machen, und eine gewisse Rollenverteilung erstellen. Also Benutzer, Administrator, Reportersteller, etc.

Diese Rollen gleich mal in Profile gießen und dann schauen, obs hinhaut.
Lukas Erlacher
Suche Grafiktablett. Spenden/Gebrauchtangebote willkommen.
Gotteskrieger gesucht!
For it is the chief characteristic of the religion of science that it works. - Isaac Asimov, Foundation I, Buch 1
  Mit Zitat antworten Zitat
mkinzler
(Moderator)

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

Re: Rechte aus DB Gruppieren

  Alt 4. Aug 2008, 11:34
Ausserdem könnte man additive Rechtegruppen (Rollen) verwenden.
Markus Kinzler
  Mit Zitat antworten Zitat
Benutzerbild von DGL-luke
DGL-luke

Registriert seit: 1. Apr 2005
Ort: Bad Tölz
4.149 Beiträge
 
Delphi 2006 Professional
 
#6

Re: Rechte aus DB Gruppieren

  Alt 4. Aug 2008, 11:37
stimmt. ein Administrator müsste dann entweder die Profile "Benutzer" und "Administrator" bekommen, oder das Profil "Administrator" müsste darauf verweisen, dass es das Profil "Benutzer" bereits enthält.
Lukas Erlacher
Suche Grafiktablett. Spenden/Gebrauchtangebote willkommen.
Gotteskrieger gesucht!
For it is the chief characteristic of the religion of science that it works. - Isaac Asimov, Foundation I, Buch 1
  Mit Zitat antworten Zitat
barnti

Registriert seit: 15. Aug 2003
Ort: Mal hier mal da...
689 Beiträge
 
Delphi 7 Enterprise
 
#7

Re: Rechte aus DB Gruppieren

  Alt 4. Aug 2008, 11:53
Hallo,

ich habe mir mal alle Profile in einer Excell-Tabelle dargestellt. Daraus ergeben sich nun 35 verschiedene Profile. Wobei einige Profile in anderen enthalten sind.

Beispiel siehe Screenshot

Ich würde nun als nächstes schauen wie ich ein Profil durch andere Profile ausdrücken kann. Scheint mir aber sehr nach "versuchen". Eine andere Optimierungsstrategie habe ich nicht. Matlab habe ich mir noch nicht angeschaut.

Weitere Vorschläge zur Optimierung der Profile?
Miniaturansicht angehängter Grafiken
rechte_191.gif  
Gruß,

Barnti
  Mit Zitat antworten Zitat
Antwort Antwort


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 13:51 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