2010-02-17 2 views
0

Jusqu'à présent, après avoir créé la base de données avec tout le schéma, tout ce que je faisais pour les accéder (tables) par référence à ConnectionStrings . Maintenant, deux fois, j'ai lu qu'il est préférable de créer un utilisateur DB et accéder à la base de données par cet utilisateur en l'incluant dans le onnectionString.Quel est le point de créer un utilisateur afin d'accéder à la base de données SQL Server 2008

Je voudrais savoir pourquoi?

Merci pour votre aide

+1

Pour des raisons de sécurité? disons que quelqu'un parvient à manipuler les données et à exécuter des commandes arbitraires sur le serveur sql .. ne préféreriez-vous pas qu'il/elle dispose d'autorisations limitées sur le serveur sql afin qu'il/elle ne puisse pas prendre en charge le système? –

+1

La "sécurité" pourrait-elle être une raison? –

+0

Donc, si la sécurité est la seule raison, est-ce que je peux le contourner (utilisateur) pendant la phase de développement? et revenir à cela à la production? – Richard77

Répondre

0

Vous faites cela si vous souhaitez vous connecter en tant qu'utilisateur spécifique, plutôt que (par exemple) en utilisant simplement le contexte de l'utilisateur actuel sous lequel votre application s'exécute. Toutefois, si vous utilisez l'authentification SQL Server (nom d'utilisateur et mot de passe), vous devez fournir ce mot de passe dans la chaîne de connexion, ce qui pose un problème de sécurité. Si l'application possède un groupe d'utilisateurs anonymes (ou gère elle-même les utilisateurs/mots de passe), il est préférable d'utiliser une connexion Windows et d'exécuter l'application sous un compte de service (ayant un accès minimal à la base de données). Si vous exécutez une application interactive sur le bureau, vous devez autoriser ces utilisateurs à se connecter au serveur SQL dans leur propre contexte, en les ajoutant à SQL Server avec les droits requis (par exemple, lecture/écriture db, suppression de tout supérieur les fonctions). Évidemment, vous utiliseriez des groupes pour simplifier l'administration plutôt que d'ajouter des utilisateurs individuels.

1

Votre question n'est pas si claire. Il semble que vous demandiez s'il est préférable d'utiliser Windows Security ("Integrated Security = SSPI" dans la chaîne de connexion) ou un nom d'utilisateur/mot de passe ("User ID = myUsername; Password = myPassword;").

Il est toujours préférable d'utiliser la sécurité Windows. Avoir des informations de connexion dans la chaîne de connexion est un risque de sécurité. C'est en clair (à moins que vous ne preniez des mesures compliquées pour sécuriser cette section), et est envoyé à travers le réseau en tant que texte clair, sauf si vous configurez une connexion sécurisée entre l'application et le serveur.

Vaut-il mieux "créer un utilisateur db et accéder à la base de données par cet utilisateur en l'incluant dans la chaîne de connexion?" Non. Il est préférable de créer une connexion au serveur SQL pour les identités Windows de l'utilisateur et de les laisser utiliser ces informations d'identification pour accéder au serveur.

Questions connexes