none
Accesso non riuscito per l'utente... Sql server c# RRS feed

  • Domanda

  • Salve a tutti, 

    recentemente ho iniziato a programmare in visual C# 2012 in applicazione windows form inserendo i database con SQL Server 2012. Ho creato un database locale denominato "Palestra" con all'interno una tabella "Soci" ma dal momento che provo a connettermi usando il seguente codice:

    string connectionString = "Data Source=localhost;Initial Catalog=Palestra;Integrated Security=True;";

    mi compare l'errore :

    "Eccezione non gestita di tipo 'System.Data.SqlClient.SqlException' in System.Data.dll
    Informazioni aggiuntive: Impossibile aprire il database "Palestra" richiesto dall'account di accesso. Accesso non riuscito.
    Accesso non riuscito per l'utente 'Pc-Desktop1\Lore'."

    Sono giorni che ci sbatto la testa ma  non riesco a trovare una soluzione, qualcuno mi può aiutare? Grazie.


    • Modificato loryman venerdì 7 febbraio 2014 18:03
    venerdì 7 febbraio 2014 18:02

Risposte

  • Ciao,

    L'accesso tramite Integrated Security implica che l'utente Windows che stai usando (nel tuo caso PC-DESKTOP1\Lore) abbia i corretti permessi di accesso sia all'istanza SQL Server, sia al database in questione (nel tuo caso, "Palestra").

    Apri il SQL Server Management Studio e collegati all'istanza con un utente avente permessi amministrativi. Poi crea un login a livello di istanza per il tuo utente:

    CREATE LOGIN [PC-DESKTOP1\Lore] FROM WINDOWS
    GO

    A questo punto, puoi creare un utente sul database "Palestra" collegato a questo login:

    USE Palestra
    GO
    
    CREATE USER [PC-DESKTOP1\Lore] FOR LOGIN [PC-DESKTOP1\Lore] 
    GO
    
    EXEC sp_addrolemember 'db_owner', 'PC-DESKTOP1\Lore'
    GO

    In questo caso assegno all'utente il ruolo di db_owner sul database, che è un ruolo molto potente. E' comodo in ambiente di sviluppo, ma probabilmente dovrai poi creare utenti più limitati e specifici per l'applicazione.

    HTH


    Alberto Dallagiacoma
    My Italian Blog: http://blogs.ugidotnet.org/alby
    Twitter: http://twitter.com/albertodall
    DotDotNet - User Group .NET Emilia Romagna: http://www.dotdotnet.org


    venerdì 7 febbraio 2014 18:28

Tutte le risposte

  • Ciao,

    L'accesso tramite Integrated Security implica che l'utente Windows che stai usando (nel tuo caso PC-DESKTOP1\Lore) abbia i corretti permessi di accesso sia all'istanza SQL Server, sia al database in questione (nel tuo caso, "Palestra").

    Apri il SQL Server Management Studio e collegati all'istanza con un utente avente permessi amministrativi. Poi crea un login a livello di istanza per il tuo utente:

    CREATE LOGIN [PC-DESKTOP1\Lore] FROM WINDOWS
    GO

    A questo punto, puoi creare un utente sul database "Palestra" collegato a questo login:

    USE Palestra
    GO
    
    CREATE USER [PC-DESKTOP1\Lore] FOR LOGIN [PC-DESKTOP1\Lore] 
    GO
    
    EXEC sp_addrolemember 'db_owner', 'PC-DESKTOP1\Lore'
    GO

    In questo caso assegno all'utente il ruolo di db_owner sul database, che è un ruolo molto potente. E' comodo in ambiente di sviluppo, ma probabilmente dovrai poi creare utenti più limitati e specifici per l'applicazione.

    HTH


    Alberto Dallagiacoma
    My Italian Blog: http://blogs.ugidotnet.org/alby
    Twitter: http://twitter.com/albertodall
    DotDotNet - User Group .NET Emilia Romagna: http://www.dotdotnet.org


    venerdì 7 febbraio 2014 18:28
  • Grazie della risposta velocissima! Si sospettavo fosse un problema di permessi. E' tutto chiarissimo l'unica cosa che non so ora è come accedere all'istanza da Management studio per poi inserire quei comandi potresti indicarmi il procedimento??
    venerdì 7 febbraio 2014 19:27
  • Il Management Studio di solito viene installato contestualmente a SQL Server, quindi dovresti trovarlo tra le applicazioni presenti sul tuo PC.

    Per quanto riguarda l'accesso, all'inizio ti verranno chieste le credenziali, e dovrai specificare un utente che abbia permessi sufficienti per poter impartire i comandi per la creazione del Login.

    Durante il setup, hai la possibilità di specificare quali sono i sysadmin dell'istanza, quindi dovrai fare login con uno di questi utenti "designati", o al limite accedere con l'utente "sa" se, sempre durante il setup, è stata abilitata l'autenticazione "Mixed".

    HTH,


    Alberto Dallagiacoma
    My Italian Blog: http://blogs.ugidotnet.org/alby
    Twitter: http://twitter.com/albertodall
    DotDotNet - User Group .NET Emilia Romagna: http://www.dotdotnet.org

    lunedì 10 febbraio 2014 15:39