명명된 파이프를 사용하여 유효한 연결 문자열 만들기

사용자가 변경하지 않으면 MicrosoftSQL Server의 기본 인스턴스는 \\.\pipe\sql\query를 파이프 이름으로 사용하는 명명된 파이프 프로토콜에서 수신합니다. 마침표는 컴퓨터가 로컬 컴퓨터임을 나타내고 pipe는 연결이 명명된 파이프임을 나타내며 sql\query는 파이프의 이름입니다. 기본 파이프에 연결하려면 별칭의 파이프 이름으로 \\<computer_name>\pipe\sql\query를 지정해야 합니다. 다른 파이프에서 수신하도록 SQL Server를 구성한 경우 파이프 이름으로 해당 파이프를 사용해야 합니다. 예를 들어 SQL Server가 \\.\pipe\unit\app를 파이프로 사용하는 경우 별칭의 파이프 이름은 \\<computer_name>\pipe\unit\app여야 합니다.

올바른 파이프 이름을 만들려면 다음을 수행해야 합니다.

  • 별칭을 지정합니다.

  • 명명된 파이프프로토콜로 선택합니다.

  • 파이프 이름을 입력합니다. 또는 파이프 이름을 비워 놓을 수 있습니다. 이 경우 프로토콜서버를 지정하면 SQL Server 구성 관리자에서 적절한 파이프 이름을 완성합니다.

  • 서버를 지정합니다. 명명된 인스턴스의 경우 서버 이름과 인스턴스 이름을 제공할 수 있습니다.

연결할 때 SQL Server Native Client 구성 요소는 지정한 별칭에 대한 서버, 프로토콜 및 파이프 이름 값을 레지스트리에서 읽어온 후 np:\\<computer_name>\pipe\<pipename> 또는 np:\\<IPAddress>\pipe\<pipename> 형식으로 파이프 이름을 만듭니다.명명된 인스턴스의 경우 기본 파이프 이름은 \\<computer_name>\pipe\MSSQL$<instance_name>\sql\query입니다.

[!참고]

Microsoft Windows XP 서비스 팩 2는 Windows 방화벽을 설정하며 이 경우 기본적으로 포트 445가 닫힙니다. MicrosoftSQL Server는 포트 445에서 통신하므로 SQL Server가 명명된 파이프를 사용하여 들어오는 클라이언트 연결을 수신하도록 구성된 경우 이 포트를 다시 열어야 합니다. 방화벽을 구성하는 방법은 SQL Server 온라인 설명서의 "방법: SQL Server 액세스를 허용하도록 방화벽 구성"을 참조하거나 해당 방화벽 설명서를 검토하십시오.

로컬 서버에 연결

클라이언트와 동일한 컴퓨터에서 실행되는 SQL Server에 연결할 때는 서버 이름으로 (local)을 사용할 수 있습니다. (local)을 사용하면 모호해질 수 있으므로 권장되지는 않지만 클라이언트가 어떤 컴퓨터에서 실행될지 알고 있는 경우에는 유용할 수 있습니다. 예를 들어 영업 사원과 같이 네트워크에 연결되지 않은 모바일 사용자를 위해 응용 프로그램을 만들 때 SQL Server가 랩톱 컴퓨터에서 실행되고 프로젝트 데이터를 저장하는 경우 (local)에 연결하는 클라이언트는 항상 랩톱에서 실행되는 SQL Server에 연결됩니다. localhost라는 단어나 마침표(.)를 (local) 대신 사용할 수 있습니다.

연결 프로토콜 확인

다음 쿼리는 현재 연결에 사용된 프로토콜을 반환합니다.

SELECT net_transport 
FROM sys.dm_exec_connections 
WHERE session_id = @@SPID;

서버 이름으로 기본 파이프에 연결

Alias Name         <serveralias>
Pipe Name          <blank>
Protocol           Named Pipes
Server             <servername>

IP 주소로 기본 파이프에 연결

Alias Name         <serveralias>
Pipe Name          <leave blank>
Protocol           Named Pipes
Server             <IPAddress>

서버 이름으로 기본이 아닌 파이프에 연결

Alias Name         <serveralias>
Pipe Name          \\<servername>\pipe\unit\app
Protocol           Named Pipes
Server             <servername>

서버 이름으로 명명된 인스턴스에 연결

Alias Name         <serveralias>
Pipe Name          \\<servername>\pipe\MSSQL$<instancename>\SQL\query
Protocol           Named Pipes
Server             <servername>

localhost를 사용하여 로컬 컴퓨터에 연결

Alias Name         <serveralias>
Pipe Name          <blank>
Protocol           Named Pipes
Server             localhost

마침표를 사용하여 로컬 컴퓨터에 연결

Alias Name         <serveralias>
Pipe Name          <left blank>
Protocol           Named Pipes
Server             .

[!참고]

네트워크 프로토콜을 sqlcmd 매개 변수로 지정하려면 SQL Server 온라인 설명서의 "방법: sqlcmd.exe를 사용하여 데이터베이스 엔진에 연결"을 참조하십시오.