Sql server remoto

domenica 07 ottobre 2007 - 20.11

nous Profilo | Newbie

Salve a tutti...
Vorrei provare a collegarmi a un db in sql server in ufficio da casa ma non ho idea di come si faccia.
premetto che mi sto studiando un libro "vb.net programmazione dei database " di Giuseppe Naccarato ma non tratta di collegamenti a db remoti
Per l'applicazione vorrei cominciare ad usare vb.net e anke li sono piuttosto pischello.
cmq da qualke parte si deve pur cominciare, anke un viaggio lungo mille kilometri inizia del primo passo, disse qlkuno.
Sarebbero graditi anke tutorials e giude varie, saluti.

lbenaglia Profilo | Guru

>Vorrei provare a collegarmi a un db in sql server in ufficio
>da casa ma non ho idea di come si faccia.

Ciao nous,

Per connetterti all'istanza SQL Server dell'ufficio occore che quest'ultima sia esposta su Internet... cosa MOOOOLTO pericolosa dato che un mucchio di gente tenterà in ogni modo di "sfondarlo"
Una soluzione potrebbe essere quella di implementare una VPN:
http://technet.microsoft.com/en-us/network/bb545442.aspx

Ciao!
--
Lorenzo Benaglia
Microsoft MVP - SQL Server
http://blogs.dotnethell.it/lorenzo/
http://italy.mvps.org

nous Profilo | Newbie

Fatto, creata Vpn ma ora per connettermi al server sql mi basta creare un stringa di connessione adatta ?
e se si, tipo questa ?
Provider=SQLNCLI.1;
Integrated Security=SSPI;
Persist Security Info=False;
Initial Catalog=*NOMEDATABASE*;
Data Source=*NOMESERVER*

Ok?

lbenaglia Profilo | Guru

>Fatto, creata Vpn ma ora per connettermi al server sql mi basta
>creare un stringa di connessione adatta ?
>e se si, tipo questa ?
>Provider=SQLNCLI.1;
>Integrated Security=SSPI;
>Persist Security Info=False;
>Initial Catalog=*NOMEDATABASE*;
>Data Source=*NOMESERVER*
>
>Ok?

Se il tuo client appartiene allo stesso dominio del server si, altrimenti utilizza la SQL Server Authentication specificando User ID e Password.
Come prima cosa verifica con una telnet <server>, <porta TCP del servizio MSSQLServer> se riesci a raggiungere l'istanza (se lo schermo diventa nero è tutto OK)...

Ciao!
--
Lorenzo Benaglia
Microsoft MVP - SQL Server
http://blogs.dotnethell.it/lorenzo/
http://italy.mvps.org

nous Profilo | Newbie

1. quindi devo prima settare sql in ascolto su una porta fissa anzichè dinamica ?
2. poi aprire il NAT del router su quella porta e reindirizzarlo alla macchina che mi funge da server anke se c'è istallato un normale xp prof. ?

Visto che ho una rete senza domini sia a casa che in uffucio e che i workgroup dell'ufficio e di casa sono ovviamente differenti, ovviamente perke ho messo in rete il condominio e non potevo dargli il nome dell'ufficio dovrò usare l'autenticazione sql. ma connettendomi con vpn ho dato le credenziali del user (amministratore) principale che uso in ufficio che dovrebbero essere quelle stesse che usa sql server in windows auth. quindi protrei usare anke windows auth. ??????

Saluti.

lbenaglia Profilo | Guru

>1. quindi devo prima settare sql in ascolto su una porta fissa
>anzichè dinamica ?
Sarebbe opportuno farlo in modo da definire una sola eccezione sul firewall.

>2. poi aprire il NAT del router su quella porta e reindirizzarlo
>alla macchina che mi funge da server anke se c'è istallato un
>normale xp prof. ?
Esatto.

>Visto che ho una rete senza domini sia a casa che in uffucio
>e che i workgroup dell'ufficio e di casa sono ovviamente differenti,
>ovviamente perke ho messo in rete il condominio e non potevo
>dargli il nome dell'ufficio dovrò usare l'autenticazione
>sql. ma connettendomi con vpn ho dato le credenziali del user
>(amministratore) principale che uso in ufficio che dovrebbero
>essere quelle stesse che usa sql server in windows auth. quindi
>protrei usare anke windows auth. ??????
Mmmmm.... ti conviene provare e farci sapere com'è andata

Ciao!
--
Lorenzo Benaglia
Microsoft MVP - SQL Server
http://blogs.dotnethell.it/lorenzo/
http://italy.mvps.org

nous Profilo | Newbie

Apposto con la VPN e positivo il riscontro con telnet

ora pero in vb:

Questo è l'errore che mi dà:
"Si è verificato un errore mentre si cercava di stabilire una connessione con il server. Quando ci si connette a SQL Server 2005, questo errore potrebbe essere provocato dal fatto che l'SQL Server non ammette connessioni remote sotto le impostazioni predefinite. (provider: Provider Named Pipes, error: 40 - Impossibile aprire una connessione a SQL Server)"

con questa connectionString:
"Integrated Security=SSPI;Persist Security Info=False;User ID=MioUI;Password=******;Initial Catalog=FeniceFile;Data Source=DIREZIONE_DIEGO"
Dove FeniceFile è il nome del db in sql server
DIREZIONE_DIEGO è il nome del server

SAluti

lbenaglia Profilo | Guru

>Questo è l'errore che mi dà:
>"Si è verificato un errore mentre si cercava di stabilire una
>connessione con il server. Quando ci si connette a SQL Server
>2005, questo errore potrebbe essere provocato dal fatto che l'SQL
>Server non ammette connessioni remote sotto le impostazioni predefinite.
>(provider: Provider Named Pipes, error: 40 - Impossibile aprire
>una connessione a SQL Server)"

Di default SQL Server 2005 Express Edition consente solo connessioni locali.
Per abilitare gli accessi remoti lancia il SQL Server 2005 Surface Area Configuration e seleziona Surface Area Configuration for Services and Connections.
Dalla tree view di sinistra seleziona Database Engine > Remote Connections e fai click su Local and remote connections selezionando il protocollo TCP/IP (Using TCP/IP only).
OK, riavvia il servizio MSSQLServer (ad esempio dall'applet Services del pannello di controllo oppure con i comandi C:\>net stop MSSQLServer e C:\>net start MSSQLServer da una shell DOS).
A questo punto la tua istanza è configurata per accettare connessioni remote.

>con questa connectionString:
>"Integrated Security=SSPI;Persist Security Info=False;User ID=MioUI;Password=******;Initial
>Catalog=FeniceFile;Data Source=DIREZIONE_DIEGO"
>Dove FeniceFile è il nome del db in sql server
>DIREZIONE_DIEGO è il nome del server

Questa connection string contiene sia Integrated Security=SSPI che indica di utilizzare la Windows Authentication che User ID e Password utilizzate per la SQL Server Authentication.
Ora, o usi una modalità di autenticazione oppure l'altra
Se il server che ospita SQL Server è in un dominio ed il tuo client no, utilizza la SQL Server Authentication (che dovrai esplicitamente abilitare via SQL Server Management Studio).

Ciao!
--
Lorenzo Benaglia
Microsoft MVP - SQL Server
http://blogs.dotnethell.it/lorenzo/
http://italy.mvps.org

nous Profilo | Newbie

(che dovrai
>esplicitamente abilitare via SQL Server Management Studio).

Come ?

Tieni presente che ho anke pcAnyware quindi posso operare direttamente sulla macchina remota.

Saluti

lbenaglia Profilo | Guru

>Come ?
"Procedura: Modifica della modalità di autenticazione del server"
http://msdn2.microsoft.com/it-it/library/ms188670.aspx

Ciao!
--
Lorenzo Benaglia
Microsoft MVP - SQL Server
http://blogs.dotnethell.it/lorenzo/
http://italy.mvps.org

nous Profilo | Newbie

mi e satato qlk nella macchina ufficio e non rieco piu a collegarmi da casa provero domani faro un salto in ufficio, cmq grazie fino ad ora sei stato un angelo
ciao

nous Profilo | Newbie

allora ankora nulla.
ho modificato la stringa di connessione in:
"Password=*******;User ID=****;Data Source=DIREZIONE_DIEGO"

ho provato anke con l'account sa... riabilitato come da procedura mcs

ma siamo sicuri che in data Source basta il nome del server ?
essendo su altra macchina non ci vorrebbe che so ??? il nome della macchina o l'ind. IP ?
Ciao

ps
per quanto riguarda le porte (per MSSqlServer) da aprire sul router: non dovrebbero esserci altrimenti a che pro fare la vpn ? giusto ?

lbenaglia Profilo | Guru

>ma siamo sicuri che in data Source basta il nome del server ?
Se si tratta di una istanza di default la risposta è si.
Se utilizzi una istanza denominata dovrai speficare nome server\nome istanza.

>essendo su altra macchina non ci vorrebbe che so ??? il nome
>della macchina o l'ind. IP ?
Dalle mie parti il nome della macchina e quello del server sono sinonimi
Hai verificato con un ping se il nome server viene risolto?
Se non viene risolto utilizza l'indirizzo IP.

>per quanto riguarda le porte (per MSSqlServer) da aprire sul
>router: non dovrebbero esserci altrimenti a che pro fare la vpn
>? giusto ?
Prima hai detto che hai già verificato l'apertura della porta TCP 1433 eseguendo una telnet... se il servizio risponde non occorre aprire nessun'altra porta.

Ciao!
--
Lorenzo Benaglia
Microsoft MVP - SQL Server
http://blogs.dotnethell.it/lorenzo/
http://italy.mvps.org

nous Profilo | Newbie

Funzia evvivvvvva
che stupido
bastava usare l'indirizzo ip al posto del nome della macchina
con il ping ho risolto , il primo andava il secondo no, grazieeeeeeeeeeeeeee
a proposito come mai sta cosa ????
Ciao

lbenaglia Profilo | Guru

>Funzia evvivvvvva
>che stupido
>bastava usare l'indirizzo ip al posto del nome della macchina
>con il ping ho risolto , il primo andava il secondo no, grazieeeeeeeeeeeeeee
>a proposito come mai sta cosa ????
Perché il tuo client non sta utilizzando il DNS su cui è registrato il server, quindi non è in grado di risolvere il nome del server.
Volendo potresti editare il file HOSTS del tuo client (lo trovi in C:\Windows\System32\drivers\etc) inserendo l'indirizzo IP del server <tab> nome.
A questo punto il nome del server verrà risolto interrogando il file locale HOSTS.
In alternativa puoi crearti un alias utilizzando il SQL Server Configuration Manager.
Lancialo, seleziona "SQL Native Client Configuration", Aliases, tasto DX > New Alias... e compila la scheda inserendo il nome che vuoi assegnare all'alias (ad esempio il nome del server), la porta utilizzata dall'istanza remota, il protocolo (va bene TCP/IP) ed infine l'indirizzo IP del server.
Ora nella stringa di connessione puoi utilizzare l'alias al posto dell'indirizzo IP.

Ciao!
--
Lorenzo Benaglia
Microsoft MVP - SQL Server
http://blogs.dotnethell.it/lorenzo/
http://italy.mvps.org
Partecipa anche tu! Registrati!
Hai bisogno di aiuto ?
Perchè non ti registri subito?

Dopo esserti registrato potrai chiedere
aiuto sul nostro Forum oppure aiutare gli altri

Consulta le Stanze disponibili.

Registrati ora !
Copyright © dotNetHell.it 2002-2024
Running on Windows Server 2008 R2 Standard, SQL Server 2012 & ASP.NET 3.5