2017-06-14 6 views
0

私は、開発者が更新時にデータベースにログインしたユーザーのIDを渡す方法に関する提案を探しています。Azure SQLとWebアプリケーションのユーザーID

単純なADO.NET SQLCommandを使用して、いくつかの行をログ表に挿入するとします。この行には、接続文字列で使用される一般的なuserIdではなく、ログインしたユーザーが必要とするUserId列があります。

明らかに、SQLCommandは "UserId"のパラメータで受け入れることができ、単にこれを使用することができます。しかし、私はすべてのコマンドのためにこれを手動で渡す必要性を減らすためのよりよいオプションがあるかどうか疑問に思っています。

私は、Azure ADを使ってWebアプリケーションにログインし、このIDをデータベースへの接続文字列として使用することを検討しました。これはうまくいきますが、私はアプリケーションのユーザーアカウントにデータベースへの直接アクセス権を与えていることに懸念しています。これは問題ありませんが、リスクのようです。悪意のあるユーザーがSSMSをどのようにDBサーバーに取得したかに関わらず、ユーザーは使用できるユーザー名とパスワードを持っています。

さらに、私たちがユーザーアカウントを管理するためにADを使用していない場合、ASP.Netメンバーシップなど、ここで何ができますか?接続時に設定できるプロパティはありますか?

おかげ デビッド

答えて

1

は、ちょうどこのシナリオのために追加された、新しいSESSION_CONTEXT()機能をチェックしてください。

0

使用してくださいT-SQLは、彼らがconnetedとT-SQLの操作を行っているユーザーの現在のログインを示し おかげ sp_whoを、または選択SUSER_NAME()を呼び出し Mirek

関連する問題