Domanda

Sto usando la sicurezza integrata in un'applicazione ASP.NET, IIS e SQL Server sono entrambi ospitati sulla stessa macchina server che esegue Windows Server 2008 R2.

È possibile consentire agli utenti di accedere all'applicazione dall'altra parte della rete e registrati agli utenti ma non permettere che accessano il database direttamente o tramite SQL Server Management Studio?

Sto cercando di salvaguardare l'accesso al database perché la mia applicazione sarà distribuita sul server del client presso i locali del cliente.

Ecco la mia stringa di connessione che sto usando attualmente

<add connectionString="Server=.\sqlexpress;Database=DB89akwA;Integrated Security=true" name="LocalSqlServer" providerName="System.Data.SqlClient" />

<add connectionString="Server=.\sqlexpress;Database=DB89akwA;Integrated Security=true" name="MainAppConnectionString" providerName="System.Data.SqlClient" />
.

Queste sono le due stringhe di connessione che sto utilizzando attualmente, uno è per l'autenticazione ASP.NET e il secondo è utilizzato dalla mia applicazione.Queste entrambe le stringhe sono le stesse e dello stesso database.

Qualche suggerimento?

È stato utile?

Soluzione

Non è possibile "proteggere" un database in esecuzione sui locali del cliente.Il personale del cliente può ottenere la password dalla stringa di connessione ASP.NET.Un amministratore di dominio può sempre Accedere al database (esiste un articolo MSDN effettivo che descrive il processo: Connetti a SQL Server quando gli amministratori di sistema sono bloccati ).

Se si desidera nascondere la proprietà intelettuale, si ritiene che il tuo database abbia, la tua unica soluzione è di non distribuire il database sulla premessa client (utilizzare un database ospitato come SQL Azure ad esempio).

Se si desidera semplicemente impedire al client di interferire con il database è possibile stipulare così nel contratto.Auditing e rilevamento delle interferenze è possibile.

Altri suggerimenti

Sì, è completamente possibile.Una persona registrata a ASP.NET utilizzando la sicurezza integrata non può accedere a SQL Server con le stesse credenziali.Entrambi sono completamente disconnessi.È possibile solo se il server SQL è stato impostato per consentire all'accesso.

Il mio consiglio sarebbe creare login e utenti SQL e fornire loro solo accesso a SQL Server.Nella tua applicazione, quando si crea la stringa di connessione, non impostare la sicurezza integrata su TRUE e semplicemente consentire all'utente di inserire il nome utente e la password SQL per accedere al database.

Autorizzato sotto: CC-BY-SA insieme a attribuzione
Non affiliato a StackOverflow
scroll top