Criando uma cadeia de conexão válida usando pipes nomeados

A não ser que seja alterado pelo usuário, quando a instância padrão do Microsoft SQL Server escuta no protocolo de pipes nomeados, ele usa \\.\pipe\sql\query como nome do pipe. O ponto indica que o computador é local, pipe indica que a conexão é um pipe nomeado e sql\query é o nome do pipe. Para conectar ao pipe padrão, o alias deve ter \\<computer_name>\pipe\sql\query como nome do pipe. Se o SQL Server tiver sido configurado para escutar em um pipe diferente, o nome do pipe deverá usar esse pipe. Por exemplo, se o SQL Server estiver usando \\.\pipe\unit\app como o pipe, o alias deverá usar \\<computer_name>\pipe\unit\app como o nome do pipe.

Para criar um nome de pipe válido, deve você:

  • Especificar um Nome de Alias.

  • Selecionar Pipes Nomeados como o Protocolo.

  • Digitar o Nome do Pipe. Como alternativa, é possível deixar Nome do Pipe em branco e o SQL Server Configuration Manager completará o nome de pipe adequado após você especificar o Protocolo e o Servidor

  • Especificar um Servidor. Para uma instância nomeada, você pode fornecer um nome de servidor e um nome de instância.

No momento da conexão, o componente SQL Server Native Client lê os valores de servidor, protocolo e nome do pipe no Registro para o nome de alias especificado e cria um nome de pipe no formato np:\\<computer_name>\pipe\<pipename> ou np:\\<IPAddress>\pipe\<pipename>.Para uma instância nomeada, o nome de pipe padrão é \\<computer_name>\pipe\MSSQL$<instance_name>\sql\query.

ObservaçãoObservação

O Microsoft Windows XP Service Pack 2 habilita o Firewall do Windows, o que fecha a porta 445 por padrão. Como o Microsoft SQL Server se comunica pela porta 445, você deverá reabri-la se o SQL Server estiver configurado para escutar conexões de entrada usando pipes nomeados. Para obter informações sobre como configurar um firewall, consulte "Como configurar um firewall para acessar o SQL Server" nos Manuais Online do SQL Server, ou verifique a documentação do firewall.

Conectando-se ao servidor local

Ao conectar-se ao SQL Server executado no mesmo computador que o cliente, você pode usar (local)como o nome do servidor. O uso de (local) não é incentivado, pois leva a ambigüidade; no entanto, ele pode ser útil quando se sabe que o cliente está sendo executado no computador pretendido. Por exemplo, ao criar um aplicativo para usuários móveis desconectados, como uma força de vendas, em que o SQL Server será executado em computadores laptop e armazenará dados de projeto, um cliente conectado a (local) sempre se conectaria ao SQL Server executado no laptop. A palavra localhost ou um ponto (.) pode ser usado no lugar de (local).

Verificando seu protocolo de conexão

A consulta a seguir retornará o protocolo usado para a conexão atual.

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

Exemplos

Conectando-se ao pipe padrão pelo nome do servidor:

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

Conectando-se ao pipe padrão pelo Endereço IP:

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

Conectando-se ao pipe não-padrão pelo nome do servidor:

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

Conectando-se a uma instância nomeada pelo nome do servidor:

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

Conectando-se ao computador local usando localhost:

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

Conectando-se ao computador local usando um ponto:

Alias Name         <serveralias>
Pipe Name          <left blank>
Protocol           Named Pipes
Server             .
ObservaçãoObservação

Para especificar o protocolo de rede como um parâmetro sqlcmd, consulte "Como fazer conexão com o mecanismo de banco de dados usando sqlcmd.exe" nos Manuais Online do SQL Server.