오늘 개발하고 있는 Framework릍 테스트 하기 위해서, MS의 SQL Server Managment툴로 MS SQL Express DB에 접속을 하였는데, 연결이 안되는 문제가 발생하였다.
일반적으로를 관리 툴과 Express를 같은 장비에 설치해서 사용하기 때문에 이러한 문제는 발생하지 않지만, 다른 시스템으로 접속이 안되는 문제는 몇가지 가정과 함께 확인해야 하는 부분으로 나에게 다가 왔다.
일단, 설치한 시스템에서는 문제 없이 접속이 잘 된다는 것과 내 자리에서 다른 SQL Server가 설치되어 있는 개발 서버에는 정상적으로 동작하고 있다.
이를 근거로 두가지 가정을 하였다.
[가정]
- 첫째는 SQL Express는 Remote Connection은 지원하지 않는다.
- 둘째는 방화벽으로 인하여 Port가 막혀 있다.
이것을 근거로 MS쪽 솔루션을 이용하여 개발할 때 항상 애용하는 MSDN을 열고 찾아 보았다. 아니나 다를까 바로 검색이 된다.
How To에 보면 "Enable Network Access in SQL Server Configuration Manager (SQL Server Express)" 라는 제목으로 Network를 설정하는 설명이 있다.
내가 설치해서 사용하고 있는 MSDN은 영문 버전인데, 아래와 같이 설명되어 있다.
(설명을 돕기 위해서 그림을 캡쳐하였다.)
To enable a network protocol
-
On the Start menu, choose All Programs, point to Microsoft SQL Server 2005, and then click SQL Server Configuration Manager.
Optionally, you can open Computer Manager by right-clicking My Computer and choosing Manage. In Computer Management, expand Services and Applications, expand SQL Server Configuration Manager.
-
Expand SQL Server 2005 Network Configuration, and then click Protocols for InstanceName.
-
In the list of protocols, right-click the protocol you want to enable, and then click Enable.
The icon for the protocol will change to show that the protocol is enabled.
-
To disable the protocol, follow the same steps, but choose Disable in step 3.
간단하게 설명을 도우면, SQL Server Configuration Manager가 설치 되어 있다면,
"MS SQL Server 2005" 메뉴 아래 "SQL Server Configuration Manager" 메뉴를 클릭한 후에 윈도우가 나타나면, 왼쪽 트리에서 SQL Server 2005 네트워크 구성을 선택하면 된다.
(내 컴퓨터 아이콘에서 오른 쪽 마우스를 클릭할 때 나타는 관리 메뉴 선택은 위의 영문 순서를 참조하면 되고, 여기서는 메뉴에서 선택한 것을 예를 들었다.)
아래와 같은 화면이 나타나면, 지원하기 원하는 서비스를 선택하고, 이를 사용으로 변경해 주면 된다.
그리고 추가적으로 확인해야 하는 것은, 방화벽 역시 확인해 주어야 한다. 기본적으로 서버스가 가능한 포트가 등록되어 있지 않으므로 이 역시 설정해 주어야 한다. 참고로 SQL Server가 사용하는 기본 포는 1433포트이다.
내가 예상 했던 가정이 너무 잘 맞아서, 쉽게 문제를 해결하였다. 그러나 사실은 MS에서 제공하는 MSDN이 잘 되어 있어서 이다.
아래는 SQL Express에서 지원되는 프로토콜이다.
Network Protocol |
Description |
If the value of DISABLENETWORK
PROTOCOL=1 |
If the value of DISABLENETWORK
PROTOCOL=0 |
Shared Memory |
Lets you connect to an instance of SQL Server that is running on the same computer. Cannot be used for access from other computers on the network. |
Enabled |
Enabled |
TCP/IP |
Permits network access to SQL Server Express by specifying the computer name and instance name or the IP address and instance name. |
Disabled |
Enabled |
Named Pipes |
Permits network access to SQL Server Express by supporting numerous network protocols, including NetBEUI, TCP/IP, and IPX/SPX. Automatically selects the network protocol based on the client configuration. |
Enabled, local only |
Enabled |
Virtual Interface Architecture (VIA) |
Used for System Area Networks, which are high-speed networks connecting servers or clusters of servers. |
Not Supported |
Not Supported |