모든 변경 사항을 테이블에 기록해야합니다. 필자는 데이터 감사 로깅에 대한 많은 기사를 읽었습니다. 모두는 나에게 복잡해 보입니다.간단한 SQL 데이터 감사 로그 테이블
전 업데이트 및 삭제 된 데이터 이전에 테이블 사본을 보관할 계획입니다. 이것은 좋은 생각입니까?
모든 변경 사항을 테이블에 기록해야합니다. 필자는 데이터 감사 로깅에 대한 많은 기사를 읽었습니다. 모두는 나에게 복잡해 보입니다.간단한 SQL 데이터 감사 로그 테이블
전 업데이트 및 삭제 된 데이터 이전에 테이블 사본을 보관할 계획입니다. 이것은 좋은 생각입니까?
우리가 하나의 테이블에 대해서 이야기하고 있다면 그렇습니다. 아마도 여러 테이블이 있다면 어쩌면. 테이블이 많으면 감사해야합니다.
이유는 더 복잡한 테이블을 유지해야 할 필요가 있다는 것입니다. 또한 많은 테이블에서보고하는 것이 어려운 작업이 될 수 있습니다. 저장
두 테이블 디자인 :
여기에 몇 가지 다른 아이디어입니다 아이디어가 하나 개의 테이블 (사용자, 호스트 시스템, 트랜잭션 시간, 테이블 이름, 데이터베이스 이름 등)과의 거래에 대한 세부 정보를 유지하는 것입니다 두 번째 테이블의 데이터 변경 (이전 값, 키 등)
타사 도구 : 다른 수준에서 감사를 제공 할 수있는 여러 가지 도구가 있습니다. ApexSQL Audit은 트리거 기반 감사 도구이며 ApexSQL Log이 고급이며 권한 및 스키마 변경을 감사 할 수 있으므로 Idera의 Compliance manager은 가장 진보 된 것이며 심지어 select 문을 캡처 할 수도 있습니다.
변경 데이터 캡처 : 이것은 SQL Server 2008 이상에 기본 제공되지만 엔터프라이즈 버전에만 있습니다.
예. 그것은 하나의 테이블이 아닙니다. 나는 각 테이블의 감사 테이블에 변경된 데이터와 삭제 된 데이터 (전체 행)를 저장하기 위해 트리거를 사용할 계획이다. 모든 감사 테이블은 동일한 db에 있습니다. CDC를 사용하면 데이터 행의 두 버전간에 변경 사항 보고서를 표시하는 것이 얼마나 쉽습니까? 내 접근 방식에서는 전체 행을 사용할 수 있기 때문에 2 행의 데이터 행 사이에 차이점을 표시하는 것이 쉽습니다. – zak
이 정보를 표시하는 시스템 기능이 내장되어 있기 때문에 매우 쉽습니다. CDC 스키마를 사용하여 감사 테이블을 쿼리하십시오.자세한 내용은 [this] (https://www.simple-talk.com/sql/learn-sql-server/introduction-to-change-data-capture- (cdc) -in-sql-server-2008 /)를 참조하십시오. 세부. – Dwoolk
Renhold Software의 [SQL Table Audit] (https://renholdsoftware.com/SQLTableAudit)은 상대적으로 가격이 좋은 타사 대안 중 하나입니다. 그것은 트리거를 생성하여 작동합니다. – rpearsondev
데이터베이스에있는 모든 테이블에서 수행 된 변경 사항을 아는 경우 SQL Server 용 LepideAuditor를 사용해야합니다. 이 도구를 사용하면 데이터베이스 및 SQL Server 개체에서 수행 된 만들기, 변경, 삭제 작업과 관련된 변경 사항을 추적 할 수 있습니다. 이 개체에 대해 수행 된 모든 작업에 대해 누가, 무엇을, 언제, 어디서, 어디에서 정교하게 볼 수 있습니다.
테이블 복사본을 유지하려면 데이터베이스 스냅 샷을 참조하십시오. 데이터베이스의 읽기 전용 복사본을 만드는 데 도움이되며 스냅 샷으로 테이블을 쉽게 복원하고 비교할 수 있습니다.
SQL 감사 정보는 시작 부분에 작성하는 것이 다소 어렵지만 한 번 작업 한 후에는 두 번째 감사가 구현되는 데 몇 분이 걸립니다.
SQL 감사는 몇 가지 테이블에 적합한 선택입니다. 둘 이상인 경우 Lepide 또는 apexsql 트리거와 같은 타사 도구 또는 데이터 캡처 변경을 사용하십시오.
아무도 당신이나 당신의 사용자/고객을 제외하고 "좋은 아이디어"가 무엇인지 말할 수 없습니다. 여기에 비즈니스 요구 사항은 무엇입니까? 합법적으로 통제되는 환경에서 모든 변경 사항에 대한 전체 감사 추적이 필요한 경우 더 많은 작업이 수행되는 경우에도 모든 테이블에 대해 감사를 설정해야 할 수 있습니다. 하지만 아마도 하나 또는 두 개의 특정 테이블 만 추적하면되므로 더 간단한 작업을 수행 할 수 있습니다. 질문을보다 정확하고 기술적으로 만들 수 있다면 더 나은 응답을 얻을 수 있습니다. – Pondlife