Check alle échte Black Friday-deals Ook zo moe van nepaanbiedingen? Wij laten alleen échte deals zien

[MsSql Express] Kan niet remote verbinding maken

Pagina: 1
Acties:

  • Blue-eagle
  • Registratie: September 2000
  • Niet online
Laat ik voorop stellen dat ik zeker niet pretendeer veel kennis te hebben van MSSQL, ik ben redelijk intuïtief wat betreft de interface maar ik kom er helaas niet uit.

Ik heb op een server Microsoft SQL Server 2005 Express Edition draaien met daarop een database die ik vanaf iedere computer wil kunnen benaderen (een applicatie moet verbinding kunnen maken met de database).

Google leert mij al dat ik TCP/IP verkeer moet toestaan, poorten moet instellen, de Firewall moet instellen verkeer op deze poorten door te laten, et cetera. Dit heb ik allemaal ingesteld. Helaas krijg ik het niet voor elkaar om verbinding te maken met de server.

Ik gebruik de volgende connectionstring:
code:
1
Provider=SQLOLEDB; Data Source=123.456.789.123,1433; Initial Catalog=DatabaseNaam; User ID=sa; Password=mijnwachtwoord; Network Library=dbmssocn; Integrated Security=SSPI;


De Express editie van MSSQL moet, volgens mij, ook "\SQLEXPRESS" aan de data source meegeven. Ik kom er alleen niet uit hoe dit nou precies moet:
  • 123.456.789.123,1433\SQLEXPRESS
  • 123.456.789.123\SQLEXPRESS,1433
Op www.connectionstrings.com heb ik veel kunnen vinden, maar niet de informatie die ik nodig heb. Helaas.

De foutmelding die ik constant krijg is de volgende:
code:
1
2
3
Microsoft OLE DB Provider for SQL Server error '80004005' 

[DBNETLIB][ConnectionOpen (Connect()).]SQL Server does not exist or access denied.


Kan iemand me helpen bij de connection string danwel de instellingen op de server (Windows Server 2003)?

  • whoami
  • Registratie: December 2000
  • Laatst online: 21:14
> DTE

https://fgheysels.github.io/


  • whoami
  • Registratie: December 2000
  • Laatst online: 21:14
Je connectionstring klopt al alleszins niet.
Je zegt in je connectionstring dat er connectie moet gemaakt worden mbhv de sa account en bijhorend password , en je zegt ook dat hij connectie moet maken via de Integrated Windows Security. (Het Windows account dus van de gebruiker).
Het is of het één, of het ander.
Volgens mij moet je in je connectionstring ook de poort niet opgeven, maar het is waarschijnlijk ook niet fout als je dat wel doet.

https://fgheysels.github.io/


  • Blue-eagle
  • Registratie: September 2000
  • Niet online
Ah ik dacht dat die juist aangaf dat het een trusted connection was. Maargoed, na nog een 20-tal pogingen blijf ik dezelfde foutmelding krijgen, ik heb inmiddels alle mogelijke connectionstrings geprobeerd - het lijkt erop dat het gewoon een server instelling is die niet goed staat, alleen welke.. da's de vraag.

In de SQL Server Configuration Manager heb ik onder "Protocold for SQLEXPRESS" TCP/IP enabled, waarbij IP2 active en enabled is. Het IP adres staat op het IP waarmee ik verbinding wil maken, TCP Dynamic Ports staat op 2245 en TCP Port staat op 1433 (de poort waarop ik verbinding maak, tevens de default poort dacht ik.)

Onder Client Protocols staat TCP/IP op positie 1, met daaronder Named Pipes op positie 2. Shared Memory en VIA zijn gedisabled. De groep Aliases is volledig leeg.

Software in het locale netwerk van de server kunnen wel gewoon verbinding maken op het interne IP adres.

  • cowgirl
  • Registratie: November 2000
  • Laatst online: 17-12-2020
Default installeert SQL2005 zo dat er alleen locale connecties zijn toegestaan. Wat ik me herinner van de foutmelding is dat je dat ook bij de mogelijke oorzaken te zien krijgt.
Je kan dit aanpassen met de Service Area Configuration bij remote connections.

Waarom gebruik je een OleDB connection en geen SqlConnetion?

  • Blue-eagle
  • Registratie: September 2000
  • Niet online
cowgirl schreef op maandag 10 september 2007 @ 13:08:
Default installeert SQL2005 zo dat er alleen locale connecties zijn toegestaan. Wat ik me herinner van de foutmelding is dat je dat ook bij de mogelijke oorzaken te zien krijgt.
Je kan dit aanpassen met de Service Area Configuration bij remote connections.
Al gedaan, werkt blijkbaar niet. Ik heb een nieuwe gebruiker aangemaakt en deze echt alle mogelijke rechten gegeven. Ook via de commandline:
code:
1
osql -S SERVERNAME\SQLEXPRESS -U <username>
.. werkt helaas ook niet, met dezelfde foutmelding.

Ik krijg nu alleen het advies om de gehele server te rebooten, dat kan blijkbaar een verschil maken. Het probleem is alleen dat het een live server is die ik niet wil rebooten tijdens kantoor uren.. Dat moet ik vanavond dan maar eventjes doen. En nu maar hopen dat het werkt.
Waarom gebruik je een OleDB connection en geen SqlConnetion?
Omdat ik geen idee heb wat het verschil is ;) Ik ga het opzoeken.

  • whoami
  • Registratie: December 2000
  • Laatst online: 21:14
SqlConnection is specifiek en geoptimaliseerd voor SQL Server

https://fgheysels.github.io/


  • Niemand_Anders
  • Registratie: Juli 2006
  • Laatst online: 09-07-2024

Niemand_Anders

Dat was ik niet..

probeer eens 'telnet 123.456.789.012 1433'
[ctrl + c, dan quit intikken om telnet te verlaten]

Als je geen verbinding kunt krijgen dan draait MSSQL gewoon niet, of deze draait op een andere poort. Als je wel via telnet kunt connecten probeer dan eens als Administrator op de machine in te loggen en dan via integrated security verbinding te maken.

Indien je gebruik maakt van het .NET platform, probeer dan eens SqlConnection (uit System.Data.SqlClient namespace) om verbinding te maken met je database.

De naam \SQLEXPRESS heb je alleen nodig als je via named pipes (zie het als een file share voor service poorten) verbinding maakt. De connectiestring voor het SqlConnection object is 'server=10.0.0.2, uid=flw_dev; pwd=abc123; database=DatabaseNaam;' Connect je via classic ADO (ADODB.Connection) probeer dan driver=sqlserver ipv Provider=SQLOLEDB.

If it isn't broken, fix it until it is..


  • Blue-eagle
  • Registratie: September 2000
  • Niet online
Ik ben er inmiddels uit - het probleem lag aan de IP settings van MSSQL. De server had 2 IP-adressen waardoor op beide adressen blijkbaar een poging werd gedaan op de opgegeven poort te luisteren. Door een van de twee uit te zetten kon ik in ieder geval weer verbinding maken. Oh.. en Dynamic Ports allemaal uitzetten bleek ook een hele hulp ;)

Niemand_Anders: \SQLEXPRESS heb ik inderdaad niet nodig :) Daar zat ik een tijdje mee in de knoei - ik wil nu eigenlijk weleens weten wat die named pipes zijn, ff Googlen dus ;)

Thanks!
Pagina: 1