none
connessione a database RRS feed

  • 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
    mercoledì 24 settembre 2014 19:31

Risposte

  • Allora, anche se non è la best practice.. proviamo a farla semplice. Segui questi passi:

    1. crea una login su SQL Server e chiamala "Prova" e dagli la password che vuoi
    2. 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)
    3. 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

    giovedì 25 settembre 2014 07:38
    Moderatore

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

    giovedì 25 settembre 2014 07:17
    Moderatore
  • 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?

    giovedì 25 settembre 2014 07:25
  • Allora, anche se non è la best practice.. proviamo a farla semplice. Segui questi passi:

    1. crea una login su SQL Server e chiamala "Prova" e dagli la password che vuoi
    2. 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)
    3. 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

    giovedì 25 settembre 2014 07:38
    Moderatore
  • 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.
    giovedì 25 settembre 2014 07:58
  • se il telnet dall'asp.net al sql server risponde, ci siamo.

    Alessandro Alpi SQL Server MVP

    giovedì 25 settembre 2014 08:30
    Moderatore
  • ottimo grazie ci sono riuscito ora cerchero di impostare l'accesso con l'auntentiicazione windows
    giovedì 25 settembre 2014 09:12