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
Account e sicurezza
venerdì 06 ottobre 2006 - 09.24
Elenco Threads
Stanze Forum
Aggiungi ai Preferiti
Cerca nel forum
Shadow
Profilo
| Junior Member
194
messaggi | Data Invio:
ven 6 ott 2006 - 09:24
Buongiorno a tutti!
Vorrei fare in modo che il db Sql Server 2005 Exp che ho associato alla mia win app C#2005 non sia fruibile dall'esterno del mio software, anche quando questo è in esecuzione. Come posso fare? Come modificare il mio programma, considerato che ho già impostato nella connessione 'autenticazione di Windows' (ovvero quella predefinita)? Imposto una particolare password su quel particolare database? Potete indicarmi una procedura in tal senso corretta?
Grazie per l'attenzione!
Shadow
sanbiz
Profilo
| Senior Member
208
messaggi | Data Invio:
ven 6 ott 2006 - 09:56
>Vorrei fare in modo che il db Sql Server 2005 Exp che ho associato
>alla mia win app C#2005 non sia fruibile dall'esterno del mio
>software, anche quando questo è in esecuzione. Come posso fare?
>Come modificare il mio programma, considerato che ho già impostato
>nella connessione 'autenticazione di Windows' (ovvero quella
>predefinita)?
Non ho ben afferrato. Il tuo programma accede al db SQL Server 2005 e tu non vuoi che altri possano accedere a tale db al di fuori della tua applicazione?
Diciamo che devi restringere i permessi su SQL e non dalla tua applicazione.
Ovviamente se l'autentificazione è Windows vul dire che l'utente che esegue il tuo applicativo potrà anche accedere al database anche al di fuori dello stesso, visto che è autenticato.
Prova ad abilitare l'autentificazione mista e definisci un utente sql per il tuo applicativo con tanto di password. In questo modo abiliterai l'accesso al db a solo qeull'utente SQL e così dovrebbe funzionare.
Perdonami se ho frainteso il tuo post.
--
Sandro Bizioli
http://blogs.dotnethell.it/sandro/
lbenaglia
Profilo
| Guru
5.625
messaggi | Data Invio:
ven 6 ott 2006 - 22:46
>Vorrei fare in modo che il db Sql Server 2005 Exp che ho associato
>alla mia win app C#2005 non sia fruibile dall'esterno del mio
>software, anche quando questo è in esecuzione. Come posso fare?
Ciao Shadow,
per capire come funziona l'autenticazione e l'autorizzazione in SQL Server ti suggerisco di leggere il seguente articolo di Luca Bianchi:
http://www.microsoft.com/italy/technet/community/mvp/editoriali/permessi.mspx
>Grazie per l'attenzione!
Prego.
Ciao!
--
Lorenzo Benaglia
Microsoft MVP - SQL Server
http://blogs.dotnethell.it/lorenzo/
http://italy.mvps.org
Shadow
Profilo
| Junior Member
194
messaggi | Data Invio:
dom 15 ott 2006 - 15:09
Grazie come sempre!
Ma c'è una piccola complicazione, il db si troverà su un server (o su un PC usato come tale). Se colloco lì il database e la mia applicazione accede da un altro PC come fare in modo che funzioni anche se il mio utente non si è autenticato sul sistema operativo del server? Grazie
Shadow
lbenaglia
Profilo
| Guru
5.625
messaggi | Data Invio:
dom 15 ott 2006 - 15:14
>Ma c'è una piccola complicazione, il db si troverà su un server
>(o su un PC usato come tale). Se colloco lì il database e la
>mia applicazione accede da un altro PC come fare in modo che
>funzioni anche se il mio utente non si è autenticato sul sistema
>operativo del server?
Se la tua rete è in un dominio l'autenticazione la farai sul domain controller, pertanto puoi utilizzare la Windows Authentication, diversamente sei costretto ad utilizzare la SQL Server Authentication e quindi passare le credenziali di accesso nella stringa di connessione.
>Grazie
Prego
Ciao!
--
Lorenzo Benaglia
Microsoft MVP - SQL Server
http://blogs.dotnethell.it/lorenzo/
http://italy.mvps.org
Shadow
Profilo
| Junior Member
194
messaggi | Data Invio:
dom 15 ott 2006 - 15:23
Ammazza, che velocità!!!
Dunque, mi stai dicendo che se i computer sono connessi in un gruppo di lavoro posso installare il database sul PC che viene usato come client, quindi il programma client su un PC ad esso collegato al quale l'utente ha avuto accesso con un qualsiasi utente Windows generico e così database e programma potranno vedersi? Impostando se ho ben capito 'Autenticazione di Windows'?
Ma in tal caso il PC dove si trova il DB deve essere attivo con un certo utene, ad esempio Administrator? O potrebbe ad esempio stare anche in Stand by?
Shadow
lbenaglia
Profilo
| Guru
5.625
messaggi | Data Invio:
dom 15 ott 2006 - 15:31
>Dunque, mi stai dicendo che se i computer sono connessi in un
>gruppo di lavoro posso installare il database sul PC che viene
>usato come client, quindi il programma client su un PC ad esso
>collegato al quale l'utente ha avuto accesso con un qualsiasi
>utente Windows generico e così database e programma potranno
>vedersi? Impostando se ho ben capito 'Autenticazione di Windows'?
No, io ho parlato di dominio non di workgroup.
>Ma in tal caso il PC dove si trova il DB deve essere attivo con
>un certo utene, ad esempio Administrator? O potrebbe ad esempio
>stare anche in Stand by?
Ehm... mi sembra di capire che ti sfugge il concetto di dominio.
Prova a leggere questi articoli:
"Windows XP Professional su un dominio"
http://www.microsoft.com/italy/windowsxp/pro/evaluation/overviews/dominio.mspx
"Active Directory"
http://www.farpoint.it/Notizie/NewsInforAtt002.htm
Ciao!
--
Lorenzo Benaglia
Microsoft MVP - SQL Server
http://blogs.dotnethell.it/lorenzo/
http://italy.mvps.org
Shadow
Profilo
| Junior Member
194
messaggi | Data Invio:
dom 15 ott 2006 - 16:35
Grazie per l'utile link che mi hai suggerito, adesso dopo averlo letto tutto so che la rete in questione è un gruppo di lavoro e non un dominio!!! Quindi, alla luce di questa informazione, come mi consigli di procedere per installare il mio programma considerato che su uno di tali PC (connessi in un dominio!!) andrà il database, mentre sugli altri l'applicativo che dovrà prenedere i dati dal database? Sempre se su un dominio è fattibile! (ora che ho capito bene il concetto di dominio, tremendi dubbi mi assalgono!)
Shadow
lbenaglia
Profilo
| Guru
5.625
messaggi | Data Invio:
dom 15 ott 2006 - 16:42
>Grazie per l'utile link che mi hai suggerito, adesso dopo averlo
>letto tutto so che la rete in questione è un gruppo di lavoro
>e non un dominio!!!
Se sei in workgroup l'unica possibilità è quella di utilizzare la SQL Server Authentication.
Quindi, alla luce di questa informazione,
>come mi consigli di procedere per installare il mio programma
>considerato che su uno di tali PC (connessi in un dominio!!)
>andrà il database, mentre sugli altri l'applicativo che dovrà
>prenedere i dati dal database?
Hai appena detto che i pc sono in workgroup e ora mi vieni a dire che fanno parte di un dominio?
--
Lorenzo Benaglia
Microsoft MVP - SQL Server
http://blogs.dotnethell.it/lorenzo/
http://italy.mvps.org
Shadow
Profilo
| Junior Member
194
messaggi | Data Invio:
dom 15 ott 2006 - 16:54
ERRORE DI SCRITTURA SCUSAMI!!! Sono assolutamente in un workgroup: non hanno la struttura gerarchica tipica di un dominio né una macchina con Win Server installato. Sono tutti allo stesso livello quindi con gli stessi poteri. Scusami di nuovo per l'errore di scrittura, quindi mi consigli di usare la Sql Server Autentication?
Se ho ben capito perciò:
1) Sul mio software devo cambiare la stringa di connessione (potresti indicarmi un esempio, se ti dicessi ad esempio che il PC dove si trova il DB lo chiamiamo PCDB, e le credenziali di accesso Sql Server le chiamiamo 'User' e 'Password'?
2) Una volta installato Sql Server 2005 Express sulla macchina che ospiterà il DB dovrò creare un utente con le credenziali di cui al punto 1 giusto? E poi devo abilitare quell'utente sul database di mio interesse?
Sono sufficienti queste operazioni? Grazie ancora
Shadow
lbenaglia
Profilo
| Guru
5.625
messaggi | Data Invio:
dom 15 ott 2006 - 17:01
>1) Sul mio software devo cambiare la stringa di connessione (potresti
>indicarmi un esempio, se ti dicessi ad esempio che il PC dove
>si trova il DB lo chiamiamo PCDB, e le credenziali di accesso
>Sql Server le chiamiamo 'User' e 'Password'?
Esempi di stringhe di connessione le trovi qui:
http://www.connectionstrings.com/
Se hai installato una named instance chiamata SQLExpress in base ai dati che hai postato la tua stringa dovrebbe essere:
"Data Source=PCDB\SQLExpress;Initial Catalog=NomeDelDatabase;User Id=User;Password=Password;"
>2) Una volta installato Sql Server 2005 Express sulla macchina
>che ospiterà il DB dovrò creare un utente con le credenziali
>di cui al punto 1 giusto? E poi devo abilitare quell'utente sul
>database di mio interesse?
Dovrai creare una Login, associarle uno User Account e definire le permission sugli oggetti del database seguendo i consigli riportati nell'articolo di Luca.
>Grazie ancora
Prego.
Ciao!
--
Lorenzo Benaglia
Microsoft MVP - SQL Server
http://blogs.dotnethell.it/lorenzo/
http://italy.mvps.org
Shadow
Profilo
| Junior Member
194
messaggi | Data Invio:
dom 15 ott 2006 - 17:07
... Non mi ripeto su questo forum e sulle persone che ne fanno parte, solo per non rischiare di essere prolisso e troppo lungo.
D'altro canto credo che il vostro aiuto, la vostra (fulminea) tempestività e le vostre risposte valgano più di mille parole.
Risolutivo, come sempre (non è la prima volta in cui riesci a sbrogliare un quesito per me molto intricato, sulla sezione database avrò inserito un sacco di domande in pochi mesi).
Shadow
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 !