WinCC SQL-Server Zugriff

Martin3G

Level-1
Beiträge
61
Reaktionspunkte
1
Zuviel Werbung?
-> Hier kostenlos registrieren
Hallo zusammen,

ich moechte ueber den Web Navigator Client auf die sql - Server Datenbank zugreifen.
Ist dies möglichen und welche Einstellungen muessen vorgenommen werden?


Meine versuche blieben ohne Erfolg.
Hatte Einstellungen an der Firewall vorgenommen bzw. auch mal komplett ausgeschalten.
Desweiteren hatte ich Einstellungen im SQL Server-Konfigurations-Manager vorgenommen.

Bekomme das nicht zum laufen, er schmeißt immer den Fehler, in dem Logfile der auszuführenden EXE:
Login failed. The login is from an untrusted domain and cannot be used with windows authentication.

Wie gesagt ist das überhaupt möglich und hätte jemand ein Beispiel oder eine ausführliche Erklärung.
Muss man die EXE unter Windows anmelden wie bei dll?

Wincc 7.4 Sp1 Up3
Server: Windows Server 2012
Client: Win7

mfg Martin3G
 
Ich gehe davon aus, dass du aus der WinCC Datenbank etwas auslesen willst, und die abgefragten Daten dann in der HMI Applikation darstellen möchtest.

Oder möchtest du dich mittels SQL ServerManagement in die Datenbank des Servers einloggen?
 
Ich möchte mittels Web Navigator Client auf den SQL-Server zugreifen und mit Hilfe einer exe, Daten aus dem WinCC Projekt in eine csv-Datei schreiben.
Das ganze Funktioniert auf dem Server sehr gut, es soll jetzt lediglich das ganze noch über den Client gangbar gemacht werden.
Greife über den Internet Explorer zu.
 
Zuletzt bearbeitet:
Hallo Martin,

der Sql Server Browser Dienst läuft schon?
Mist zu Finden in den Diensten.
Ist der Remote Zugriff schon zugelassen? Ist in der Computerverwaltung ganz unten im Dql Server Reiter zu finden.


Mit freundlichen Grüßen Tia
 
Hallo Tia,

wie kann ich das Test ob der Sql Server Browser schon läuft.
Bin blutiger Anfänger ^^.

habe bis jetzt die Ports freigeben und unter dem Sql Server Configuration Manager, Protocols for WinCC bei TCP/IP den freigegebenen Port eingetragen(unter dem Server).

Muss ich den Port beim Client unter Client Protocols Tcp/IP auch eingeben?

Weiter hab ich noch nichts

mfg Martin3G
 
Zuviel Werbung?
-> Hier kostenlos registrieren
Hallo Martin,

einfach in die Verwaltung von Windows gehen unter Dienste dann den SQL Browser suchen dann siehst du eh in der Zeile ob er Gestartet ist oder nicht wenn nein einfach Doppelt anklicken und auf Start Drücken.
Im Linken Fenster Teil sollte es dann unten noch was mit SQL geben hier muss Mann das Verwndete Remote Protokoll noch Freigeben. Habe leider keinen Server Griffbereit aber ich schau mal.


Mit freundlichen Grüßen tia
 
Morgen Tia,

der Sql Browser laeuft und die TCP/IP Protokolle auf dem Server und Client laufen auch bzw. sind Enabled.
Zudem ist der richtige Port den ich in der Firewall eingetragen hab auch in den Protokolls vermerkt.
Trotzdem moechte die Anwendung nicht laufen.

Es kann doch sein das die fremd Anwendung (die EXE zum Beschreiben der csv Datei) nicht ueber den Client laeuft.
Wie kann ich die Verbindung zum Sql-Server ohne Web Client Testen?


mfg Martin3G
 
Zuviel Werbung?
-> Hier kostenlos registrieren
Morgen Tia,

Wie kann ich die Verbindung zum Sql-Server ohne Web Client Testen?

mfg Martin3G

Auf einem Windows PC kannst du über "Systemsteuerung", "Verwaltung", "Datenquellen (ODBC)" den ODBC-Datenquellen-Administrator aufrufen.
Klicke auf den Reiter "System-DSN" und dann "Hinzufügen".
Je nach SQL-Server-Version, werden verschiedene Treiberversionen angezeigt.
Wähle einen SQL-Server-Treiber aus, in meinem Fall ist das "SQL Server Native Client 10.0".
Klicke "Weiter" und definiere einen beliebigen Namen des DSN-Eintrags, z.B. "Test". Beschreibung kannst du leer lassen.
Jetzt musst du SQL-Server und Instanz definieren. Die Notation ist hierbei Servername\Instanzname
Der Server ist der Name oder die IP des Rechners, auf den du zugreifen willst.
Ist es der lokale Rechner selbst, dann kannst du auch als Name "localhost" verwenden.
Die Instanz ist der Name der Express Installation, z,B. WINCCFLEXEXPRESS oder SQLEXPRESS.
Du kannst den Namen der Instanz auf dem Server auch unter "Dienste" finden, in dem du nach Diensten, die mit "SQL Server" beginnen suchst.
Klicke "Weiter" und du wirst nach der Authentifizierung gefragt.
Es gibt 2 Arten, wie man sich am SQL-Server anmelden kann. Windows-Authentifizierung oder SQL-Server-Authentifizierung.
Bei der Windows-Authentifizierung wird dein aktueller Benutzername, mit dem du am PC angemeldet bist, für die Authentifizierung verwendet.
Bei der SQL-Server-Authentifizierung kannst du einen Benutzername und Kennwort verwenden, dass im SQL-Server angelegt wurde.
Wähle erst mal "Windows-Authentifizierung" und klicke "Weiter".
Setze den Haken bei "Die Standarddatenbank ändern auf:" und du solltest eine Liste mit Datenbanknamen erhalten, wenn deine Authentifizierung erfolgreich war.
Wähle "master" oder die gewünschte Datenbank und klicke "Weiter" und dann "Fertig".
Unter der Zusammenfassung klickst du dann auf den Button "Datenquelle testen".
Die Verbindung wird dann getestet und du bekommst entweder ein "TEST ERFOLGREICH ABGESCHLOSSEN" oder eine Fehlerbeschreibung.
 
Hi John,

ich bekomme die Verbindung ueber den Client zum Sql-Server nicht hin.
Er gibt immer den Fehler "untrusted domain and cannot be used with Windows authentication" aus.
Koenntest du mir im groben erklaeren welche Schritte vorher von noeten sind.

- wie den Port in der Firewall freizugeben
- unter Sql Server Configuration Manager das Protocols for WINCC freigeben und den Port eintragen

Muss unter Sql Server Management Studio noch ein Login erstellt werden oder noch eine DataBase?
Sollte nicht auch irgendwo der Client Name bzw. des Ip hinterlegt werden?

Danke schon mal im voraus

mfg Martin3G
 
Hi John,

ich bekomme die Verbindung ueber den Client zum Sql-Server nicht hin.
Er gibt immer den Fehler "untrusted domain and cannot be used with Windows authentication" aus.
Koenntest du mir im groben erklaeren welche Schritte vorher von noeten sind.

- wie den Port in der Firewall freizugeben
- unter Sql Server Configuration Manager das Protocols for WINCC freigeben und den Port eintragen

Muss unter Sql Server Management Studio noch ein Login erstellt werden oder noch eine DataBase?
Sollte nicht auch irgendwo der Client Name bzw. des Ip hinterlegt werden?

Danke schon mal im voraus

mfg Martin3G

Sorry, war ein paar Tage offline.

Der Begriff "SQL-Server" ist manchmal etwas schwammig.
Ein "SQL-Server" ist der Überbegriff des Datenbanksystems und eigentlich nichts anderes als eine Reihe von Diensten (Programme), die auf einem Rechner laufen. Der Rechner kann ein Windows-Server, aber auch ein ganz normaler PC oder ein Notebook sein.
Die Dienste verwalten alle Funktionen der SQL-Datenbanken. Verwaltung der Datenbankdateien, Schreiben, Lesen und Löschen von Datensätze, Indexverwaltung und viele Funktionen mehr.
Der Client kommuniziert nur mit den Diensten des SQL-Servers. Dazu benötigt er eine sogenannte "Connection". Die Verbindung wird vom Client zum Server aufgebaut und nicht umgekehrt.
Deshalb musst du den Client-Rechner und die IP nicht im SQL-Server eintragen.

Für die Connection ist wichtig Name bzw. Name/Instanz des SQL-Servers, Datenbankname, sowie Anmeldename und Kennwort.
Um von einem anderen Rechner auf den SQL-Server zuzugreifen, müssen bestimmte Bedingungen erfüllt sein.
Der SQL-Server-Browser-Dienst muss auf dem SQL-Server gestartet sein.
Der Standard Port für die TCP/IP-Connection ist 1433. Dieser muss auf dem Rechner, auf dem der SQL-Server läuft, freigeschaltet sein.
Aktiviere im SQL-Server Configuration Manager die Clientprotokolle für TCP/IP und trage als Port 1433 ein und zwar bei den SQL Native Clients (32-Bit nicht vergessen), als auch bei der SQL-Server Netzwerkkonfiguration.
Damit sollten zumindest mal die Grundeinstellungen für den Zugriff von einer anderen Maschine erfüllt sein.

Das Anmeldeproblem bzw. die Fehlermeldung ist schwerwiegender.
"Untrusted Domain" deutet daraufhin, dass du versuchst, dich mit einem Domänen-Account anzumelden. Das kann auch ein normaler Account "Maschinenname\Username" sein.
Auf jeden Fall hat dieser Account keine Rechte im SQL-Server. Du musst dem Account, im SQL-Server und auf die Datenbank, die Rechte geben.
Das ist etwas komplexer, als ich hier beschreiben kann. Hilfreich sollte die Doku von Microsoft sein.

https://msdn.microsoft.com/de-de/library/aa337545(v=sql.120).aspx

Prüf mal bitte nach, ob du auf dem SQL-Server (Rechner) mit dem SQL-Server Management Studio draufkommst.
 
Zuviel Werbung?
-> Hier kostenlos registrieren
Hallo,

mit dem Server komme ich ganz normal drauf.
Ich denke das Problem liegt an der Server Domain.
Der Client hat nicht die gleiche Domain wie der Server, deshalb wird keine Verbindung aufgebaut.
Die Verbindung sollte auch ohne Eingabe eines Passwortes geschehen.

Der Zugriff über eine andere Domain ist nicht moeglich oder?

Anlegen einer anderen Domain im Server Manager ist mir auch nicht moeglich, da er die Domain im Netzwerk nicht finden kann.



mfg Martin3G
 
Hallo,

mit dem Server komme ich ganz normal drauf.
Ich denke das Problem liegt an der Server Domain.
Der Client hat nicht die gleiche Domain wie der Server, deshalb wird keine Verbindung aufgebaut.
Die Verbindung sollte auch ohne Eingabe eines Passwortes geschehen.

Der Zugriff über eine andere Domain ist nicht moeglich oder?

Anlegen einer anderen Domain im Server Manager ist mir auch nicht moeglich, da er die Domain im Netzwerk nicht finden kann.



mfg Martin3G

Einem anonymen Windows-Benutzer würde ich keinen Zugriff gewähren.
Wenn Windows-Authentifizierung in deinem Fall nicht funktioniert, dann verwende SQL-Authentifizierung.
Lege im SQL-Server einen Benutzer an und gib ihm die Rechte auf die gewünschte Datenbank.
Der Client muss dann zum Aufbau der Connection diesen Benutzer verwenden.
 
Entschuldigung fuer die spaete Antwort,

da keine Eingabe von Login und PW. stattfinden soll kommt die SQL-Authentifizierung nicht in Frage, zumal ich die Batch-Datei die jenes umsetzt nicht aendern kann.
Waere der Client in der gleichen Domain wie der Server koennte man es ueber die Windows-Authentifizierung realisieren, da das aber auch nicht der Fall ist, habe ich das ganze jetzt mit Hilfe von Global Scripten geloest.
Durch betaetigen des Button wird ein Bit gesetzt welches nur ueber den Client gesetzt werden kann. Mit dessen Hilfe wird wie schon gesagt ein Global Script angestossen.
In dem Global Script steht das gleich wie im Code des Servers, mit dem unterschied das nur der Client ueber das setzten des bits eine IF-Schleife anstoesst. Und somit den Vorgang startet. Nach beenden des Zugriffs wird das bit noch zurueckgesetzt und Fertig.
Somit wir ueber den Server auf die Sql-Datenbank zugegriffen.

mfg Martin3G
 
Zurück
Oben