Information ausblenden
Willkommen im Forum für alle Datenbanken! Registriere Dich kostenlos und diskutiere über DBs wie Mysql, MariaDB, Oracle, Sql-Server, Postgres, Access uvm

Von anderem PC auf DB zugreifen (Netzwerk)

Dieses Thema im Forum "Microsoft SQL Server" wurde erstellt von keith91, 29 Oktober 2013.

  1. keith91

    keith91 Benutzer

    hi,
    mir fällt nichts mehr ein, was ich sonst noch versuchen könnte...
    folgendes szenario:
    ich habe einen rechner, auf diesem läuft eine virtuelle maschine (also quasi ein eigener rechner). auf dieser virtuellen maschine ist der sql server 2008 r2 installiert und von diesem pc aus werden daten auf dem sql server in einer datenbank gespeichert.

    jetzt will ich aber von dem eigentlichen rechner hier auf diese datenbank zugreifen. was muss ich dafür tun?

    ich habe auf beiden rechnern die ports 1433 freigeschalten.
    zunächst habe ich die datenbank mit dem sql manager lite for sql server die db verwaltet, habe dann aber gelesen dass das microsoft sql management studio 2008 wohl mehr optionen bietet, also bin ich umgestiegen, aber weiter komme ich damit auch nicht...

    was komisch ist, ich kann die rechner nur in eine richtung anpingen, also nur von rechner1 auf die virtuelle maschine(rechner2), andersrum geht nicht.

    grüße
     
  2. akretschmer

    akretschmer Datenbank-Guru

    1433 und 1434 TCP und UDP. Soweit ich weiß, und zwar auf dem Server. Auf dem Client ist das völlig egal, es sei denn, du hast eine strunzdumme Tischbrandschutzmauer, die ausgehend filtert...
     
  3. keith91

    keith91 Benutzer

    ja ich hatte es halt mal vorsorglich für beide rechner gemacht.
    und ich hatte auch schon den 1433 tcp und udp port für den server
    sowie
    den 1434 tcp und udp port für den server-browser freigegeben... allerdings bringt das auch nichts...
     
  4. akretschmer

    akretschmer Datenbank-Guru


    http://technet.microsoft.com/de-de/library/cc646023.aspx
     
  5. keith91

    keith91 Benutzer

    ok, selbst wenn ich die firewalls ganz ausschalte, klappt es nicht.
    ich weiß ja nichtmal ob ich sonst alles richtig mache...
    auf manchen seiten habe ich gelesen, dass man eine ODBC-Datenquelle hinzufügen muss, stimmt das?

    in excel (vba) kommt immer die meldung "sql server existiert nicht oder zugriff verweigert"
     
  6. akretschmer

    akretschmer Datenbank-Guru


    Vermutlich. http://www.connectionstrings.com/
     
  7. ukulele

    ukulele Datenbank-Guru

    Bei ausgeschalteter Firewall bzw. erlaubtem IPv4 Ping müssen beide Rechner sich gegenseitig pingen können sonst hast du ein ganz anderes Problem. Ansonsten hier mal die Firewall Regeln als .bat Datei:

    Code:
    @echo =========  Ports des SQL-Servers  ===================
    @echo Aktivieren von Port 1433 für die SQLServer-Standardinstanz
    netsh firewall set portopening TCP 1433 "SQLServer"
    @echo Aktivieren von Port 1434 für dedizierte Administratorverbindungen
    netsh firewall set portopening TCP 1434 "SQL-Administratorverbindung"
    @echo Aktivieren von Port 4022 für den konventionellen SQL Server-Service Broker 
    netsh firewall set portopening TCP 4022 "SQL-Service Broker"
    @echo Aktivieren von Port 135 für Transact-SQL-Debugger/RPC
    netsh firewall set portopening TCP 135 "SQL-Debugger/RPC"
    @echo =========  Ports für Analysedienste  ==============
    @echo Aktivieren von Port 2383 für die SSAS-Standardinstanz
    netsh firewall set portopening TCP 2383 "Analysedienste"
    @echo Aktivieren von Port 2382 für den SQL Server-Browserdienst
    netsh firewall set portopening TCP 2382 "SQL-Browser"
    @echo =========  Verschiedene Anwendungen  ==============
    @echo Aktivieren von Port 80 für HTTP
    netsh firewall set portopening TCP 80 "HTTP"
    @echo Aktivieren von Port 443 für SSL
    netsh firewall set portopening TCP 443 "SSL"
    @echo Aktivieren des Ports für die Schaltfläche 'Durchsuchen' des SQL Server-Browserdiensts
    netsh firewall set portopening UDP 1434 "SQL-Browser"
    @echo Zulassen von Multicast-/Broadcastantwort auf UDP (Aufzählung der Browserdienste OK)
    netsh firewall set multicastbroadcastresponse ENABLE 
    Man sollte aber zum testen erstmal ohne Firewall arbeiten und im Anschluss nur die Sachen öffnen die auch genutzt werden.

    Manchmal muss Port 1433 auch erst fest im SQL Server eingetragen werden:
     
  8. keith91

    keith91 Benutzer

    alles anpingen klappt zumindest wenn die firewalls auf beiden rechnern ausgeschaltet sind.
    wenn ich versuche eine odbc verbindung einzurichten (Datei-DNS) kommt wenn ich die sql-authentifizierung eingebe (User-ID und Passwort) die Meldung:
    Fehler bei der Verbindung:
    SQLState:'42000'
    SQL Server-Fehler: 18488
    Fehler bei der Anmeldung für den Benutzer 'XXX'. Ursache: Das Kennwort des Kontos muss geändert werden.
     
  9. ukulele

    ukulele Datenbank-Guru

    Läßt dein SQL Server beide Authentifiezierungsmodi zu oder nur Windows-Auth? Wie meldest du dich auf dem Server lokal an?
     
  10. keith91

    keith91 Benutzer

    ok, ich glaube ich bin gerade ein stück weiter gekommen :D
    ich habe mich jetzt bei meinem sql server via sql-authentifizierung angemeldet (dort musste ich dann ein neues passwort eingeben weil das alte abgelaufen war).
    danach hat auch die odbc verbindung auf dem anderen rechner auf den sql server funktioniert und ich habe jetzt bei "datei-dsn" eine neue dateidatenquelle drin.

    aber wie kann ich jetzt die sql datenbank auslesen lassen? funktioniert das nicht mit dem gleichen befehl wie auf dem rechner, auf dem sich der server befindet?
    gruß
     
  11. ukulele

    ukulele Datenbank-Guru

    Also ein Programm wäre nun in der Lage über deine ODBC Verbindung Daten abzurufen. Mit Excel sollte das nachvollziehbar sein. Ich weis nicht genau von was für einem "Befehl" du sprichst. Wenn du TSQL Code meinst, der muss auch von einem Program ausgeführt werden, z.B. SQL Server Management Studio. Das läuft allerdings nicht über ODBC sondern kommuniziert direkt mit der SQL DB.
     
  12. keith91

    keith91 Benutzer

    hm ja ich meinte über excel vba
    auf dem rechner auf dem sich der server befindet funktioniert dass bei mir so:

    Public Sub auslesen()
    On Error GoTo Fehler
    Dim adoRS As Object
    Dim adoConn As Object
    Dim strConn As String
    Dim sQuery As String

    Set adoRS = CreateObject("ADODB.recordset")
    Set adoConn = CreateObject("ADODB.Connection")

    strConn = "PROVIDER=SQLOLEDB;DATA SOURCE=TEST_PC\SQLEXPRESS;" & _
    "INITIAL CATALOG=test_db;INTEGRATED SECURITY=sspi;"

    adoConn.Open strConn

    sQuery = "SELECT * FROM emi_messung_std WHERE MONTH(DatumZeit)=10"
    adoRS.Open sQuery, adoConn
    Tabelle1.Range("A1").CopyFromRecordset adoRS
    'adoRS.Close

    adoConn.Close
    Set adoRS = Nothing
    Set adoConn = Nothing

    GoTo n10 'Springt zum Ende der Funktion

    Fehler:
    MsgBox Err.Number & " " & Err.Description

    n10:

    End Sub
     
  13. ukulele

    ukulele Datenbank-Guru

    Damit kann ich leider nicht helfen aber es empfiehlt sich das SQL Query zunächst mal im SQL Studio zu testen oder nur ein SELECT * FROM tabelle auszuführen. Das sollte auf jedenfall gehen.
     
  14. enseth439

    enseth439 Aktiver Benutzer

    Gibt's es immer noch die Fehlermeldung "sql server existiert nicht oder zugriff verweigert" von Vba?
     
    Zuletzt bearbeitet: 30 Oktober 2013
  15. keith91

    keith91 Benutzer

    ja genau, diese meldung kommt wenn ich den oben geschriebenen code ausführe...

    ja, Datei-DSN... ist das falsch?
     
Die Seite wird geladen...

Diese Seite empfehlen

  1. Diese Seite verwendet Cookies. Wenn du dich weiterhin auf dieser Seite aufhältst, akzeptierst du unseren Einsatz von Cookies.
    Information ausblenden