문제

연결 문자열의 사용자 ID는 변수가 아니며 프로그램의 사용자 ID(예: GUID일 수 있음)와 다릅니다.연결 문자열의 사용자 ID가 정적인 경우 로그 삭제를 어떻게 감사합니까?

삽입/업데이트/삭제를 기록하는 가장 좋은 장소는 트리거를 통하는 것입니다.그러나 정적 연결 문자열을 사용하면 누가 항목을 삭제했는지 기록하기가 어렵습니다.대안은 무엇입니까?

도움이 되었습니까?

해결책

SQL Server를 사용하면 Context_Info를 사용하여 정보를 트리거로 전달할 수 있습니다.

나는 이것을 코드 (웹 앱이라고 함)에서 사용하여 트리거 (예 : 테이블의 여러 쓰기 경로)를 사용해야합니다. 여기서 내 논리를 저장된 절차에 넣을 수없는 곳입니다.

다른 팁

우리도 비슷한 상황에 있습니다.우리의 웹 애플리케이션은 항상 동일한 데이터베이스 사용자로 실행되지만 애플리케이션 추적 및 제어를 수행하는 다른 논리적 사용자가 있습니다.

일반적으로 논리적 사용자 ID를 각 저장 프로시저에 매개 변수로 전달합니다.삭제를 추적하려면 일반적으로 행을 삭제하지 않고 상태를 삭제됨으로 표시하고 그에 따라 LastChgID 및 LastChgDate 필드를 설정합니다.감사 로그(모든 변경 상태의 복사본)를 보관하는 중요한 테이블의 경우 위 방법을 사용하고 트리거는 행을 감사 테이블에 복사하며 LastChgID는 이미 올바르게 설정되어 있으므로 트리거는 걱정할 필요가 없습니다. 신분증을 얻는 것에 대해.

라이센스 : CC-BY-SA ~와 함께 속성
제휴하지 않습니다 StackOverflow
scroll top