Client 에서 SQL Server로 연결하기 위해서는 어떠한 프로토콜들을 사용할까요?
많은 분들은 IP를 사용하죠. (IP 또는 컴퓨터이름)
그렇다면, 접속 시 사용하는 프로토콜은 어떠한 것들이 있을까요?
공유 메모리, TCP/IP, 명명된 파이프, VIA 가 그것들입니다.
해당 프로토콜의 사용유무는 SQL Server 구성관리자(SQL Server Configuration Manager)에서 확인과 설정이 가능합니다.
1. 공유 메모리(Shared Memory)
A. 서버에서 직접 접속할 때 사용할 때 쓸 수 있습니다. 즉 로컬컴퓨터가 서버인 경우에만 됩니다.
B. 접속형태는 <servername>[\instancename] 입니다.
C. “.”이나 “(local)” 또는 “localhost”와 같은 형태로 사용이 가능합니다.
D. 동일한 컴퓨터인 경우 가장 우수한 성능을 보입니다.
E. 포트를 지정할 수 없습니다.
F. 접속상태를 확인하면 다음과 같습니다.
SELECT net_transport FROM sys.dm_exec_connections WHERE session_id = @@SPID; |
2. TCP/IP
A. 가장 많이 사용하는 형태입니다.
B. 서버주소를 IP 주소 또는 컴퓨터 이름을 사용합니다.
C. 기본 포트는 1433입니다.
D. TCP: <servername>[\instancename>],<port> 또는 TCP:<ipaddress>[\instancename],<port>와 같은 형태로 사용이 가능하며,
“TCP:” 는 생략할 수 있습니다. 또한, 기본 포트 1433을 사용할 때에는 포트번호를 생략할 수 있습니다.
E. 로컬컴퓨터라도 “127.0.0.1”과 같이 IP Address를 사용하면 공유메모리가 아닌 TCP/IP로 동작합니다.
F. 접속상태를 확인하면 다음과 같습니다.
SELECT net_transport FROM sys.dm_exec_connections WHERE session_id = @@SPID; |
3. 명명된 파이프(Named Pipe)
A. 간혹 사용하는 경우가 있지만 그다지 많이 사용하지 않는 방식입니다.
B. 구성관리자에 명시된 이름을 사용합니다.
C. 기본포트는 445 이며, 포트를 변경할 수 없습니다.
D. np:\\<ipaddress>\pipe\sql\query 또는 np:\\<computer_name>\pipe\sql\query 의 형태로 사용이 가능하며,
“np:”는 생략할 수 있습니다.
E. 위 예제는 제가 일부러 \\.\pipe\sql\query 에서 \\.\pipe\sql\query1 로 바꾼 것이며,
F. 구성관리자에서 다음과 같이 변경하였습니다.
G. 파이프명이 일치하지 않을 경우 다음과 같이 접속오류가 발생합니다.
H. 접속상태를 확인하면 다음과 같습니다.
SELECT net_transport FROM sys.dm_exec_connections WHERE session_id = @@SPID; |
4. VIA(Virtual Interface Adapter)
A. VIA 프로토콜은 하드웨어와 함께 동작하기 때문에 거의 사용하지 않고 있습니다.
B. 또한, 다음 버전부터는 제거된다고 합니다.
참고 URL : http://msdn.microsoft.com/ko-kr/library/ms190611.aspx
이상 쓸만한게없네 윤선식입니다.