Mathias: Datenbankzugriff via ODBC auf einem fremden Rechner

Hallo !

Ist es möglich mit ASP via ODBC auf eine Datenbank zuzugreifen, die nicht auf dem gleichen Rechner liegt, wie der Webserver ?
Ich habe es mit

strconn = "driver={Microsoft Access Driver};;uid=;pwd=;_
database=\Rechner\ODBCDatenbank"

versucht, aber leider keinen Erfolg gehabt !
Kann mir jemand weiterhelfen - das wäre supernett !

Gruß
Mathias

  1. Ist es möglich mit ASP via ODBC auf eine Datenbank zuzugreifen, die nicht auf dem gleichen Rechner liegt, wie der Webserver ?
    Ich habe es mit

    Hi

    wenn du auf dem Rechner auf dem das ASP-Script läuft ne
    SYSTEM-DSN anlegst dann geht auf jedenfall , es ist
    allerdings zu beachten das bei Access-Datenbanken nicht
    mehrere Web-Server gleichzeit auf eine MDB zugreifen
    können , dafür brauchste dann schon nen SQL-Server.

    gruss
    Jens

    1. Ist es möglich mit ASP via ODBC auf eine Datenbank zuzugreifen, die nicht auf dem gleichen Rechner liegt, wie der Webserver ?

      mit den Standardeinstellungen nicht, da ASP ADO mit Systemrechten ausführt und das System nun mal keine Netzwerkrechte hat.

      Lösung: System in eine Gruppe einfügen, die Netzwerkrechte hat. (Auf einem Internetserver allerdings aus Sicherheitsgründen nicht zu empfehlen)

      wenn du auf dem Rechner auf dem das ASP-Script läuft ne
      SYSTEM-DSN anlegst dann geht auf jedenfall , es ist
      allerdings zu beachten das bei Access-Datenbanken nicht
      mehrere Web-Server gleichzeit auf eine MDB zugreifen
      können , dafür brauchste dann schon nen SQL-Server.

      Auch mit einer System-DSN geht das nicht (siehe Systemrechte oben).
      Aber wenn das korrekt eingerichtet ist, können sicherlich mehrere Webserver, die für Access auch nur eine Verbindung darstellen, gleichzeitig auf die MDB zugreifen. Wenn das nicht ginge, könnte auch immer nur 1 User gleichzeitig per ADO auf eine Access-DB gehen.

      Aber ein SQL-Server ist sicherlich ab einer gewissen Zugriffszahl erforderlich und auch ratsam.

      Tschau, Stefan

      1. Hallo zusammen

        wenn du auf dem Rechner auf dem das ASP-Script läuft ne
        SYSTEM-DSN anlegst dann geht auf jedenfall , es ist
        allerdings zu beachten das bei Access-Datenbanken nicht
        mehrere Web-Server gleichzeit auf eine MDB zugreifen
        können , dafür brauchste dann schon nen SQL-Server.

        Auch mit einer System-DSN geht das nicht (siehe Systemrechte oben).
        Aber wenn das korrekt eingerichtet ist, können sicherlich mehrere Webserver, die für Access auch nur eine Verbindung darstellen, gleichzeitig auf die MDB zugreifen. Wenn das nicht ginge, könnte auch immer nur 1 User gleichzeitig per ADO auf eine Access-DB gehen.

        Falls man dann doch einmal ein SQL-Server anstelle der Access-DB einsetzt, kann man über eine System-Datasource auf den entfernten SQL-Server zugreifen. Dazu muss jedoch als Netzwerkprotokoll (für den SQL-Server und die Datasource) das TCP/IP-Protkoll anstelle von NamedPipes eingerichtet werden.

        Grüsse
        Tom

        1. Falls man dann doch einmal ein SQL-Server anstelle der Access-DB einsetzt, kann man über eine System-Datasource auf den entfernten SQL-Server zugreifen. Dazu muss jedoch als Netzwerkprotokoll (für den SQL-Server und die Datasource) das TCP/IP-Protkoll anstelle von NamedPipes eingerichtet werden.

          Hallo,

          man braucht aber keine System-DSN, um auf den SQLServer zugreifen zu können.
          Eine Datei-DSN mit dem folgenden Schema tuts auch:

          [ODBC]
          DRIVER=SQL Server
          TranslationName=Yes
          WSID=xxx
          APP=Betriebssystem Microsoft(R) Windows NT(TM)
          SERVER=xxx

          Den Connect instantiiert man dann mit:
          --- Zuweisen der Datenbankverbindung
          Set conn = Server.CreateObject("ADODB.Connection")

          ' -- Zuweisen des Pfads der Datei DBConn.dsn
            DSNFilePath = "filedsn=" & Server.MapPath ("./") & "\DB_Conn.dsn"

          ' --- Zuweisen des Pfads der Datenbank verwaltung.mdb
            DBPath = "DATABASE=DBName"

          ' --- Öffnen der Datenbankverbindung
            conn.open DSNFilePath & ";" & DBPath & ";UID=Test;PWD=Test"

          Tschau, Stefan

      2. Auch mit einer System-DSN geht das nicht (siehe Systemrechte oben).
        Aber wenn das korrekt eingerichtet ist, können sicherlich mehrere Webserver, die für Access auch nur eine Verbindung darstellen, gleichzeitig auf die MDB zugreifen. Wenn das nicht ginge, könnte auch immer nur 1 User gleichzeitig per ADO auf eine Access-DB gehen.

        Also mit der System-DSN hab ich 0 Probleme.. bin
        allerdings auch mit Administrator-Rechten auf den
        Servern eingeloggt.. :)
        Mehr wie ein Server auf eine Acces DB geht so aber definitiv nicht.. da kommt dann immer ne Meldung von
        wegen "Ressource in use" oder so.. während es auf dem
        SQL absolut problemlos funzt.

        gruss
        Jens