まず、私はセキュリティ担当者であり、開発者ではありません。私がやろうとしていることをもっと簡単に行う方法があれば、私は驚かないでしょう。C#で何かをするのはこれが初めてなので、優しくしてください。
私は、監査管理へのコンプライアンスを追跡するためのデータベースに取り組んでいます。データベースは MS SQL 2008 で、私が C# で書いている Web アプリ フロント エンドを備えています。私は、ユーザーがテスト結果でコントロールを更新したり、要件やその他のほとんどを変更したりできるページに取り組んでいます。このページで情報が更新されると、Controls テーブルのレコードを更新する前に、Controls テーブルの既存のデータを History テーブルに書き込もうとしています。History
また、誰がいつ更新を行ったかを(表に) 記録しようとしています。ここで私は問題に直面しています。SELECT
ステートメントにステートメントをネストしINSERT
てデータをプルすることはできますが、更新された日付と時刻、およびそれを更新したユーザーを追加する方法がわかりません。
これは現在、明らかな理由で機能しない私のクエリです。作業している列とパラメーターを理解していただくためです。
INSERT INTO History (BUName, ControlFWName, ControlID, ControlDesc,
TestPlan, TestFreq, NextTest, ControlCatName,
AuditorNotes, AuditorNoteTime, TestResults, ArtifactID1,
ArtifactID2, ArtifactID3, ArtifactID4,
WhoChanged, WhenChanged)
SELECT BUName, ControlFWName, ControlID, ControlDesc,
TestPlan, TestFreq, NextTest, ControlCatName,
AuditorNotes, AuditorNoteTime, TestResults, ArtifactID1,
ArtifactID2, ArtifactID3, ArtifactID4
FROM Controls
WHERE BUName = @BUName
AND ControlFWName = @ControlFWName
AND ControlID = @ControlID
その挿入ステートメントにWhoChanged
and列を追加するにはどうすればよいですか? それらは、とWhenChanged
だけの変数にパラメーター化されます。 DateTime.Now
User.Identity.Name
さらにコードが必要な場合は、お知らせください。