Question

J'utilise la sécurité intégrée dans une application ASP.NET, le serveur IIS et SQL sont hébergés sur la même machine serveur exécutant Windows Server 2008 R2.

est-il possible d'autoriser les utilisateurs à accéder à l'application à partir du réseau et à être connectés aux utilisateurs, mais ne les laissez pas accéder à la base de données directement ou via SQL Server Management Studio?

J'essaie de protéger l'accès à la base de données car mon application va être déployée sur le serveur du client dans les locaux du client.

Voici ma chaîne de connexion que j'utilise actuellement

<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" />

Ce sont les deux chaînes de connexion que j'utilise actuellement, l'une est pour l'authentification ASP.NET et la seconde est utilisée par mon application.Ces deux cordes sont identiques et de la même base de données.

Toute suggestion?

Était-ce utile?

La solution

Il n'est pas possible de «sécuriser» une base de données sur les locaux du client.Le personnel du client peut obtenir le mot de passe de la chaîne de connexion ASP.NET.Un administrateur de domaine peut toujours Accéder à la base de données (article MSDN décrivant le processus: Connectez-vous au serveur SQL lorsque les administrateurs système sont verrouillés ).

Si vous souhaitez masquer la propriété intellectuelle, votre base de données a besoin de votre base de données, votre seule solution est de ne pas déployer la base de données sur la local client (utilisez une base de données hébergée comme SQL Azure par exemple).

Si vous souhaitez simplement empêcher le client d'interférer avec la base de données, vous pouvez le stipuler dans le contrat.Audit et détection des interférences est possible.

Autres conseils

Oui, c'est complètement possible.Une personne connectée à ASP.NET à l'aide de la sécurité intégrée ne peut pas se connecter à SQL Server avec les mêmes informations d'identification.Les deux sont complètement déconnectés.Il n'est possible que si le serveur SQL a été défini pour leur permettre d'accéder.

Mon travail de conseil serait de créer des identifiants et des utilisateurs SQL, et ne leur donnerais qu'à l'accès à SQL Server.Dans votre application, lorsque vous créez la chaîne de connexion, ne définissez pas la sécurité intégrée sur true et laissez simplement l'utilisateur entrer son nom d'utilisateur et son mot de passe SQL pour accéder à la base de données.

Licencié sous: CC-BY-SA avec attribution
Non affilié à StackOverflow
scroll top