Sql express - connessione da pc in rete

venerdì 17 giugno 2011 - 12.59
Tag Elenco Tags  SQL Server Express

pedro8a Profilo | Junior Member

Ciao a tutti,
premetto che con sqlserver sono digiuno.
Ho questo problema:

questa è la stringa di connessione che utilizzo:

dim PercorsoDB as String = Application.StartupPath & "\Dati\DB.mdf"

Il db naturalmente sta dentro la cartella Dati e collegato correttamente con managmant studio express

cn.ConnectionString = "Data Source=PC\SQLEXPRESS;Initial Catalog=DB;Integrated Security=SSPI;"

se lancio in locale, il programma funziona.

In rete (pc con diritti di amministratore), il programma gira...gira, poi da errore.. server irragiungibile... ecc.. ecc..

Quando apro managment studio ho lasciato autenticazione di windows.

Ma cosa mi manca?

Cteniza Profilo | Guru

In rete con le user instances è impossibile lavorare.
Devi passare ad un collegamenteo "vero" e abbandonare le user instances.
Guarda su www.connectionstrings.com la stringa di connessione corretta.
In soldoni:
a) Configurare sql server perchè accetti connessioni remote, autenticazione mista, eventuale aggiunta utenti
b) Attaccare il database a sql server (al server di sql server) utilizzando management studio sql
c) cambiare la stringa di connessione

pedro8a Profilo | Junior Member

Ciao,
eppure dopo aver configurato sql server da managment funziona con questa stringa.

Pensi sia meglio utilizzare una stringa dove c'è utente e password?

Un altra cosa che mi piacerebbe fare è questa:

in managment metto gli utenti ai quali abilito/disabilito l'accesso alle varie tabelle.
Il mio dubbio è: poi da codice vb come faccio a gestire questi accessi?

Ciao

Cteniza Profilo | Guru

Se si tratta di login e password che l'utente deve inserire allora devi provvedere a far comparire una form per i valori da chiedere e poi impostare login e password sulla stringa di connessione al database.
Se invece si tratta di una autenticazione windows allora puoi fare a meno di chiedere nulla perchè sul server sql è già prevista l'autenticazione.
Utente / windows è una informazione che pui memorizzare sul file xml .config.
Alcuni inseriscono anche login e password su questo file, ti consiglio se anche tu decidi per questo, di salvare un file di configurazione (non quello che accompagna l'exe) tra i files dell'utente (dati utente) e di criptare la password (se invece chiedi sempre non c'è bisogno di memorizzare nulla)

pedro8a Profilo | Junior Member

Sono indeciso se fare una gestione accesso alle varie funzioni tramite sql-server oppure integrata nel programma.

Con sql-server posso impedire all'utente di entrare in una determinata tabella, oppure solo in lettura.
In questo caso farei un form con richiesta utente/password da inserire nella stringa di connessione.
Ma poi da codice vb.net come gestisco il tutto?

Se invece opto per la gestione operatori integrata nel programma mi basterebbe mettere una passowrdo di accesso al db uguale per tutti (tipo access) creare una tabella con i vari utenti e un altra tabella dove i vari tipi di utente possono accedere alle varie funzioani.... un pò contorto ma è un lavoro che ho già fatto con access.

Tu cosa mi consigli?
Nel secondo caso sono più facili gli aggiornamenti oppure no?
Si può utilizzare sql/LINQ per impostare i vari accessi alle varie tabelle del db?

Stò ragionando male?

Cteniza Profilo | Guru

Con sql server la gestione dei permessi è qualche cosa di più complessa dal solo accesso ai datii.
Questo dipende da come hai strutturato la tua applicazione.
Puoi avere ad esempio permessi individuali e di gruppo, puoi avere permessi particolari su stored procedure, viste, quant'altro puoi eseguire ed altri che non puoi eseguire.
E' ovvio che questo, per essere integrato con la tua applicazione passa attraverso una puntuale gestione e verifica di utenti e gruppi.

dompa72 Profilo | Senior Member

Come già consigliato la gestione tramite l'autenticazione SQLServer per utente, è necessario prevedere anche delle form per la creazione degli utenti e la gestione permessi alle tabelle, questo poi comporta anche la gestione delle varie form di "lavoro" per l'utente di questa autenticazione.
Io personalmente utilizzo delle tabelle "PERSONALIZZATE" per la gestione degli utenti compreso l'autenticazione, in questo modo ho la necessità di una query in più.

Ciao

pedro8a Profilo | Junior Member

Il mio problema è: come faccio da vb a capire che permessi ho su un dato utente?
L'opzione di mettere all'interno del db una tabella con gli utenti e i vari permessi mi sembra più agevole.
Prima di aprire un form faccio una query su questa tabella e verifico cosa l'utente può fare in questa parte del programma.

Pensavo di costruirmi una classe dove all'accesso dell'applicazione vengono memorizzati il nome utente, tipo di utente, idazienda, ecc..

Questa questione della sicurezza... ci vorrebbe un buon libro..
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-2017
Running on Windows Server 2008 R2 Standard, SQL Server 2012 & ASP.NET 3.5