Sql-server – How to get this SQL Server ODBC Connection working

odbcsql server

Note: I've obviously changed the server names and IPs to fictitious ones.

Here's what's going on. I've got a server, which I'm calling MYSERVER, running Microsoft SQL Server Express 2005. Right on this server itself, I've got an ODBC connection set up pointing at itself, and that already works perfectly. I log in using SQL Server Authentication (not Windows authentication), and it's set up like this:

Image of good ODBC connection

Like I said, that one works. But next, I've got another computer which is on a totally different domain/not on the intranet, that needs to access this same SQL Server hosted on MYSERVER. Because it's on a different domain, it doesn't recognize the name "MYSERVER"; I have to point it at the IP address of MYSERVER, which we'll say is 123.456.789.012. But the ODBC connection doesn't seem to work there. I tried setting it up like this:

Image of bad ODBC connection

This doesn't work. When I put in the username and password and press Next, it stalls for a good 10 to 20 seconds, and then finally comes back with the following error:

Connection failed:
SQLState: '01000'
SQL Server Error: 1326
[Microsoft][ODBC SQL Server Driver][DBNETLIB]ConnectionOpen (Connect()).
Connection failed:
SQLState: '08001'
SQL Server Error: 17
[Microsoft][ODBC SQL Server Driver][DBNETLIB]SQL Server does not exist or access denied.

If I try the same thing, but change the "server" from 123.456.789.012\SQLEXPRESS to just plain old 123.456.789.012, I get a different error:

Connection failed:
SQLState: '01000'
SQL Server Error: 14
[Microsoft][ODBC SQL Server Driver][DBNETLIB]ConnectionOpen (Invalid Instance()).
Connection failed:
SQLState: '08001'
SQL Server Error: 14
[Microsoft][ODBC SQL Server Driver][DBNETLIB]Invalid connection.

Now I know what you're thinking. You might be thinking, "duh, you probably didn't open the firewall for port 1433, dummy." Except I did, and I verified this, as I can successfully run:

telnet 123.456.789.012 1433

…from the command line all I want. So I'm not sure what to do. I know the SQL Server exists, works, and an ODBC connection can be set up properly; I'm just not sure what it is I've got wrong in my connection settings that's throwing these errors. Based on the latter error I listed, it would seem that it can connect to the server, but simply cannot find the instance (since I didn't specify one that time). So does that mean I just need to use some different syntax to specify the IP along with an instance name? What do I do? Thanks in advance.

Best Answer

Named pipes and TCIP protocols for SQL server 2005 are disabled by default. Have you enabled them under "SQL server configuration manager"? You can find the protocols in the SQL Server Network configuration and under SQL Native client xx configuration.

The connection on the server itself works thanks to the "Shared memory" protocol.