Ruoli Database SQL

giovedì 26 gennaio 2006 - 15.05

Angel83 Profilo | Newbie

Ciao Ragazzi! sono nuovo di questo sito, vorrei farvi una domanda stò realizzando un gestionale in Dot Net e uttilizzo un database SQL SERVER il problema è il login ovvero, non voglio fare il classico login da tabella con nome utente e password ma voglio uttlizare gil utenti del database! e se possibile riuscire anche a leggere i ruoli abbinati all'utente! sapete come iniziare!? Ciao e Grazie!!!!

micto27 Profilo | Senior Member

Per quanto riguarda il login devi solo costruire una connectionstring che contenga il codice del Login SQL (non il codice utente del database) e la password impostata per il suddetto Login sul server SQL (ovviamente il Login in questione deve essere stato assegnato al database che vai ad utilizzare.

Una volta connesso al DB puoi ricavare il nome dell'utente (con il quale il database riconosce il Login) ad esempio utilizzando SELECT USER_NAME()

andando avanti puoi avere altre informazioni relative allo User utilizzando la stored proc sp_helpuser
exec sp_helpuser 'username'.

Una considerazione (anche se ovviamente non conosco il contesto):
in certe situazioni può essere sconveniente che un certo account abbia direttamente delle permission sul database che in realtà è giusto appartengano all'applicazione e non tanto al singolo Login. Mi spiego, se con le credenziali che mi vengono fornite per lavorare con l'applicazione ho determinate permission sui dati vuol dire che se mi connetto al database, usando le stesse credenziali, con un altro strumento (es. MS Access) avrò le permission per fare ciò che posso fare con l'applicazione, ma senza che l'applicazione controlli il gioco e quindi corro il rischio di fare danni.
Un'idea in questi casi può essere quella di fornire allo User solo permission di connessione, tanto per validarne l'accesso, a questo punto l'applicativo può chiudere la connessione diretta dell'utente ed aprirne una (con un account "segreto" detentore delle permission operative sul db applicativo. In questo modo se l'utente in questione si connettesse con uno strumento esterno al database non potrebbe comunque fare nulla.

Ciao, Michele.

Angel83 Profilo | Newbie

Ciao inanzitutto grazie mille per la risposta! cmq nn riesco a gestire con lo Stored che mi hai indicato! sicuramente sto sbagliando qualcosa magatri con il tipo di connessione che uso ti posto un po' di codice!

Dim sqlCN As System.Data.OleDb.OleDbConnection = New System.Data.OleDb.OleDbConnection(CStr(ConfigurationSettings.AppSettings("StringaDiConnessione")))

'Non possiamo usare la Query in quanto non potremo leggere la password in quanto cryptata

********** QUESTA QUERY NN LA USO PERCHE' OVIAMENTE NN POSSO LEGGERE LA PASSWORD ******

'Dim Query As String = "SELECT name, password FROM sysusers WHERE hasdbaccess=1 and issqluser=1 AND name = '" & txtutente.Text & "' AND password = '" & txtpassword.Text & "'"

Dim Query As String = "SELECT name, password FROM sysusers"

Dim dataADP_Utente As System.Data.OleDb.OleDbDataAdapter = New System.Data.OleDb.OleDbDataAdapter(Query, sqlCN)
Dim dataSET_Utente As System.Data.DataSet = New System.Data.DataSet

Dove dovrei applicare cio' che mi hai indicato? prima dell'apertura della connessione?

Ciao e grazie mille!


Angel83

micto27 Profilo | Senior Member

Ciao, ho provato a mandarti un piccolo esempio di codice, ma ci sono stati dei problemi dipendenti, mi hanno spiegato, dagli attuali limiti alle dimensioni dei messaggi.

Mi hanno spiegato che fra pochi giorni sarà rilasciato un aggiornamento del forum e quindi se la cosa ti interessa ancora ti manderò un nuovo post con l'esempio in allegato.

Michele.

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