Come accedere a un database SQL Server da un altro computer collegato allo stesso gruppo di lavoro?


11

Ho creato un'applicazione C # che utilizza un database SQL Server. Ho altri computer collegati a me e agli altri in un gruppo di lavoro. Ho condiviso la mia applicazione C # con altri. Quando aprono l'applicazione ottengono l'errore

Si è verificato un errore relativo alla rete o specifico dell'istanza durante la creazione di una connessione a SQL Server. il server non è stato trovato o non era accessibile

Ma l'applicazione funziona bene sul mio PC. La stringa di connessione che sto usando è

Data Source=ASHISHPC1\SQLEXPRESS;Initial Catalog=ACW;User ID=ash159;Password=ashish159

che è memorizzato in un .configfile.

L'applicazione funziona bene sul mio PC. Cosa devo fare? Ho abilitato il TCP / IP nel server ma lo stesso errore persiste. Qualche cambiamento nella stringa di connessione o qualcos'altro?


1
prova a utilizzare l'indirizzo IP per "origine dati"
Mitch Wheat,

1
Prova a disattivare Windows Firewall ... controlla anche technet.microsoft.com/en-us/library/hh231672.aspx . Questo dovrebbe funzionare per te.

3
Non è necessario disattivare Windows Firewall: smetti di propagare quel mito! Vedi la mia risposta qui sotto.
Jon Seigel,

Risposte:


17

Esistono due livelli di sicurezza che devono essere modificati per consentire l'accesso remoto.

  1. Configurazione di SQL Server . Per impostazione predefinita nelle edizioni Express, Developer ed Enteprise Evaluation, la connessione tramite il protocollo TCP / IP è disabilitata . Abilitare questo tramite Gestione configurazione SQL Server.

  2. Windows Firewall . Mentre disabilitare completamente il firewall funzionerà per questo componente, farlo non è una buona pratica di sicurezza (né è necessario). (Nota: in questa sezione presumo una configurazione predefinita . Esistono molte impostazioni che possono essere modificate e che influiscono leggermente su questi passaggi.)

    Esistono due casi a seconda del tipo di istanza di SQL Server a cui ti stai connettendo:

    1. Istanza predefinita (connettersi solo per nome computer). Aggiungere una regola in ingresso consentita sulla porta TCP 1433 o sul servizio del motore di database.

    2. Istanza denominata (connettersi per nome computer + nome istanza). Aggiungere una regola di ingresso in entrata sulla porta UDP 1434 per accedere al servizio Browser SQL. Aggiungere una regola in entrata consentita sul servizio motore di database.

Questa procedura è completamente documentata qui , oppure puoi guardarmi spiegare e quindi seguire la configurazione per un'istanza denominata qui .


0

Devi impostare le impostazioni di rete corrette nel tuo SQL Server: TCP / IP attivo in SQL Server Assicurati anche che il tuo servizio browser del server sia in esecuzione, perché se viene arrestato non puoi accedere a SQL- Server.


0

Assicurati che il servizio sqlbrowser sia attivato come indicato da bendeg e che UDP 1434 sia aperto sul tuo computer in modo che i client possano colpire sqlbrowser per risolvere il nome. Aprire anche la porta TCP / IP dell'istanza denominata.

Per trovare la porta della tua istanza, connettiti utilizzando il prefisso tcp: in Management Studio in questo modo: tcp: ASHISHPC1 \ SQLEXPRESS e il risultato della query seguente dovrebbe essere la porta che devi esporre ai client nel tuo gruppo di lavoro.

SELECT local_tcp_port FROM sys.dm_exec_connections WHERE session_id = @@SPID

-1

Ho spento il firewall di Windows per la rete domestica e ha funzionato bene .. Grazie a tutti .. :)


5
Se questa era la tua domanda, accedi qui con le stesse credenziali che hai usato sul sito originale ( Stack Overflow ) in modo da ottenere la proprietà della domanda qui.
jcolebrand

Utilizzando il nostro sito, riconosci di aver letto e compreso le nostre Informativa sui cookie e Informativa sulla privacy.
Licensed under cc by-sa 3.0 with attribution required.