문제

데이터베이스는 " 데이터 캡처 "메커니즘을 통해 모든 변경 사항을 추적합니다.이러한 변경을하는 사용자에 대한 추가 정보를 추가해야합니다. 다음 사용자는 SQL Server 사용자가 아닙니다.보안 권한 부여는 외부 메커니즘을 통해 수행됩니다.

" start_lsn "및 " userid "열이있는 도우미 테이블을 추가하여 공인 된 사용자와 트랜잭션을 연결합니다. 응용 프로그램 코드에서 실행 된 현재 트랜잭션에 해당하는 " start_lsn "값을 결정하는 방법이 있습니까?

도움이 되었습니까?

해결책

현재 다음 해결책을 찾았습니다.

1)

  • id " userid" " userid" userivity")을 만듭니다. > 열;

  • "ID"열을 기본 키로 사용합니다.

  • 이 테이블의 CDC 옵션을 활성화합니다.

2)

  • 모든 데이터 수정 작업을 트랜잭션 범위 ;

  • 특정 트랜잭션 중에 현재 userid "의"을 사용 하여이 테이블에 새 데이터 레코드를 추가합니다.

    • 시작 독점 트랜잭션;

    • "데이터 조작";

    • userid " userActivity" 테이블에 에 대한 정보를 삽입하십시오.

트랜잭션이 독점이고 모든 작업이 단일 트랜잭션 범위 내에서 이루어 졌기 때문에 ( "start_lsn") 값은 동일합니다. 가입 연산자를 사용하여 데이터 조작 정보로 useractity " 테이블에서 데이터를 병합하십시오.

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