Toon posts:

[SQL Server] Connectie door proxy/firewall

Pagina: 1
Acties:

Verwijderd

Topicstarter
Vooraf:
- Via de search kon ik helemaal nisk vinden
- Verder weet ik niet waar dit topic moet, want het gaat ook over netwerken / servers / proxy's / firewall...
Maar vooral over het hoé te programmeren, dus heb ik het maar hier geplaatst.

Maar goed, de vraag:

ik heb (eindelijk) een sql server up-and-running op m'n thuis pc, als ik met een modem-verbinding de volgende connectie open:
"Provider=SQLOLEDB;Data Source=<ip-adres>;Initial Catalog=<db-naam>; User ID=<user>;Password=<pass>;Network Library=DBMSSOCN;"
Dan gaat alles perfect, en heb ik een connectie.
Als ik nu probeer een connectie te leggen met dezelfde code, op een pc die achter een proxy zit waar poort 1433 geblokeerd is, krijg ik geen connectie... :(

Volgens iemand die ik sprak zou ik dan via tunneling moeten zorgen dat de connectie via poort 80 gaat. Dit lijkt me tamelijk ingewikkeld...

Mijn vraag is hoe ik dit het beste kan oplossen. Het liefst zo simpel mogelijk natuurlijk...
Of moet ik eisen dat op de pc waar m'n programma wordt gerund de (evt. aanwezige) proxy server/ firewall zo wordt geconfigureerd dat ie verkeer over 1433 toelaat? Dat lijkt me namelijk niet zo'n nette en practische oplossing...

  • CRCerror
  • Registratie: December 2000
  • Laatst online: 21-01 15:02
Mooi dat het gelukt is te connecten via internet.

Tja als er een proxy tussen de client en SQL Server zit dan kun je proberen om de sql poort van 1433 naar 80 te zetten, dit werkt alleen als de proxy niet naar de content type van de packets kijkt. Als dit werkt kun je geen webserver meer op poort 80 zetten.

Wat je ook kunt doen is SQL Server een query sturen via http
dit doe je door met het "Configure SQL XML support in IIS" tool in de programmagroep van sqlserver.
dan maak je een nieuwe virtuele map aan, en geef je aan welke database gebruikt moet worden, met welke user/pw moet worden ingelogd, en dat queries via een url mogen worden verstuurd. De resultaat set wordt dan heel netjes in xml terug gestuurd naar de client. :-)

Op deze manier werken IIS en SQL Server samen om de query van de client te kunnen verwerken.

voorbeeld van een querie via een URL:

[url="http://localhost/virtuelemapnaam?sql=SELECT+*+FROM+tabelnaam+for+xml+auto&root=ROOT"]http://localhost/virtuelemapnaam?sql=SELECT+*+FROM+tabelnaam+for+xml+auto&root=ROOT[/url]


Greetz,

CrCeRrOr

Verwijderd

Topicstarter
Ik had net zelf in een brainwave (:)) ook bedacht dat ik poort 80 naar 1433 moest mappen, maar dat ging dus niet... winXP heeft standaard al een HTTP mapping op poort 80 en die kan ik niet verwijderen/editten :(

Bovendien heb ik nu ff geprobeerd te conncecten via poort 81, die heb ik laten doorverwijzen naar 1433, maar dat maakt werkt niet, alleen 1433 doet iets... Ik heb het trouwens bij m'n inbel connectie (VPN voor ADSL) ingesteld, of moet dit bij de netwerk kaart zelf?

Dat Query'en via XML ziet er allemaal leuk en aardig uit, maar moet ik dan niet al m'n source gaan omhacken? Nu heb ik overal con.execute("SQL query") staan, dat gaan dat niet werken vrees ik...

Verwijderd

Je kunt op je SQLServer bak instellen naar welke poort geluisterd wordt. Die poort zet je open op je proxy. Dan pak je op je client machine de 'client connection wizard', een tool die bij de SQLserver client utils zit. Daar stel je een nieuwe connectie in naar je server, die noem je bv 'KoenMServer'. Stel daarbij in het ip nummer, het poortnr en de tcp/ip lib in. Refereer dan in je connection string naar 'KoenMServer' als server. Et voila, je client weet moeiteloos je poort te vinden op de server :D

Verwijderd

Topicstarter
Het probleem is een beetje dat ik zelf niet achter een proxy zit, maar dat veel bezoekers dat wel zullen doen :(
Daarom wil ik dat zij wel de database kunnen query'en zonder dat ze daarvoor bij hun systeem dictator moeten gaan zeuren ;).
Maar mischien kan ik met de client network utility zorgen dat ie naar poort 80 gaat luisteren... dat lukt niet direct in XP :(, want ik draai geen webserver op m'n pc, dus ik gebruik 80 zelf nog niet :)
CRCError zei al dat dat meestal wel zou werken, behalve bij packet-filtering firewalls, maar volgens mij worden die niet zo heel veel gebnruikt, en dan werkt het maar niet in dat geval...

Kan ik niet beter in m'n connection string naar een ip-adres wijzen, met dan een poort nummer gespecificeerd? BV. '123.123.123.123,80'?

  • CRCerror
  • Registratie: December 2000
  • Laatst online: 21-01 15:02
Je kunt met de server network utility proberen de poort op 80 te zetten .. kies gewoon voor tcp/ip en dan voor "edit", op het scherm dat je dan ziet kun je de poort opgeven, vul hier dan 80 in.

Als de gebruikers achter een firewall zitten die niet naar de contenttype kijkt, moet dit wel werken dacht ik zo.

als clients achter een normale proxy zitten hebben ze geen last van die proxy want je applicatie gebruikt geen proxy. Maar als de clients achter een transparantie proxy zitten die ze zelf niet kunnen omzeilen, dan werkt je applicatie waarschijnlijk niet.
Maar de meest proxies zijn normale proxies die je zelf bijv. in de browser moet instellen.

Als je firewall regels of forwarding regels op wil geven moet je dit natuurlijk doen op de interface waarop je clients connectie maken.

CrCeRrOr

Verwijderd

Topicstarter
Tanx (again!) :) :) :) Ik heb 'm net idd op poort 80 gezet, en ga zo ff naar m'n werk (daar zit een zeer irritante proxy die alleen verkeer via poort 80 doorlaat) en als ie daar doorheen gaat, geloof ik het wel!
Maar nogmaals, bedankt!!

  • Crazy D
  • Registratie: Augustus 2000
  • Laatst online: 17-09 08:12

Crazy D

I think we should take a look.

[censuur]***[/censuur] ging wat mis...

Exact expert nodig?

Pagina: 1