Principale utente con più risposte
connessione a database

Domanda
-
salve a tutti ho creato un database utilizzando sql server management in un server con Windows server 2008 e vorrei rendere accessibile il database dal mio sito internet creato in asp.net
ho cercato la soluzione in internet ma non sono ancora riuscito a trovare una soluzione
accedo al server da desktop remoto inserendo una usermail e password da amministratore
al motore di database accedo utilizzando l'autenticazione windows
qualcuno ha qualche buona guida da consigliarmi per risolvere il mio problema?
la porta 1433 è aperta- Modificato luca mirgoni mercoledì 24 settembre 2014 21:02
Risposte
-
Allora, anche se non è la best practice.. proviamo a farla semplice. Segui questi passi:
- crea una login su SQL Server e chiamala "Prova" e dagli la password che vuoi
- sempre nella form di creazione login, spostati su User Mapping (a sinistra) e associa la credenziale sul database di riferimento, scegliendo con cura il corretto ruolo (se non ne hai fatti tu, ce ne sono di preconfezionati dei quali db_owner è l'amministratore del database, ma anche il più potenzialmente vulnerabile)
- una volta fatto ciò, metti nella connection string questo: "Data Source=NOMESERVER_O_IP\EVENTUALE_NOME_ISTANZA; Initial Catalog=IL_NOME_DEL_DATABASE; User Id=Prova; Password=LA_TUA_PWD;" (es. Data Source=SERVER1; Initial Catalog=DBTest; UserId=Prova; Password=pippo;")
Il client esterno, se intendi dove risiede l'applicazione, deve vedere il SQL Server e la porta 1433 deve essere aperta. Fai attenzione che il client che naviga col browser la tua app, non accederà direttamente al database.. è il server su cui sta l'asp.net che accede alla sorgente dati.
Per ora prova quanto detto sopra e facci sapere.
ciao
Alessandro Alpi SQL Server MVP
- Proposto come risposta Edoardo BenussiMVP, Moderator giovedì 25 settembre 2014 08:05
- Contrassegnato come risposta luca mirgoni giovedì 25 settembre 2014 09:12
Tutte le risposte
-
Ciao jetri,
l'applicazione asp.net risiede su un altro server? se sì, se la porta 1433 è aperta e se l'altro server vede il sql server, basta mettere una connection string all'interno della tua applicazione (tipicamente nel suo web.config, nella sezione apposita). In generale le connectionstring valide per il tuo caso sono qui.
Vi è però da capire come vuoi connetterti. Dare l'accesso amministratore all'applicazione non è di certo una buona pratica. Poi vi è da capire se i due server sono sotto lo stesso dominio. Ad ogni modo, dovrai capire se puoi usare una Windows authentication oppure una SQL Authentication (per quanto possibile, cerca di utilizzare la prima).
Le connectionstring relative ai due tipi di autenticazione sono leggermente differenti. Prova a darci ulteriori dettagli, in modo da poter procedere con una risposta più concreta.
Alessandro Alpi SQL Server MVP
- Proposto come risposta Edoardo BenussiMVP, Moderator giovedì 25 settembre 2014 08:04
-
ho provato la stringa di connessione
server=mioipserver;Initial Catalog=due;Integrated Security=true
ma mi restituisce l'errore System.Data.SqlClient.SqlException: Login failed for user 'NT AUTHORITY\ANONYMOUS LOGON
mentre con
"server=ip_server;Initial Catalog=due;Integrated Security=true;User ID=administrator;Password=password"
stesso errore
mentre nel server ho anche installato visual studio e se creo una connessione al database la crea correttamente e andando sulle proprietà la stringa di connessione è
Data Source=nome server;Initial Catalog=due;Integrated Security=True
io vorrei collegarmi al database da un client esterno ma non trovo il modo qualcuno puo aiutarmi?
-
Allora, anche se non è la best practice.. proviamo a farla semplice. Segui questi passi:
- crea una login su SQL Server e chiamala "Prova" e dagli la password che vuoi
- sempre nella form di creazione login, spostati su User Mapping (a sinistra) e associa la credenziale sul database di riferimento, scegliendo con cura il corretto ruolo (se non ne hai fatti tu, ce ne sono di preconfezionati dei quali db_owner è l'amministratore del database, ma anche il più potenzialmente vulnerabile)
- una volta fatto ciò, metti nella connection string questo: "Data Source=NOMESERVER_O_IP\EVENTUALE_NOME_ISTANZA; Initial Catalog=IL_NOME_DEL_DATABASE; User Id=Prova; Password=LA_TUA_PWD;" (es. Data Source=SERVER1; Initial Catalog=DBTest; UserId=Prova; Password=pippo;")
Il client esterno, se intendi dove risiede l'applicazione, deve vedere il SQL Server e la porta 1433 deve essere aperta. Fai attenzione che il client che naviga col browser la tua app, non accederà direttamente al database.. è il server su cui sta l'asp.net che accede alla sorgente dati.
Per ora prova quanto detto sopra e facci sapere.
ciao
Alessandro Alpi SQL Server MVP
- Proposto come risposta Edoardo BenussiMVP, Moderator giovedì 25 settembre 2014 08:05
- Contrassegnato come risposta luca mirgoni giovedì 25 settembre 2014 09:12
-
ciao Alessandro scusa ma ho un problema di base, la porta 1433 è sicuramente aperta perché testata con telnet ma non so cosa intendi per vedere il sql server. pensavo bastasse inserire nella connection string l'indirizzo ip del server
più i altri parametri per creare la connessione.
in pratica devo creare una connessione tra il server dove risiede l'applicazzione asp.net e il server dove cè sql server?
scusami ma ti chiedo questo perché qualche tempo fa ho dovuto utilizzare un database esterno alla mia applicazione asp.net e non ho fatto altro che inserire la connectionstring che mi era stata fornita per creare l'accesso al database.- Modificato luca mirgoni giovedì 25 settembre 2014 08:00
-
-