1

ドメイン ユーザー資格情報を渡すのではなく、サービス アカウントを使用して SQL サーバーに接続するようにアプリケーションを設定したいと考えています。パススルーでは、特定のユーザーにデータベースへの読み取り/書き込みアクセスを許可する必要がありますが、これはセキュリティ ホールと見なされます。

私の質問は、サービス アカウントの資格情報を使用して SQL サーバーへの接続を確立した場合、要求を発信した実際のユーザーを特定することは可能ですか? たとえば、ドメイン ユーザーのジョン スミスが Web サイトにアクセスし、何らかのアクションを実行します。データベースへの接続は、一部のサービス アカウントのセキュリティ資格情報を使用して確立されますが、johh smith の名前は引き続き SQL サーバーに渡されます。SQL は、この人の名前を何らかの方法で使用します。たとえば、監査テーブルに保存するなどです。

これはできますか?元のユーザーの名前を何らかの方法でSQLサーバーに取得する必要があることを考えると、それはベストプラクティスですか?

4

1 に答える 1

1

ユーザーが SQL Server ログインを使用して SQL Server にログインする場合、SQL ログインでは (ドメイン レベルで) 誰であるかを知ることができません。

however johh smith's name is still passed through to SQL server

はい、できることは、User.Identity.Name を使用して AD ユーザー名を取得し、手動で作成した監査テーブルで SQL Server に送信することです。

于 2012-04-04T14:50:55.627 に答える