• Jetzt anmelden. Es dauert nur 2 Minuten und ist kostenlos!

Verknüpfung verschiedener Benutzerverwaltungen mit VIEWs

E

Efchen

Guest
Hallo,

ich versuche die Benutzerverwaltungen dreier Web-Applikationen (Bugzilla, phpBB3, eGroupWare) miteinander so zu verknüpfen, dass alle Applikationen nur noch die über Bugzilla eingetragenen Benutzer verwenden.

Soweit ich mich informiert habe, sollten VIEWs in MySQL mir dabei helfen können.

Code:
create view users as select bugs.userid as user_id, bugs.cryptpassword as user_password, ... from bugs.profiles, users_phpbb3
So in etwa wie bei diesem Beispiel mit phpBB3 und Bugzilla.

Ich würde dazu die eigentliche Tabelle "users" von phpBB3 umbenennen und ein VIEW mit Namen "users" anlegen. Diverse Felder aus der phpBB3-Tabelle würde ich dann sozusagen auf die Bugzilla-Spalten "verlinken", also zeigt phpbb3.username dann auf bugs.login_name.
Wie aber bekomme ich es hin, die restlichen Spalten, die phpBB3 in seiner Tabelle users drin hat, die ich nicht von Bugzilla übernehmen will, mit in dieses VIEW aufzunehmen, ohne dass ich alle 55 Felder von Hand niederschreiben muss?
Ich möchte letztendlich nur auf eine Handvoll Felder aus der fremden Tabelle verweisen.

Konnte man das verstehen?

Nachtrag: Und wie bekomme ich die Werte in den/die/das VIEW, so dass in den VIEWs automatisch alle Benutzer zu sehen sind, die in der Bugzilla-Tabelle angelegt werden? Geht das überhaupt?

Bin ich mit VIEWs überhaupt auf dem richtigen Pfad?

Nachtrag 2: Ich glaube, VIEWs sind gar nicht das, was ich will, die erzeugen nur eine Momentaufnahme. Wenn ich Daten in den zugrunde liegenden Tabellen ändere, verändern sich die Daten im VIEW nicht mit. Das kann ich nicht brauchen. Wenn bei mir in Bugzilla ein neuer Benutzer angelegt wird, soll der auch sofort in den anderen beiden Applikationen angelegt werden - geht das mit VIEWs? Und wenn nicht, wie ich annehme, wie kann ich das machen? Ich suche sowas wie Soft Links unter Unix.

Danke!
 
Zuletzt bearbeitet von einem Moderator:
Wenn bei mir in Bugzilla ein neuer Benutzer angelegt wird, soll der auch sofort in den anderen beiden Applikationen angelegt werden - geht das mit VIEWs?
Das hört sich für mich nach einer Aufgabe für Stored Procedures an. Der Sinn von Views hat sich mir auch noch nicht gänzlich erschlossen, erstrecht nicht, wenn es stimmt, dass der Index einer Tabelle in Views nicht benutzt wird. Das würde die Abfrage unter Umständen sogar langsamer machen als auf der indizierten Tabelle.
 
Dann gucke ich mir mal Stored Procedures an...

...oder muss ich jetzt antworten "stored was??? Hä??? Kenn ich nicht !!! Hat jemand ne andere Lösung?"

SCNR und danke!
 
Ohne jetzt alles zu Stored Procedures gelesen zu haben...
Ich versteh das so, dass ich damit eine Funktion schreiben kann, die dann von verschiedenen Stellen aus aufgerufen wird.
Ich möchte aber eine Verknüpfung der Tabellen der verschiedenen Datenbanken nur in den Datenbanken selbst festlegen, ohne dass ich dadurch die Software ändern muss. Ich kenne mich nicht gut genug mit den dreien aus, um sämtliche Datenbank-Abfragen auf die Benutzertabellen umzuschreiben.

Oder hab ich das falsch verstanden mit den stored procedures?

Ich kuckel jetzt mal nach SingleSignOn...
Das ist auch nicht das, was ich will. Da muss man ja die Software auch entsprechend anpassen, dass das funktioniert.

Ich kann keine Änderung an den Applikationen machen.
Ich will aber, dass z.B. eGroupWare sich die Benutzerdaten aus der Bugzilla-Datenbank holt und dabei nicht weiß, dass er nicht in seiner eigenen Tabelle ist. So ähnlich wie bei Views.
 
Ja, aber das soll gehen, ohne dass ich eGroupWare beibringen muss, dass es sich die Daten woanders holen soll.
Ich möchte die Applikationen wie gesagt nicht ändern, nur dass wenn eGroupWare auf seine egw_account zugreift, dass es dabei z.B. bei der Spalte account_id nicht die Daten aus der eGW-Tabelle bekommt, sondern dass es dann effektiv auf die Spalte userid aus der Tabelle profiles der Datenbank bugs von Bugzilla zugreift. Also sowas wie ein Link von egroupware.egw_account.account_id auf bugs.profiles.userid (und mehr Links für andere Felder). Felder, die es aber in der Bugzilla-Tabelle nicht gibt, sollen weiterhin über egw_account ansprechbar sein.
 
Nein.

Ich glaube auch, dass es keine geben wird. Man kann zwar wohl Links auf ganze Tabellen setzen, aber eben nicht auf einzelne Spalten einer Tabelle.
Ich geb das Projekt fürs Erste mal auf, vielleicht sind die drei Applikationen ja so gut programmiert, dass man leicht Änderungen machen kann, indem man sich teilweise Daten von anderen Tabellen (Benutzername/Passwort/Realname) holt.

Aber danke für die Tipps.
 
Ja, das mit den Links auf Tabellen hab ich auch gesehen.

Aber mit nem View der jedesmal neu erzeugt wird und einigen JOINS so wie du es anfangs gedacht hast, sollte das doch möglich sein. Sicher nichts für einen Nachmittag, aber möglich sollte es sein, wenn die Tabellen alle in einer Datenbank sind.
 
Sind alle in unterschiedlichen Datenbanken der selben MySQL-Instanz.

Ich komme vielleicht ein andermal darauf zurück :-)
 
Ich habe jetzt etwas gefunden, was funktionieren könnte: CAS | Central Authentication Service

Es scheint sogar so, dass meine Produkte, die ich unter Single Sign On vereinen will, nämlich Bugzilla, phpBB3 und eGroupWare alle "CAS ready" sind.

Hat schonmal jemand damit gearbeitet und hat ein paar Links zu Seiten, wie das ganze funktioniert? Durch die Seiten oben komme ich noch nicht so recht damit klar, vielleicht sollte ich das einfach mal ausprobieren...aber dazu bräuchte ich erst noch Tomcat und damit hab ich bisher auch noch nichts gemacht.

Bin für alle Infos dankbar,
-Efchen
 

Neueste Beiträge

Zurück
Oben