Stringa connessione esterna all'applicazione

giovedì 12 novembre 2009 - 17.15

sg Profilo | Newbie

salve,
vorrei gestire un'unica stringa di connessione esterna ad un applicativo che sto realizzando per esempio memorizzata su un file di testo di configurazione di mia gestione.
Il database in questione riguarda SQL Server 2005 Express.
Il problema è che una stringa fissa a programma non funziona nel caso l'applicativo gira in locale su diversi pc perchè installando sql server 2005 express mi crea una istanza diversa nel formato "nome pc\SQLEXPRESS".
Vorrei un consiglio su come gestire bene una connessione ed anche come installare sql server 2005 express senza avere problemi con le istanze ed inoltre dove e come memorizzare l'id e password di connessione in modo che non sia facilmente individuabile.
Il linguaggio di programmazione in questione è VB.NET 2005.
Grazie

alx_81 Profilo | Guru

>salve,
ciao

>sql server 2005 express mi crea una istanza diversa nel formato
>"nome pc\SQLEXPRESS".
>Vorrei un consiglio su come gestire bene una connessione ed anche
>come installare sql server 2005 express senza avere problemi
>con le istanze ed inoltre dove e come memorizzare l'id e password
>di connessione in modo che non sia facilmente individuabile.
>Il linguaggio di programmazione in questione è VB.NET 2005.
se sei in locale puoi usare al posto di "nome pc" il punto ".":
.\SQLEXPRESS. Ma quindi ogni applicazione usa il SUO database in locale?

>Grazie
di nulla!
--

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

sg Profilo | Newbie

quindi va bene la seguente stringa di connessione con il punto?
Data Source=.\SQLEXPRESS;Initial Catalog=SGData;Persist Security Info=True;User ID=sa;Password=xxxxxx

Sto realizzando un programma semplificato di stampa scontrino con i relativi programmi relativi e quindi ogni pc con la sua cassa ha un database e per ognuno la sera preleverò i dati che saranno unificati su un sistema AS/400.

Mi chiedevo invece per la password ne imposto una uguale per tutti i database, che memorizzerò nella stringa di connessione nell'applicazione, oppure l'sql si serve di qualche chiave di registro che posso sfruttare?

alx_81 Profilo | Guru

>quindi va bene la seguente stringa di connessione con il punto?
>Data Source=.\SQLEXPRESS;Initial Catalog=SGData;Persist Security
>Info=True;User ID=sa;Password=xxxxxx
sì, anche se non userei mai sa. Meglio fare un'utenza apposita, anche una per programma. E poi magari fare un gruppo al quale poi fornirai le grant agli oggetti, solo quelle necessarie per tenere protetto il sistema.
Poi vedi tu.

>Mi chiedevo invece per la password ne imposto una uguale per
>tutti i database, che memorizzerò nella stringa di connessione
>nell'applicazione, oppure l'sql si serve di qualche chiave di
>registro che posso sfruttare?
Ogni applicazione avrà un file app.config all'interno del quale è sufficiente definire una sezione connectionString in cui creare la tua connection string. In fase di deploy fai un config per ogni "cliente".
Quindi ogni connectionstring potrà avere il suo utente e la sua pwd.

--

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

sg Profilo | Newbie

Attualmente ho tanti programmi(progetti) separati ,quindi, dal programma scontrino posso richiamare l'anagrafica clienti o articoli e tanti altri ognuno dei quali ha la sua stringa di connessione che è uguale per tutti.
Sto unificando il tutto in un menù con un login di partenza da parte dell'utente.
Quindi mi consigli di creare tanti utenti nell'sql server che potrei considerare i cassieri, per esempio, che hanno chi più e chi meno autorizzazioni.
Dovrei a questo punto costruirmi la stringa a programma abbinando l'utente e la password immessa a video facendola coincidere con quella di connessione al database di sql server?
Quando installo i programmi nei vari pc basta i .exe o devo portarmi gli app.config e quant'altro?

alx_81 Profilo | Guru

>Quindi mi consigli di creare tanti utenti nell'sql server che
>potrei considerare i cassieri, per esempio, che hanno chi più
>e chi meno autorizzazioni.
>Dovrei a questo punto costruirmi la stringa a programma abbinando
>l'utente e la password immessa a video facendola coincidere con
>quella di connessione al database di sql server?
un conto è la login applicativa, ovvero quella del programma, che puoi sempre mettere nel .config, un altro è l'utenza che usi per connetterti a sql.
Essendo i database in locale, se una volta su sql l'utente può fare sempre le stesse cose, puoi anche pensare di fare una sola utenza sql che ha le permission sugli oggetti del database.
Per dare autorizzazioni diverse alle funzionalità invece è la login applicativa che decide e non ha nulla a che fare con sql server.
Se l'accesso agli oggetti è il medesimo e le cose che cambiano solo solo a livello di applicazione, devi gestirlo sull'applicazione.

>Quando installo i programmi nei vari pc basta i .exe o devo portarmi gli app.config e quant'altro?
se metti le login applicative all'interno del config e le connection string, ogni cliente dovrà avere le sue.
Bisogna capire bene che cosa ti serve veramente. Potresti anche pensare di fare le stesse login applicative e le stesse login a sql, tanto il db è diverso..
dipende come hai intenzione di gestire i profili e le autorizzazioni.
--

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
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 !
Copyright © dotNetHell.it 2002-2024
Running on Windows Server 2008 R2 Standard, SQL Server 2012 & ASP.NET 3.5