Announcement

Collapse
No announcement yet.

Sicht auf zweite Instanz

Collapse
X
  • Filter
  • Time
  • Show
Clear All
new posts

  • Sicht auf zweite Instanz

    Hallo Zusammen !

    Ich bin relativ neu in SQL unterwegs und habe jetzt die Anforderung Daten aus einer anderen Instanz abzufragen.
    Dabei scheitere ich aber kläglich, auch nach intensiver Recherche...

    Ein SQL-Server 2014 mit zwei Instanzen, gemischte Anmeldung, gleiches sa-PW, Firewall aus.

    Lt. meiner Recherche sollte der Syntax so lauten:

    SELECT *
    FROM Instanz2.dbo.Datenbank.Tabelle

    Das führt aber zu der Fehlermeldung, dass der Server (!) "Instanz2" nicht in 'sys.servers' gefunden wurde.

    Stelle ich den Servernamen voran:

    SELECT *
    FROM SQLServer\Instanz2.dbo.Datenbank.Tabelle

    erhalte ich Fehler in der Nähe von "".

    Mein Versuch, einen Verbindungsserver einzurichten, um die erste Fehlermeldung zu umgehen, schlägt aber auch fehl, über Management-Studio
    mit Sicherheitsoption "in folgendem Sicherheitskontext verwendet (sa mit PW)" Remotezugriff ist aktiviert, erhalte ich beim Abspeichern den Fehler 53 Anmeldungstimeout.
    (Alle anderen Sicherheitsoptionen funktionierten auch nicht)

    Mit sp_addlinkedserver erhate ich die Meldung "erfolgreich ausgeführt" der Eintrag ist in 'sys.servers' auch da.
    Führe ich meine Abfrage jetzt durch, erhalte ich bei der Abfrage den Fehler 53.....

    Ich hoffe, ich konnte mein Anliegen verständlich machen, wahrscheinlich irgendeine Option die ich nicht als relevant erkannt habe.
    Nach 3 Tagen Internetrecherche, hoffe ich nun, hier kompetente Hilfe zu finden, Danke schonmal !

    Gruss

    Frank123

  • #2
    kenn mich da nicht wirklich aus bei MS SQL Server.
    Vielleicht musst Du den Server irgendwo anmelden / bekannt machen.
    Beispiele:
    https://technet.microsoft.com/en-us/...ql.105%29.aspx

    Oder es ist ein bloßes Zugriffsrechte Problem und Du musst mit einem geeigneten oder extra berechtigen User zugreifen.
    Gruß, defo

    Comment


    • #3
      Hallo,

      der Weg via "Verbindungsserver" ist schon der korrekte. Gib beim Anlegen des Verbindungsservers Benutzername und Passwort an, damit hatte ich (bisher) noch nie Probleme.

      Voraussetzungen dafür:
      * der andere Server ist vom Netzwerk aus erreichbar
      * Firewall ist für TCP 1433 (Standard SQL Server) od. falls anders konfiguriert auch offen
      * im anderen SQL Server ist als Authentifizierungmethode auch Passwort eingestellt -- nur Windows-Auth reicht nicht

      mfG Gü
      "Any fool can write code that a computer can understand. Good programmers write code that humans can understand". - Martin Fowler

      Comment


      • #4
        Hallo,

        erstmal danke für die Antworten.

        @defo:
        Diesen Link hatte ich auch schon gefunden, leider hat es nicht funktioniert.

        @gfoidl:
        Es ist kein anderer Server, nur eine andere Instanz, Firewall ist aus und gemischter Modus ist eingestellt, hatte ich Eingangs schon erwähnt.

        Keiner mehr eine Idee ?

        Gruss

        Frank123

        Comment


        • #5
          Falls der SQL Browser Dienst nicht läuft starte den und versuch erneut im Management-Studio einen Verbindungsserver einzurichten.

          SELECT *
          FROM SQLServer\Instanz2.dbo.Datenbank.Tabelle

          erhalte ich Fehler in der Nähe von "".
          Müßtest du, wenn es der richtige Verbindungserver Name ist, eher so [SQLServer\Instanz2].dbo.Datenbank.Tabelle schreiben.
          Zuletzt editiert von Ralf Jansen; 09.08.2017, 20:07.

          Comment


          • #6
            Nur mal so am Rande, kommst Du auf die 2. Instanz drauf, wenn Du Dich direkt gegen diese anmeldest?
            mit
            - Irgendein SQL Tool Deiner Wahl?
            - kleines Beispielprogramm?
            Gruß, defo

            Comment


            • #7
              @ Ralf Jansen
              Browser-Dienst läuft und der Syntax wird beim Ausführen automatisch auf die Var1ante ohne eckige Klammer korrigiert.

              @defo
              Ja, das geht in allen Varianten einwandfrei... VB,Access,Exel, ODBC.....

              Gruss

              Frank123

              Comment


              • #8
                Habe jetzt mal noch ein wenig getestet und habe den Verbindungsserver jetzt hinbekommen.

                Der Zugriff funktioniert aber immer noch nicht, habe jetzt mal durchprobiert (wie gesagt, gleicher SQL-Server, nur andere Instanz):

                "FROM Datenbank.Tabelle" führt zu
                Ungültiger Objektname 'Datenbank.Tabelle' (war eigentlich klar!)

                "FROM Instanz2.dbo.Datenbank.Tabelle" führt zu
                Server 'Instanz2' konnte in 'sys.servers' nicht gefunden werden. (auch klar!)

                "FROM [SQLServer\Instanz2].dbo.Datenbank.Tabelle" führt zu
                Der OLE DB-Anbieter 'SQLNCLI11' für den Verbindungsserver 'SQLServer\Instanz2' enthält die "dbo"."Datenbank"."Tabelle"-Tabelle nicht.

                "FROM SQLServer\Instanz2.dbo.Datenbank.Tabelle" führt zu
                Falsche Syntax in der Nähe von '\'.

                Noch jemand eine Idee dazu ?

                Danke schonmal...!

                Gruss

                Frank123

                Comment


                • #9
                  Also das klingt ein bisschen nach falschen Anmeldedaten > mangelnde SQL Rechte
                  Ich muss deutlich sagen, ich kenne das für MSSQL nicht asu der Praxis. Die Prinzien dürften aber identisch sein.
                  Ein trusted Login schließe ich mal aus (warum auch immer), es müsste also in der Verbindungsserverdefinition mit SQL Usern gearbeitet werden. Der SQL User, der sich auf der 2. Instanz anmeldet, müsste also ein dort defnierter SQL User mit Zugriffsrechten auf die gewünschten Schemata / Tabellen sein.
                  Ist das gegeben?
                  Gruß, defo

                  Comment


                  • #10
                    Der Aufbau des Namens ist Server.Datenbank.Schema.Tabelle

                    Du scheinst in deinen Versuchen immer Datenbank und Schema zu vertauschen.
                    Sollte eher so [Server\Instanz].Datenbank.dbo.Tabelle aussehen.

                    Comment


                    • #11
                      ....und genau das war der Fehler!

                      Beim ersten Eintrag den recherchiert hatte stand das Schema vor der Datenbank, nicht vor der Tabelle.
                      Da ich dann immer wieder Copy/Paste gemacht habe, ist mir das nicht aufgefallen... grrrr!

                      Danke @ Ralf Jansen für die Lösung und Danke an alle anderen, die sich mit meinem "Problem" auseinandergesetzt haben.

                      Gruss

                      Frank123

                      Comment

                      Working...
                      X