sandro: DB_Zugriff per ASP - Access denied!

Hallo allerseits!

Ich habe eine kleine mysql-DB und eine ASP-Site, über die ich auf die DB zugreifen will.
Die DB-Verbindung sollte klappen, aber sobald ich per MySQL auf die DB zugreifen will, kommt folgende Meldung:

---------

Microsoft OLE DB Provider for ODBC Drivers-Fehler '80004005'

[MySQL][ODBC 3.51 Driver][mysqld-4.0.5-beta-max-nt]Access denied >>for user: '@192.168.2.37' to database 'db_absenzen'

----------

Die Berechtigungen sollte ich alledings haben, ich habe dies mit unserem Administrator abgeklärt.

Weiss jemand, an was es noch liegen könnnte?

Mein ASP-Code sieht folgendermassen aus:
---------------
<%
  Set db = CreateObject("ADODB.Connection")
  db.Open("dsn=AbsenzDB")

Set rst = Server.CreateObject("ADODB.Recordset")
  rst.Open "SELECT wert FROM tbl_personen WHERE person='sandro mueller'", db

If rst("wert")= "1" Then
      response.write("<input type='checkbox' value='1' name='sandro' checked>")
  End If
  %>

--------

Vielleicht weiss ja jemand, an was es liegen könnte, danke,

Greetz,Sandro

  1. Hallo alleine!

    Die Berechtigungen sollte ich alledings haben, ich habe dies mit unserem Administrator abgeklärt.

    Das ist schön! Aber weiss das der Mysql-Server?
    Was ich damit sagen will: der Server erwartet eine Authentifizierung (Username/Kennwort) - hast du diese Infos von deinem Admin?

    Gruss Sven

    1. danke!

      ja ich habe das auch gewusst, allerdings habe ich sehr wenig erfahrung mit ASP und MySQL, das Passwort und der Username habe ich.

      Kannst du mir sagen, wie ich das richtig in den Code einfügen kann?

      1. Halihallo sandro

        ja ich habe das auch gewusst, allerdings habe ich sehr wenig erfahrung mit ASP und MySQL, das Passwort und der Username habe ich.

        http://php.weblogs.com/adodb_tutorial
        http://www.experts-exchange.com/Web/Web_Languages/ASP/Q_20157423.html (ganz unten)

        oder du benutzt eine ODBC-dsn (was ich bei deinem Beispiel stark vermute ;)), dann musst
        du die Logindaten über Systemsteuerung-ODBC einstellen.

        Viele Grüsse

        Philipp

        1. Danke!

          oder du benutzt eine ODBC-dsn (was ich bei deinem Beispiel stark vermute ;)), dann musst
          du die Logindaten über Systemsteuerung-ODBC einstellen.

          Ja ich benutze eine MyODBC-dsn, und diese habe ich in der Systemsteuerung/Verwaltung angepasst. Das PW und der Username ist sogar gleich wie das PW und der Username des MySQL-Servers.

          Ich weiss nicht an was es liegen könnte...
          muss ich das PW und der Username des MyODBC-Treibers (DSN) im ASP-Code angeben?

          Greetzliz,
          Sandrod

          1. Halihallo sandro

            Ja ich benutze eine MyODBC-dsn, und diese habe ich in der Systemsteuerung/Verwaltung angepasst. Das PW und der Username ist sogar gleich wie das PW und der Username des MySQL-Servers.

            Das PW und der Username _muss_ sogar gleich wie das PW und der Username des MySQL-Servers sein :-)

            Ich weiss nicht an was es liegen könnte...
            muss ich das PW und der Username des MyODBC-Treibers (DSN) im ASP-Code angeben?

            Nein, den Connect wird vom MyODBC Treiber unternommen und dieser sorgt dafür, dass MySQL
            zu den Logindaten kommt. Ich könnte mir nur noch vorstellen, dass dein Host eben nicht
            in MySQL registriert ist (s. das erste Posting von mir).

            Viele Grüsse

            Philipp

            1. So ist das! danke für deine hilfe...

              Ich könnte mir nur noch vorstellen, dass dein Host eben nicht
              in MySQL registriert ist (s. das erste Posting von mir).

              ...aber wie kann ich mein Host in MySQL registrieren?kann ich das direkt im WinMySQLadmin machen?

              1. Hallo

                ...aber wie kann ich mein Host in MySQL registrieren?kann ich das direkt im WinMySQLadmin machen?

                Moment: WinMySqlAdmin funktioniert bei dir? Das heißt du kannst eine Connection zum mysql-Server aufbauen?

                Gruss Sven

                1. hallo!

                  hmm...ich habe langsam ein riesen Duchreinander!

                  Also, ich erkläre mal, wie es ist:

                  Ich habe auf meinem lokalen System den MySQL-Server installiert.

                  Die DB habe ich dann aus dem MySQL-Verzeichnis kopiert und auf einen Firmen-internen Webserver eingefügt.

                  Auf diesem Webserver liegt auch das File, und auf diesem Webserver ist auch der MyODBC-Treiber installiert.
                  Also liegt die DB (der ganze Ordner mit tbl_personen,tbl_personen.frm, tbl_personen.MYD und tbl_personen.MYI),
                  das Content.ASP-File auf dem Server, auf welchem auch die MYODBC-Treiber installiert sind.
                  Allerdings ist der MySQL-Server auf meinem lokalen System installiert.

                  Kann das so überhaupt funktionieren?
                  Ich bin mir nicht ganz sicher, aber ich könnte mir denken, dass das so gar nicht funktioniert..allerdings verstehe ich nicht ganz, warum es den MYSQL-Server braucht...das ist sicherlich eine ziemlich dumme frage, aber ich habe so ein Durcheinander dass ich langsam nicht mehr denken kann!:-)

                  Sorry für meine Dummheit,
                  Greetz sandro

                  1. hallo Sandro!

                    Nur damit ich es verstehe: der MySql-Server läuft auf deiner Maschine und der Web-Server auf einem anderen Rechner im Netz?

                    Das kann so schon funktionieren - dann muss aber der Webserver (Hostname oder IP-Adresse)die Berechigung haben auf den Datenbankserver zuzugreifen - dies musst du dann auf deinem rechner einstellen.

                    Den MySQL-Server brauchst du, um die DB-Funktionalitäten (Einfügen, Löschen, Ändern, Sortieren etc.) zu nutzen und die Ergebnisse von SQL-Abfragen an verschiedene (per TCP/IP) "angeschlossene" Hosts zu ermöglichen.

                    gruss Sven

                    1. hi!

                      Nur damit ich es verstehe: der MySql-Server läuft auf deiner >>Maschine und der Web-Server auf einem anderen Rechner im Netz?

                      Genau! Allerdings nicht auf dem Internet, sondern auf unserem internen Netz.

                      Das kann so schon funktionieren - dann muss aber der Webserver (Hostname oder IP-Adresse)die Berechigung haben auf den Datenbankserver zuzugreifen - dies musst du dann auf deinem rechner einstellen.

                      Wie kann ich das machen?

                      Kann es also auch funktionieren, wenn ich die DB aus dem mysql-Verzeichnis einfach hinauskopiere und in den Server kopiere?

                      Gruss sandro

                      1. hallo!

                        Genau! Allerdings nicht auf dem Internet, sondern auf unserem internen Netz.

                        Das meinte ich mit Netz - aber das wäre auch egal - ist eben das Prinzip des Internetworking...

                        Suche bei WinPHPAdmin (ich kenne das Tool nicht) nach einer Möglichkeit, die IP (oder Hostname) der zugelassenen Hostrechner einzustellen - oder editiere die Dateien my.cnf oder mysqlaccess.conf "von Hand" - Neustart des DB-Servers ist erforderlich!

                        Kann es also auch funktionieren, wenn ich die DB aus dem mysql-Verzeichnis einfach hinauskopiere und in den Server kopiere?

                        Wenn du mit DB die Datenbankfiles meinst - fdann ist die Antwort: Nein! Du brauchst einen mySQL-Server, um diese datei zu be-/verarbeiten.. natürlich kannst du auch auf dem selben (oder anderen) Rechner wie dem Websever Mysql installieren...

                  2. Halihallo sandro

                    Auf diesem Webserver liegt auch das File, und auf diesem Webserver ist auch der MyODBC-Treiber installiert.

                    Aber kein MySQL?

                    Also liegt die DB (der ganze Ordner mit tbl_personen,tbl_personen.frm, tbl_personen.MYD und tbl_personen.MYI),
                    das Content.ASP-File auf dem Server, auf welchem auch die MYODBC-Treiber installiert sind.
                    Allerdings ist der MySQL-Server auf meinem lokalen System installiert.

                    Der MyODBC-Treiber braucht ein installiertes MySQL-RDBMS. Der Treiber selber ist
                    lediglich ein Layer (Schicht/Abstraktion) zwischen ODBC-Schnittstelle und MySQL
                    Datenbank. Der Layer kann selber, wie Sven geschrieben hat, die DBMS nicht ersetzen, er
                    erfüllt selber keinerlei eigentliche Arbeiten, sondern leitet diese lediglich an MySQL
                    weiter.

                    Kann das so überhaupt funktionieren?

                    Wenn auf dem Webserver ein funktionierendes MySQL-System läuft bzw. zu soeinem Zugang
                    hat (es muss ja nicht zwingend auf demselben Rechner laufen), ja. Hast du jedoch auf dem
                    Webserver _nur_ MyODBC und die Datendateien, kann es nicht funktionieren; da, wie
                    gesagt, der ODBC-Layer keine RDBMS zu ersetzen vermag.

                    Ich bin mir nicht ganz sicher, aber ich könnte mir denken, dass das so gar nicht funktioniert..allerdings verstehe ich nicht ganz, warum es den MYSQL-Server braucht...

                    Warum es den MySQL-Server braucht? - Der ist ja genau für die Modifikation und Selektion
                    der Daten zuständig; der MyODBC-Treiber kann dies nicht. Um also die Datenbank zu
                    benutzen braucht es notgedrungen einen MySQL-Server.

                    Fazit: Du must auch auf dem Webserver ein MySQL-System installieren und die DSN in der
                    Systemsteuerung auf diesen konfigurieren.

                    Ich hoffe, dass ich dir etwas Klarheit verschaffen konnte.

                    Viele Grüsse

                    Philipp

  2. Halihallo sandro


    Microsoft OLE DB Provider for ODBC Drivers-Fehler '80004005'

    [MySQL][ODBC 3.51 Driver][mysqld-4.0.5-beta-max-nt]Access denied >>for user: '@192.168.2.37' to database 'db_absenzen'


    Steht dieser Host '192.168.2.37' in der Datenbank mysql? - Wenn du die richtige Berechtigung zum Connect hast, musst du nicht notgedrungen Berechtigung auf die Tabelle
    haben.

    Sieh dir hierzu auch:
    http://www.mysql.com/doc/en/Secure_GRANT.html
    http://www.mysql.com/doc/en/GRANT.html
    an.

    Viele Grüsse

    Philipp