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 MicrosoftSQL 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ção |
---|
O Microsoft Windows XP Service Pack 2 habilita o Firewall do Windows, o que fecha a porta 445 por padrão. Como o MicrosoftSQL 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çã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. |