2017-06-14 1 views
0

Je cherche des suggestions sur la façon dont les développeurs transmettent l'identité d'un utilisateur connecté à la base de données lors de la mise à jour. Pour simplifier, imaginez que nous utilisons une simple commande SQL ADO.NET pour insérer des lignes dans une table de journal. La ligne a une colonne UserId qui doit être remplie avec l'utilisateur connecté plutôt que l'ID utilisateur générique utilisé sur la chaîne de connexion.Azure SQL et l'identité de l'utilisateur de l'application Web

Evidemment, la SQLCommand pourrait accepter dans un paramètre de "UserId" et l'utiliser simplement. Mais je me demande s'il n'y a pas de meilleures options pour enregistrer avoir à passer manuellement cela pour chaque commande.

J'ai examiné l'utilisation d'Azure AD pour fournir ADFS pour la connexion à l'application Web, puis en utilisant cette identité sur la chaîne de connexion à la base de données. Cela fonctionne bien, mais je suis préoccupé par le fait que nous donnons un accès direct à la base de données d'un compte utilisateur de l'application - cela pourrait être acceptable, mais cela semble être un risque. Si un utilisateur malveillant avait réussi à obtenir le SSMS sur notre serveur de base de données, il aurait un nom d'utilisateur et un mot de passe qu'il pourrait utiliser.

En outre, si nous n'utilisions pas AD pour gérer nos comptes d'utilisateurs - Adhésion ASP.Net par exemple ... que pourrions-nous faire ici? Y a-t-il des propriétés que nous pouvons définir au moment de la connexion?

Merci David

Répondre

1

Découvrez la nouvelle fonction SESSION_CONTEXT(), qui a été ajouté pour tout ce scénario.

0

S'il vous plaît utiliser des appels T-SQL sp_who, ou sélectionnez suser_name() Ils montrent la connexion actuelle d'un utilisateur qui est conneted et de faire l'opération T-SQL Merci Mirek