Accesso SQLSrv2005Exp Altro PC Gruppo di Lavoro

di il
6 risposte

Accesso SQLSrv2005Exp Altro PC Gruppo di Lavoro

Un saluto a tutti.

Premessa:
Di recente mi sono riavvicinato alla programmazione in Visual Basic 2008 per la realizzazione di un progetto lato desktop.
Tale progetto si appoggia ad un Database contenuto in Microsoft SQL Server 2005 Express.
Dopo numerosissime ricerche in rete e consultazione di libri (l'ultimo l'ho pagato 50 Euro) sono riuscito ad ottenere qualche risultato ma non lo ritengo ancora insoddisfacente

Situazione:
  • 1) Implementazione Lan: OK
    • Ho 2 pc con SO win7 correttamente collegati tramite Wireless in un gruppo di lavoro.
    2) Accesso con Autenticazione di SQL Server: OK
    • Se dal Computer B (Client) lancio l'applicazione ricevo in risposta dal computer A (Server) il contenuto di una tabella in un Database contenuto nel SQL server ivi installato.
    3) Accesso con Autenticazione di Windows: NON OK
    • a) Caso 1:
      • Se dal Computer A (Client) lancio l'applicazione ricevo in risposta dal computer A (Server) il contenuto di una tabella in un Database contenuto nel SQL server ivi installato.
      b) Caso 2:
      • Se dal Computer B (Client) lancio l'applicazione ricevo in risposta dal computer A (Server) il seguente messaggio di errore:
        Errore.jpg
        Errore.jpg
... sembrerebbe che non riconosca l'utente che accede...

Configurazione SQL Server:
Per completezza di trattazione ecco le immagini di come ho configurato per la connessessione Remota: Ed ecco anche l'avvio del servizio SQLBrowser:
sqlbrowser.jpg
sqlbrowser.jpg

Configurazione FireWall: OK
Ho creato 2 regole per le connessioni in entrata tanto per SQLserver.exe che per SQlBrowser.exe

Parte relativa alla Programmazione:
Per accedere ad un Database in Microsoft SQL Server 2005 Express, nell'evento click di un pulsante ho messo il seguente codice che permette l'accesso al SQL Server in parola sfruttando l'autenticazione di SQL Server stessa...
Imports System.Data.SqlClient

Public Class Main

    Private Sub bt_Connect_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles bt_Connect.Click

        Dim sqlconn As SqlConnection
        Try
            sqlconn = New SqlConnection("Persist Security Info=False;User ID=Utente1;Password=12345;Initial Catalog=GestoreTabelle;Server=ANGELOPC\SQLEXPRESS")
            sqlconn.Open()
            MsgBox("Database Connesso")
        Catch
            MsgBox("Database non Connesso")
        End Try
End Sub
Questo di seguito invece è il codice che ho utilizzato per ottenere il medesimo risultato ma sfruttando l'autenticazione di windows
Imports System.Data.SqlClient

Public Class Main

    Private Sub bt_Connect_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles bt_Connect.Click

        Dim sqlconn As SqlConnection
        Try
            sqlconn = New SqlConnection("Database=GestoreTabelle;Server=ANGELOPC\SQLEXPRESS;Trusted_Connection=true")
            sqlconn.Open()
            MsgBox("Database Connesso")
        Catch
            MsgBox("Database non Connesso")
        End Try
End Sub
la differenza tra il primo e il secondo sta nella Stringa di connessione... ho provato a mettere anche le seguenti altre stringhe di connessione e il risultato non cambia...

"Persist Security Info=False;Integrated Security=true;Initial Catalog=GestoreTabelle;Server=ANGELOPC\SQLEXPRESS"
"Persist Security Info=False;Integrated Security=SSPI;database=GestoreTabelle;server=ANGELOPC\SQLEXPRESS"
"Persist Security Info=False;Trusted_Connection=True;database=GestoreTabelle;server=ANGELOPC\SQLEXPRESS"

Aggiungo anche che credo si tratti di un problema di configurazione di MS SQL server in quanto anche da Access la connessione mediante autenticazione SQL server va a buon fine mentre quella che si basa su Windows (quella trusted per intenderci) mi da errore e nello specifico:
errore2.jpg
errore2.jpg

Sperando in un vostro possibile aiuto saluti tutti.

6 Risposte

  • Re: Accesso SQLSrv2005Exp Altro PC Gruppo di Lavoro

    Provo ad integrare il post precedente con un dubbio che, se risolto, forse potrebbe essere la soluzione al quesito principale:

    Premessa:
    Considerato che sono sempre più convinto che il codice non c'entri nulla e considerato quanto ho letto in questa discussione (VB2010 Applicazione con Db Sql Express da più postazioni) della quale evidenzio il seguente passaggio:

    luciusinfabula ha scritto:


    3) Mi sembra che la stringa così come è strutturata indichi il tipo di connessione Trusted, cioè il pc client si logga al server con le credenziali di windows del client, ma per far questo chiaramente il client deve essere riconosciuto dal server. Il pc client è stato autenticato a livello user nel server?
    Dubbio:
    Come si fà a autenticare un pc client a livello user nel server?

    Per l'amministratore:
    non sapevo se era il caso di aprire un nuovo 3d da un'altra parte considerato che l'argomento principale non è cambiato... tuttavia se si ritiene più produttivo aprire un nuovo 3d... per piacere indicatemi dove aprirlo
  • Re: Accesso SQLSrv2005Exp Altro PC Gruppo di Lavoro

    Parliamo del server Windows. Quali utenti ha configurato?
  • Re: Accesso SQLSrv2005Exp Altro PC Gruppo di Lavoro

    Buona sera e grazie per la risposta.

    come ho scritto all'inizio del primo post ho windows7 su entrambi i pc e nel computer dove ho installato MS SQL Server ho la seguente situazione:

    Utenti che hanno accesso al PC:
    estratto.jpg
    estratto.jpg

    mentre nel SQL SERVER nella scheda "protezione" ho:
    estratto2.jpg
    estratto2.jpg

    non saprei come fare ad autenticare un utente di altro pc... magari appartenente allo stesso gruppo... saprei farlo per un dominio ma per il gruppo non so proprio come fare...

    suppongo windows server sia più adatto... forse con windows7 non posso avvalermi di tale funzione... in tal caso, se possibile, vorrei sapere se ho alternative al cambio di SO (es. Windows Server Update Services come aggiornamento a win7 ... se applicabile ...)

    Ancora grazie
  • Re: Accesso SQLSrv2005Exp Altro PC Gruppo di Lavoro

    In ogni caso, non puoi usare una connessione trusted tra i due computer se non stanno in un dominio.

    In questo caso, l'unico modo di operare è con l'utente di SQL.
  • Re: Accesso SQLSrv2005Exp Altro PC Gruppo di Lavoro

    Grazie
    almeno smetto di impazzirci sopra.

    ...e per gli eventuali altri lettori che potrebbero avere lo stesso problema, facendo delle ricerche in rete, supporto la tesi di Oregon con .

    Saluti.
  • Re: Accesso SQLSrv2005Exp Altro PC Gruppo di Lavoro

    Beh, in quella discussione, la risposta del mio amico Luca è chiara ...
Devi accedere o registrarti per scrivere nel forum
6 risposte