none
SQL Server su altro pc RRS feed

  • Domanda

  • Accedo ad una istanza di SQL Express(2008 R2) in locale da Excel tramite ADO/VBA. Se porto il file di Excel su di un altro pc non riesco più a connettermi. I pc sono in rete(non ho un server) ed entrambi con Windows 7. Questa la stringa di connessione per il file che si trova sulla macchina con il db(tralascio le dichiarazioni):

            cn.Open "Provider=SQLNCLI;" & _
                "Server=PCUNO\SQLEXPRESS;" & _
                "Database=StudioSQL;" & _
                "Trusted_Connection=yes;"

    Come devo modificarla per il file che si trova su di un altro pc? Provo e riprovo ma non riesco. Grazie per le risposte.

    martedì 22 febbraio 2011 18:50

Risposte

  • salve,

    avrebbe aiutato anche sapere l'eccezione che ti viene restituita nel tentativo di connessione remota... al di la' di cio', e' possibile che l'istanza di SQLExpress non sia stata configurata per accettare connessioni remote, impostazione predefinita al momento dell'installazione.. puoi modificare tale impostazione utilizzando SQL Server Configuration Manager.. seleziona il nodo SQL Server Network Configuration->Protocols for SQLExpress e verifica che il protocollo di rete desiderato (solitamente TCP/IP) sia attivato... riavvia il servizio dopo eventuali variazioni... verifica anche che siano state definite apposite eccezioni sul firewall della macchina, sia sulla porta di ascolto (TCP/IP) utilizzata dall'istanza, che sul servizio SQLBrowser sulla porta UDP 1434... relativamente alla stringa di connessione, tendenzialmente potrebbe essere corretta, con un caveat... hai impostato una connessione "trusted", che solitamente sottointende la presenza di un dominio e di domain controller.. in questo caso la login della macchina remota chiede un trust al domain controller che provvede a passare il SID della login all'istanza di SQL Server.. quest'ultimo verifica che l'account/login sia membro di un gruppo autorizzato o sia una login esplicitamente autorizzata alla connessione... in caso negativo la connessione all'istanza viene rifiutata.. nell'assenza di un domain controller e quindi di un dominio di rete, la macchina remota prova ad inviare le credenziali di un account locale ad una macchina di rete "diversa".. questo ovviamente tendezialmente fallisce in quanto PC2\Pippo potrebbe essere un emerito sconosciuto sulla macchina PC1.. tante volte si riesce a prendere in giro la verifica di autenticazione non gestita tramite dominio creando anche su PC1 la login locale di PC2, quindi creando PC1\Pippo, cosi' che, quando PC2\Pippo tenti la connessione remota si riesca ad eseguire l'impersonificazione in PC1\Pippo... molte volte pero' tale accorgimento fallisce, ed in ogni caso non sempre risulta affidabile... c'e' chi consiglia di eseguire una "chiamata" sul file system della macchina da raggiungere in modo che vengano eseguiti handshakes di rete su una share condivisa al fine di attivare i protocolli di rete, ad esempio un NET USE ... al fine di attivare una connessione NETBIOS.. al di la' di cio', i tecnici Microsoft del team SQL Protocols consigliano appunto l'impersonificazione con la duplicazione di login (anche se non riesco ora a trovare il relativo articolo apparso sul loro blog)..

    oppure, molto piu' tradizionalmente per uno scenario di workgroup, utilizzerai la "mixed security" (da attivare manualmente via SQL Server Management Studio->nodoIstanza->Proprietà->tab Security, "SQL Server and Windows Authentication mode") passando quindi il nome e password della login SQL Server che vorrai utilizzare..

    saluti


    http://www.asql.biz - DbaMgr2k - DbaMgr and further SQL Tools http://www.hotelsole.com/ - http://www.hotelsolericcione.de
    martedì 22 febbraio 2011 23:34
    Moderatore

Tutte le risposte

  • salve,

    avrebbe aiutato anche sapere l'eccezione che ti viene restituita nel tentativo di connessione remota... al di la' di cio', e' possibile che l'istanza di SQLExpress non sia stata configurata per accettare connessioni remote, impostazione predefinita al momento dell'installazione.. puoi modificare tale impostazione utilizzando SQL Server Configuration Manager.. seleziona il nodo SQL Server Network Configuration->Protocols for SQLExpress e verifica che il protocollo di rete desiderato (solitamente TCP/IP) sia attivato... riavvia il servizio dopo eventuali variazioni... verifica anche che siano state definite apposite eccezioni sul firewall della macchina, sia sulla porta di ascolto (TCP/IP) utilizzata dall'istanza, che sul servizio SQLBrowser sulla porta UDP 1434... relativamente alla stringa di connessione, tendenzialmente potrebbe essere corretta, con un caveat... hai impostato una connessione "trusted", che solitamente sottointende la presenza di un dominio e di domain controller.. in questo caso la login della macchina remota chiede un trust al domain controller che provvede a passare il SID della login all'istanza di SQL Server.. quest'ultimo verifica che l'account/login sia membro di un gruppo autorizzato o sia una login esplicitamente autorizzata alla connessione... in caso negativo la connessione all'istanza viene rifiutata.. nell'assenza di un domain controller e quindi di un dominio di rete, la macchina remota prova ad inviare le credenziali di un account locale ad una macchina di rete "diversa".. questo ovviamente tendezialmente fallisce in quanto PC2\Pippo potrebbe essere un emerito sconosciuto sulla macchina PC1.. tante volte si riesce a prendere in giro la verifica di autenticazione non gestita tramite dominio creando anche su PC1 la login locale di PC2, quindi creando PC1\Pippo, cosi' che, quando PC2\Pippo tenti la connessione remota si riesca ad eseguire l'impersonificazione in PC1\Pippo... molte volte pero' tale accorgimento fallisce, ed in ogni caso non sempre risulta affidabile... c'e' chi consiglia di eseguire una "chiamata" sul file system della macchina da raggiungere in modo che vengano eseguiti handshakes di rete su una share condivisa al fine di attivare i protocolli di rete, ad esempio un NET USE ... al fine di attivare una connessione NETBIOS.. al di la' di cio', i tecnici Microsoft del team SQL Protocols consigliano appunto l'impersonificazione con la duplicazione di login (anche se non riesco ora a trovare il relativo articolo apparso sul loro blog)..

    oppure, molto piu' tradizionalmente per uno scenario di workgroup, utilizzerai la "mixed security" (da attivare manualmente via SQL Server Management Studio->nodoIstanza->Proprietà->tab Security, "SQL Server and Windows Authentication mode") passando quindi il nome e password della login SQL Server che vorrai utilizzare..

    saluti


    http://www.asql.biz - DbaMgr2k - DbaMgr and further SQL Tools http://www.hotelsole.com/ - http://www.hotelsolericcione.de
    martedì 22 febbraio 2011 23:34
    Moderatore