Condividi tramite


Creazione di una stringa di connessione valida tramite named pipe

A meno che non venga modificato dall'utente, quando l'istanza predefinita di Microsoft SQL Server ascolta il protocollo named pipe, viene usato \\.\pipe\sql\query come nome della pipe. Il periodo indica che il computer è il computer locale, pipe indica che la connessione è una pipe denominata ed sql\query è il nome della pipe. Per connettersi alla pipe predefinita, è necessario che il nome della pipe dell'alias sia \\<computer_name>\pipe\sql\query. Se SQL Server è stato configurato per l'ascolto in una pipe diversa, il nome della pipe deve usare tale pipe. Ad esempio, se SQL Server usa \\.\pipe\unit\app come pipe, l'alias deve usare \\<computer_name>\pipe\unit\app come nome della pipe.

Per creare un nome di pipe valido, è necessario:

  • Specificare un Nome alias.

  • Selezionare Named Pipe come protocollo.

  • Immettere il nome della pipe. In alternativa, è possibile lasciare vuoto il nome della pipe e Gestione configurazione SQL Server completerà il nome della pipe appropriato dopo aver specificato il protocollo e il server

  • Specificare un server. Per un'istanza denominata è possibile specificare un nome di server e un nome di istanza.

Al momento della connessione, il componente SQL Server Native Client legge i valori del nome server, del protocollo e della pipe dal Registro di sistema per il nome alias specificato e crea un nome della pipe nel formato np:\\<computer_name>\pipe\<pipename> o np:\\<IPAddress>\pipe\<pipename>. Per un'istanza denominata, il nome della pipe predefinito è \\<computer_name>\pipe\MSSQL$<instance_name>\sql\query.

Nota

Microsoft Windows Firewall chiude la porta 445 per impostazione predefinita. Poiché MicrosoftSQL Server comunica sulla porta 445, è necessario riaprire la porta se SQL Server è configurato per ascoltare le connessioni client in ingresso usando le pipe denominate. Per informazioni sulla configurazione di un firewall, vedere "Procedura: Configurazione di un firewall per l'accesso a SQL Server" nella documentazione online di SQL Server oppure vedere la documentazione relativa al firewall.

Connessione al server locale

Quando ci si connette a SQL Server in esecuzione nello stesso computer del client, è possibile usare (local)come nome del server. L'utilizzo di (local) non è consigliabile in quanto genera ambiguità, ma può risultare utile se si è sicuri che il client venga eseguito nel computer desiderato. Se, ad esempio, si crea un'applicazione per gli utenti mobili non connessi, ad esempio il personale di vendita, e SQL Server verrà eseguito su computer portatili e utilizzato per archiviare dati di progetto, un client che si connette al server (local) si connetterà sempre all'istanza di SQL Server in esecuzione sul portatile. In sostituzione di localhost è possibile utilizzare la parola (local) o un punto (.).

Verifica del protocollo di connessione

La query seguente restituisce il protocollo utilizzato per la connessione corrente.

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

Esempio

Connessione tramite il nome del server alla pipe predefinita:

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

Connessione tramite indirizzo IP alla pipe predefinita:

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

Connessione tramite il nome del server a una pipe non predefinita:

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

Connessione tramite il nome del server a un'istanza denominata:

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

Connessione al computer locale tramite localhost:

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

Connessione al computer locale tramite un punto:

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

Nota

Per specificare il protocollo di rete come parametro sqlcmd, vedere "Procedura: Connettersi al motore di database usando sqlcmd.exe" in SQL Server Books Online.

Vedere anche

Creazione di una stringa di connessione valida mediante il protocollo di memoria condivisa
Creazione di una stringa di connessione valida con TCP/IP
Scelta di un protocollo di rete