De nombreuses applications de bureau utilisent des tables SQL pour gérer les autorisations et les rôles de leurs utilisateurs. En fait, ils restreignent l'accès à certaines parties de l'application dans leur code d'application. Cela signifie qu'ils ont besoin d'une chaîne de connexion constante au serveur SQL avec des autorisations maximales.Quelle est la meilleure façon de gérer les autorisations d'application de bureau de base de données?
Mon objectif est C# 2010, SQL Server 2005 ou 2008.
si avec quelque raison que quelqu'un trouve cette chaîne de connexion? (Traçage réseau, logiciel de piratage, Fired employé ou ...), il peut tout changer avec seulement Managemenst Studio et vous ne pouvez pas comprendre quel client l'a fait. Si vous voulez changer de chaîne de connexion. Vous devez le faire dans de nombreux clients et dans un mauvais design, vous devez recompiler l'application.
Donc, je veux savoir est-il une bonne idée d'utiliser le vrai login SQL au lieu du nom d'utilisateur et mot de passe dans les tables? faire une chaîne de connexion pour chaque utilisateur par SQL Logins?
De cette façon, il n'y a pas peur de perdre la chaîne de connexion. Aussi dans les codes SQL, vous pouvez utiliser la fonction GetUser() pour indiquer quel utilisateur a réellement exécuté la requête?
Mais peut-être que l'autorisation de gestion est difficile de cette façon car il n'y a pas de table simple pour gérer les permissions et les utilisateurs.
Dans une longue phrase. Je veux savoir Quelle est la meilleure façon d'authentifier les utilisateurs d'applications de bureau de telle sorte que la gestion des autorisations puisse être faite et que le serveur sql peut également enregistrer l'activité des utilisateurs?
L'authentification Windows signifierait que tous les utilisateurs possibles doivent être ajoutés à la base de données. Il ne s'agit pas d'une solution très maniable dans ce scénario ... – jeroenh
@jeroenh: l'authentification Windows sur SQL peut utiliser des groupes de sécurité. Vous n'avez pas besoin d'ajouter chaque utilisateur individuellement (et de nombreuses organisations auront déjà défini des groupes appropriés). –