none
LETTURA/SCRITTURA DB SQLSERVER DA REMOTO RRS feed

  • Domanda

  • Salve, ho un problema con sql server,

    ho fatto un tool con c# per la lettura, scrittura di un database su sql server, in locale funziona tutto perfettamente,

    in remoto invece, riesco a stabilire la connessione, riesco addirittura a lanciare uno script per creare un database,ma quando si tratta di inserire

    i dati o leggerli mi dice:  Impossibile eseguire l'accesso per l'utente ''. L'utente non è associato a una connessione SQL Server trusted.

    Ho fatto una sql connection con user e pass e creando lato server un account di accesso con i relativi permessi, ma nn funzia...

    Avete qualche consiglio, non riesco a capire perchè la connessione c'è e ci sono anche i permessi per creare un database lato client ma nisba per leggere o scrivere.

    ANche se avete qualke suggerimento con la gestione dei permessi, può darsi che non li do tutti....

    Grazie in anticipo per l'aiuto

    lunedì 17 dicembre 2012 20:06

Risposte

  • Cosa intendi col "ti da problemi sui nomi" quando crei l'account di accesso? Non ho capito questa frase..

    Come detto nel post precedente, a mio avviso con la windows authentication si lavora bene in locale o con un dominio configurato.. c'è un piccolo trick che ti permette comunque di autenticarti con un account di un computer remoto pur non essendo in una directory, ma onestamente non mi gusta molto..

    Devi usare il comando "RunAS" nello shortcut della management console.. modifica il percorso del target del tuo link in questo modo :

    C:\Windows\System32\runas.exe /user:Server\Username /netonly "C:\Program Files\Microsoft SQL Server\100\Tools\binn\VSShell\Common7\IDE\Ssms.exe"

    modificando i percorsi in base a dove sta il tuo eseguibile.. (:

    Lanciandolo così ti si dovrebbe aprire un prompt dei comandi con la richiesta di password.. have fun!

    • Contrassegnato come risposta Davide Gaglione venerdì 21 dicembre 2012 09:00
    venerdì 21 dicembre 2012 01:27

Tutte le risposte

  • Ciao Davide, a questo indirizzo trovi le informazioni relative a quel messaggio (Microsoft KB)

    Potrebbe essere che il tuo utente non ha comunque le autorizzazioni per fare le cose che stai provando a fare, collegati con un client sql qualsiasi (mi trovo benissimo con SQL DBX ) e crea database, tabelle, e fai una insert.. poi collegati col tuo client ed esegui la semplice insert.. :) se non funziona, controlla bene i tipi di autenticazione sia del tuo client che del server e le autorizzazioni del tuo schema.


    martedì 18 dicembre 2012 00:34
  • Ciao Luca, credo di aver commesso l'errore di non concedere privilegi all'utente per le singole tabelle, credevo che dando i permessi al db per un utente la cosa valeva anche per le tabelle, cmq farò delle prove con le autorizzazioni sulle tabelle e controllerò.

    Grazie mille per la risposta!!!

    martedì 18 dicembre 2012 15:05
  • Non c'è di che se la ritieni valida puoi flaggarla come "risposta del topic" per chiuderlo definitivamente.

    Un saluto

    martedì 18 dicembre 2012 15:48
  • Un ultima cosa,

    non ho ben chiara l'autenticazione di windows su sql server, saresti così gentile da spiegarmi in parole povere come avviene?

    Se voglio creare un nuovo account windows che nome devo associare? Scusami ma non sono molto pratico, mi risulta più semplice la gestione account sql server con user e pass... ma sul db a cui sto lavorando utilizzano l' autenticazione windows...

    mercoledì 19 dicembre 2012 16:19
  • In questa pagina trovi la KB di Microsoft sull'autenticazione in SQL Server.

    Riassumento in breve, esistono 2 modi per autenticarsi su SQL Server, la Windows autentication e la mixed.

    Windows auth : la validazione della connessione avviene tramite la sessione corrente del tuo utente nel sistema, effettuata con protocollo Kerberos, non serve fornire la tua password in quanto tu sei già autenticato sul sistema operativo. Non è un mapping del nome di sistema con un account sql.

    Mixed : Supporta la prima (che in teoria è la piu sicura) ed aggiunge un ulteriore livello, utenti e password vengono salvati nel server sql. Quando un utente (o una sessione di un applicativo) si collega deve sempre fornire user e password.

    Normalmente siamo abituati alle autenticazioni a due parametri, nome e password.. e non è che con l'auth windows non devi fornirli, semplicemente la sicurezza della connessione è affidata alla tua sessione windows e sarà lui a "passarsi il token" con SQL Server. Ovviamente quando usi questo tipo di autenticazione, devi lavorare in locale o in un ambiente con dominio configurato.

    Un saluto!


    • Modificato _ Luca Gaspari mercoledì 19 dicembre 2012 18:29 Correzione
    mercoledì 19 dicembre 2012 16:57
  • sei stato gentilissimo, un ultima cosa e giuro che non approfitto più di te :)

    come faccio, con la windows auth, a fornire l'accesso ad un utente che non sta sulla macchina locale?

    Mi spiego io con la sql auth, vado sulla macchina su cui c'è il server con il db, creo sul server un nuovo account accesso sql server, lo chiamo "pippo" e gli do la password. Dall'altro pc apro sql server cerco il server, il nome dell'account di accesso, la password e il tutto funziona alla grande.

    Con la win auth, quando voglio creare l'account di accesso non ci riesco perchè mi da problemi sui nomi, devo fare qualke configurazione sulla rete?

    Grazie !!!

    giovedì 20 dicembre 2012 11:27
  • Cosa intendi col "ti da problemi sui nomi" quando crei l'account di accesso? Non ho capito questa frase..

    Come detto nel post precedente, a mio avviso con la windows authentication si lavora bene in locale o con un dominio configurato.. c'è un piccolo trick che ti permette comunque di autenticarti con un account di un computer remoto pur non essendo in una directory, ma onestamente non mi gusta molto..

    Devi usare il comando "RunAS" nello shortcut della management console.. modifica il percorso del target del tuo link in questo modo :

    C:\Windows\System32\runas.exe /user:Server\Username /netonly "C:\Program Files\Microsoft SQL Server\100\Tools\binn\VSShell\Common7\IDE\Ssms.exe"

    modificando i percorsi in base a dove sta il tuo eseguibile.. (:

    Lanciandolo così ti si dovrebbe aprire un prompt dei comandi con la richiesta di password.. have fun!

    • Contrassegnato come risposta Davide Gaglione venerdì 21 dicembre 2012 09:00
    venerdì 21 dicembre 2012 01:27
  • Allora ho capito. Nell'azienda dove sono andato, e per la quale sto facendo il lavoro di tesi, utilizzavano una windows auth quindi necessariamente avevano un dominio configurato interno.

    Grazie ancora e auguri di buon Natale!!!

    venerdì 21 dicembre 2012 09:00
  • Allora nella stringa sopra devi configurare il runas con /user:Dominio\Utente 

    Di nulla, buon Natale anche a te! (:

    venerdì 21 dicembre 2012 09:30