Home Page
Articoli
Tips & Tricks
News
Forum
Archivio Forum
Blogs
Sondaggi
Rss
Video
Utenti
Chi Siamo
Contattaci
Username:
Password:
Login
Registrati ora!
Recupera Password
Home Page
Stanze Forum
SQL Server 2000/2005/2008, Express, Access, MySQL, Oracle
Opinione su apertura chiusura connessione a sql
venerdì 15 luglio 2011 - 15.37
Elenco Threads
Stanze Forum
Aggiungi ai Preferiti
Cerca nel forum
stez
Profilo
| Newbie
7
messaggi | Data Invio:
ven 15 lug 2011 - 15:37
Ciao a tutti,
vi chiedo la vostra opinione riguardo il 'quando' aprire la connessione a sql... voi l'aprite all'apertura dei vostri software "globale" e la chiudete alla chiusura o ogni volta che dovete fare una query, aprite->eseguite-> chiudete? oppure aprite ad ogni apertura di un form, fillate le combo/altro e poi chiudete?
ovviamente se devo fare 3 query "di fila" apro -> eseguo eseguo eseguo -> chiudo e se ho un "task" aperto che si attiva con un timer ogni tanto apro->eseguo->chiudo senza lasciare la connessione lì aperta a fare nulla...
ma in generale, secondo voi, qual'è la soluzione migliore?
altra domanda
io attualmente ho il mio utente sa con tutti i privilegi e creo su sql l'utente pippo che può vedere solo i db/tabelle/stored etc etc che gli servono... se il software (fatto in .net) è installato su 50 pc, tutti i pc si collegano con la classica stringa all'istanza sql con utente pippo
avrebbe senso/qualche vantaggio creare n(50) utenti uguali a pippo sull'istanza sql e passare computer per computer a modificare la stringa di connessione al db del programma per fargli usare il suo utente sql "univoco" invece di pippo?
grazie
ciao
lbenaglia
Profilo
| Guru
5.625
messaggi | Data Invio:
ven 15 lug 2011 - 15:41
>ma in generale, secondo voi, qual'è la soluzione migliore?
La soluzione migliore per garantire la massima scalabilità consiste nell'aprire la connessione il più tardi possibile, eseguire la query (una) e chiuderla subito dopo.
>io attualmente ho il mio utente sa con tutti i privilegi e creo
>su sql l'utente pippo che può vedere solo i db/tabelle/stored
>etc etc che gli servono... se il software (fatto in .net) è installato
>su 50 pc, tutti i pc si collegano con la classica stringa all'istanza
>sql con utente pippo
>avrebbe senso/qualche vantaggio creare n(50) utenti uguali a
>pippo sull'istanza sql e passare computer per computer a modificare
>la stringa di connessione al db del programma per fargli usare
>il suo utente sql "univoco" invece di pippo?
Il vantaggio sta nel fatto che ogni singola login potrebbe avere permission personalizzate e saresti in grado di tenere traccia di tutti gli accessi. Se non è questo il caso, puoi utilizzare una login comune.
>grazie
Prego.
Ciao!
--
Lorenzo Benaglia
Microsoft MVP - SQL Server
http://blogs.dotnethell.it/lorenzo/
alx_81
Profilo
| Guru
8.814
messaggi | Data Invio:
ven 15 lug 2011 - 16:16
Ciao, volevo aggiungere un post che a mio avviso può esserti utile per capire come gestire le connessioni dall'applicazione
>>ma in generale, secondo voi, qual'è la soluzione migliore?
>La soluzione migliore per garantire la massima scalabilità consiste
>nell'aprire la connessione il più tardi possibile, eseguire la
>query (una) e chiuderla subito dopo.
Quoto Lorenzo e aggiungo questo post, ricordandoti che comunque ogni connessione viene presa da un apposito pool che ricicla al suo interno le connessioni stesse, ottimizzandone la gestione:
http://www.dotnethell.it/forum/messages.aspx?ThreadID=38489
>>io attualmente ho il mio utente sa con tutti i privilegi e creo
>>su sql l'utente pippo che può vedere solo i db/tabelle/stored
>>etc etc che gli servono... se il software (fatto in .net) è installato
>>su 50 pc, tutti i pc si collegano con la classica stringa all'istanza
>>sql con utente pippo
>>avrebbe senso/qualche vantaggio creare n(50) utenti uguali a
>>pippo sull'istanza sql e passare computer per computer a modificare
>>la stringa di connessione al db del programma per fargli usare
>>il suo utente sql "univoco" invece di pippo?
>Il vantaggio sta nel fatto che ogni singola login potrebbe avere
>permission personalizzate e saresti in grado di tenere traccia
>di tutti gli accessi. Se non è questo il caso, puoi utilizzare
>una login comune.
Aggiungo anche che se i tuoi pc sono sotto lo stesso dominio del sql server o sotto un dominio trustato dal sql server, potresti pensare ad un gruppo windows fatto sul domain controller, per dare accesso ad ogni utente WINDOWS verso l'applicazione (autenticando di fatto l'utente tramite il gruppo). In questo modo ogni utente avrebbe il suo "single sign on" che corrisponde a quello della macchina e sarebbe, di conseguenza, più tracciabile (anche se devi scrivere chi ha fatto cosa da qualche parte ad esempio).
Ciao!
--
Alessandro Alpi | SQL Server MVP
MCP|MCITP|MCTS|MCT
http://www.alessandroalpi.net
http://blogs.dotnethell.it/suxstellino
http://mvp.support.microsoft.com/profile/Alessandro.Alpi
stez
Profilo
| Newbie
7
messaggi | Data Invio:
gio 21 lug 2011 - 09:56
capito grazie, lo scenario è più semplice e non ci sono domini etc etc
ma c'è un posto dove posso vedere quali connessioni sono aperte verso l'istanza? sql 2005 express
con 50 login sarebbe più ordinato ma ho lo svantaggio che un nuovo grant deve essere applicato a tutti gli utenti (ma quello lo faccio con qualche riga di codice senza troppi problemi)
altri vantaggi\svantaggi legati alle prestazioni? come spazio occupato in mb del db immagino che l'incremento sia risibile no?
alx_81
Profilo
| Guru
8.814
messaggi | Data Invio:
gio 21 lug 2011 - 10:40
>ma c'è un posto dove posso vedere quali connessioni sono aperte
>verso l'istanza? sql 2005 express
c'è una vista di sistema chiamata sys.dm_exec_sessions
>con 50 login sarebbe più ordinato ma ho lo svantaggio che un
>nuovo grant deve essere applicato a tutti gli utenti (ma quello
>lo faccio con qualche riga di codice senza troppi problemi)
>altri vantaggi\svantaggi legati alle prestazioni? come spazio
>occupato in mb del db immagino che l'incremento sia risibile no?
direi che problemi di spazio e prestazioni non esistono in questo
--
Alessandro Alpi | SQL Server MVP
MCP|MCITP|MCTS|MCT
http://www.alessandroalpi.net
http://blogs.dotnethell.it/suxstellino
http://mvp.support.microsoft.com/profile/Alessandro.Alpi
Torna su
Stanze Forum
Elenco Threads
Partecipa anche tu! Registrati!
Hai bisogno di aiuto ?
Perchè non ti registri subito?
Dopo esserti registrato potrai chiedere
aiuto sul nostro
Forum
oppure aiutare gli altri
Consulta le
Stanze
disponibili.
Registrati ora !