Ankündigung

Einklappen
Keine Ankündigung bisher.

PHP und MySQL Views

Einklappen
X
 
  • Filter
  • Zeit
  • Anzeigen
Alles löschen
neue Beiträge

  • sigune
    antwortet
    Danke!

    Einen Kommentar schreiben:


  • Nils Dornblut
    antwortet
    Hallo sigune,

    übergreifend auf mehrere Datenbanken zugreifen geht so nicht direkt aufgrund des Sicherheitskonzepts. Es ist nur innerhalb PHPmyAdmin möglich beispielsweise Tabellen von einer in die andere Datenbank zu kopieren. Ansonsten bräuchte es einen eigenen MySQL-Server auf einem Managed Server oder einer JiffyBox.

    Mit freundlichen Grüßen

    Nils Dornblut

    Einen Kommentar schreiben:


  • sigune
    antwortet
    Ich brauche die View über mehrere Datenbanken, um Einträge aus der einen Datenbank in die andere zu übertragen. Innerhalb einer Datenbank ginge es ja auch ohne Views, direkt.
    Ok, wenn es nicht geht, dann geht es nicht.

    Einen Kommentar schreiben:


  • Nico
    antwortet
    Zitat von sigune Beitrag anzeigen
    Man kann ja offenbar auch den DEFINER festlegen. Sollte ich probieren, dort "[email protected]" anzugeben? (Das ist der DB-User, über den PHP auf die Tabelle zugreift, in der die Views liegen, oder muß es der DB-User sein für die Datenbank, auf die die Views referenzieren?)
    Eine View über mehrere Datenbanken? Das funktioniert bei D)F nicht. Ein DB-User hat immer nur zugriff auf seine eigene DB.
    Dein PHPMyAdmin User hat mehr Rechte, aber ich glaube nicht das du den in einem Script nutzen kannst.

    MfG

    Einen Kommentar schreiben:


  • sigune
    antwortet
    Danke!
    Zitat von Nico Beitrag anzeigen
    Hast du mal versucht die View, ohne SQL SECURITY INVOKER anzulegen?
    SQL SECURITY DEFINER ist nämlich der default wert. Meine so angelegten Views funktionieren zumindest.
    Ja, so habe ich das zuvor immer gemacht, aber mit der Folge, daß die Views selbst im PHPMyAdmin nach ein paar Minuten wieder verschwinden, d.h. ich mußte sie immer wieder neu anlegen, bevor ich sie benutzen konnte. Das ist bei SQL SECURITY INVOKER nicht mehr der Fall, die Views sind jetzt immerhin innerhalb des MyAdmin stabil.

    Man kann ja offenbar auch den DEFINER festlegen. Sollte ich probieren, dort "[email protected]" anzugeben? (Das ist der DB-User, über den PHP auf die Tabelle zugreift, in der die Views liegen, oder muß es der DB-User sein für die Datenbank, auf die die Views referenzieren?)

    Gruß
    Sigune

    Einen Kommentar schreiben:


  • Nico
    antwortet
    Moin,
    Zitat von sigune Beitrag anzeigen
    ... Ein Problem mit den Rechten? ...
    das würde ich vermuten. Ich weiß nicht wie die Rechte des phpmyadmin Users sind, vermutlich nicht die gleichen, die der DB Benutzer hat.
    Hast du mal versucht die View, ohne SQL SECURITY INVOKER anzulegen?
    SQL SECURITY DEFINER ist nämlich der default wert. Meine so angelegten Views funktionieren zumindest.

    MfG
    Zuletzt geändert von Nico; 18.06.2020, 09:43.

    Einen Kommentar schreiben:


  • sigune
    hat ein Thema erstellt PHP und MySQL Views.

    PHP und MySQL Views

    Ich versuche, per PHP auf eine View zuzugreifen, die laut PHPMyAdmin existiert, und erhalte die Fehlermeldung:

    View '(null).(null)' references invalid table(s) or column(s) or function(s) or definer/invoker of view lack rights to use them

    Erstellt wurde die View in PHPMyAdmin mit dem Befehl

    CREATE OR REPLACE SQL SECURITY INVOKER VIEW view_autorenkorpora AS SELECT * FROM [DB].ldm_autorenkorpora

    Der Zugriff per PHP nach dem Muster
    Code:
    $querystr = "INSERT INTO ldm_autorenkorpora SELECT r.* from view_autorenkorpora r LEFT JOIN ldm_autorenkorpora s ON s.KID=r.KID WHERE s.KID IS NULL AND r.KID=$wkli";
    $res = mysqli_query($db2,$querystr);
    scheitert mit obiger Meldung.

    Der INSERT-Befehl an sich ist fehlerfrei; wenn ich ihn in PHPMyAdmin ausführe, tut er, was er soll.

    Woran könnte das liegen? Ein Bug? Ein Problem mit den Rechten? An der Rechtevergabe kann ich aber im Managed Hosting vermutlich nichts beeinflussen?

    Grüße
    Sigune
    Zuletzt geändert von sigune; 18.06.2020, 01:11.
Lädt...
X