Ankündigung

Einklappen
Keine Ankündigung bisher.

PHP und MySQL Views

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

    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, 02:11.

    #2
    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, 10:43.

    Kommentar


      #3
      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

      Kommentar


        #4
        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

        Kommentar


          #5
          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.

          Kommentar


            #6
            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
            Blog - Facebook - Twitter
            Communitybetreiber: domainfactory GmbH
            Impressum / Pflichtangaben

            Kommentar


              #7
              Danke!

              Kommentar


                #8
                Gibt es inzwischen auch Einschränkungen im phpMyAdmin? Denn jetzt kann ich auch dort keine VIEW mehr anlegen, die von einer Datenbank auf eine andere Datenbank verweist.

                Kommentar


                  #9
                  Zitat von sigune Beitrag anzeigen
                  Gibt es inzwischen auch Einschränkungen im phpMyAdmin? Denn jetzt kann ich auch dort keine VIEW mehr anlegen, die von einer Datenbank auf eine andere Datenbank verweist.
                  Ging dies bisher in irgendeiner Weise? Nach meinem Verständnis sollte das auch bisher nicht funktioniert haben, wie oben beschrieben.

                  Mit freundlichen Grüßen

                  Nils Dornblut
                  Blog - Facebook - Twitter
                  Communitybetreiber: domainfactory GmbH
                  Impressum / Pflichtangaben

                  Kommentar


                    #10
                    Ja, das ging jahrelang. Ich habe solche Operationen mehrmals pro Monat durchgeführt, und nun funktionieren sie auf einmal nicht mehr.

                    Aber egal, ich habe mir eine Umleitung gebaut, die zu funktionieren scheint.

                    Mit freundlichem Grüßen
                    Sigune

                    Kommentar


                      #11
                      Hallo Sigune,

                      falls es entscheidend ist, bitte über das Kundenmenü an die Technik wenden und beschreiben was Sie bisher gemacht haben. Gerne können wir dann einmal schauen.

                      Mit freundlichen Grüßen

                      Nils Dornblut
                      Blog - Facebook - Twitter
                      Communitybetreiber: domainfactory GmbH
                      Impressum / Pflichtangaben

                      Kommentar

                      Lädt...
                      X