2011-10-31 1 views
0

J'utilise une application C# et une connexion à la base de données en utilisant SQL Server 2008 en utilisant l'authentification Windows. J'ai créé plusieurs utilisateurs pour la base de données, mais je suis incapable de comprendre comment les utiliser au niveau de mon application. Mon but est d'installer cette application sur n'importe quel pc et rendre la base de données non accessible par les utilisateurs s'il essaye d'installer sql management studio.Sql Server Database Security Au niveau de l'application?

Est-ce que quelqu'un peut m'expliquer ou me donner de bonnes références pour comprendre ce que je veux faire?

Répondre

1

SI vous voulez vous assurer que les utilisateurs ne peuvent pas accéder à la base de données sans votre application, vous avez plusieurs options:

  • implémentent « utilisateurs virtuels »
    Cela signifierait que vous mettre en œuvre votre propre gestion des utilisateurs et ne créez pas de véritables utilisateurs DB pour vos utilisateurs d'applications, mais seulement des "utilisateurs virtuels" dans votre propre structure ... votre application utiliserait un utilisateur général d'application pour l'accès DB qui est inconnu de vos utilisateurs ... puisque les utilisateurs de l'application ne sont pas t les utilisateurs de la base de données Reall ne peuvent pas accéder directement à la base de données avec leurs utilisateurs/pw. Cela signifie que vous créerez de vrais utilisateurs ... mais seule votre application peut créer un utilisateur d'application ... lorsque l'utilisateur est créé ou change son mot de passe, vous ne le définissez pas les utilisateurs DB mot de passe à cela mais utiliser un certain calcul (par exemple un hachage) pour créer un mot de passe différent et définir que sur le niveau DB ... votre application connaît le calcul lorsque l'utilisateur se connecte dans votre application fait le calcul et utilise le résultat pour se connecter à la base de données ... de cette façon, l'utilisateur réel ne peut pas se connecter directement à la base de données parce que le mot de passe qu'il connaît (qui fonctionne uniquement avec votre application) n'est pas celui que connaît la base de données ...

Méfiez-vous de ce qui précède est 100% sécurisé, car votre application .NET peut toujours être décompilé/reverse engineering, etc - bien que ce qui précède est certainement suffisant pour empêcher les "utilisateurs normaux" d'accéder directement à la base de données ...

Questions connexes