2009-05-08 3 views

답변

1

SQL Server 2008을 사용하는 경우 Change Data Capture을 볼 수 있습니다.이 기능은 내가 가지고 있다고 상상할 수있는 새로운 감사 기능입니다.

또 다른 가능성은 테이블에 ID 열을 넣는 것입니다. 그런 다음 열을 내림차순으로 주문할 수 있습니다.

DBCC Log 명령을 사용해 볼 수도 있습니다. 이것이 당신에게 당신이 원하는 것을 줄 것인지, 그것이 당신에게주는 데이터를 해석 할 수있는 지점에 도달하기까지는 약간의 노력이 필요할 것입니다.

+0

그러나 이것은 추가 된 행이 아니라 가장 최근에 추가 된 행만 알려줍니다. – kristian

+1

올바른 그래서 신원 열이 좋은 생각이 아닌 것 같아 변경 데이터 캡처는 SQL Server 2008을 사용하는 경우 가장 좋은 솔루션입니다 – JoshBerke

0

예 : 사용중인 dbms에 로그 기능이 있고이를 사용하도록 설정 한 경우 예. 그러면 시스템 로그 테이블을 조회 할 수 있습니다. 오라클은 기본적으로 활성화 된 것과 비슷한 것을 가지고 있습니다. sqlserver를 사용하는 경우 로깅 메커니즘을 활성화해야한다고 생각합니다.

1

no. SQL Server에는이 기능이 기본적으로 제공되지 않습니다.

0

내가 알고있는 유일한 방법은 백업 + 트랜잭션 로그를 특정 시점으로 복원하는 것입니다. 그런 다음 행이 존재하는지 확인하고, 씻고, 헹구고, 반복합니다. 이것이 SQL 2000 인 경우, 일부 로그 파서가 있으므로 로그의 어떤 지점에서 행을 찾을 수 있는지 알 수 있습니다. SQL 2005/2008라면 아직 로그 파서가 없다고 생각합니다.

0

SqlServer의 경우 Red Gate 도구 모음과 같은 SQL 로그 뷰어/분석기는 신경 쓰지 않습니다.

1

삽입 또는 업데이트 된 날짜와 같은 메타 데이터를 보려면이 설정을해야합니다. 삽입 된 날짜를 보는 가장 쉬운 방법은 날짜 삽입 된 열을 추가하는 것입니다. 더 어려운 방법은 감사를 추가하는 것입니다. 솔직히 비즈니스 중요한 정보가 포함 된 모든 프로덕션 시스템에 있어야합니다. SQL Server 2008에서는 트리거 또는 외부 감사 시스템을 사용하거나 데이터 추적을 변경할 수 있지만 이러한 방법은 자동으로 설정되지 않으므로 시스템을 설정하기 전에 추가 된 데이터를 조회하는 데 해당 메서드를 사용할 수 없습니다. 누군가 최근에 레코드를 추가 한 경우 로그를 읽는 도구를 사용하여 트랜잭션 로그에서 추가 된시기를 알 수 있지만 대개이 값 비싼 방법을 사용하면 누가 레코드를 추가했는지 알 수 없습니다. 대부분의 감사 솔루션이 그렇습니다.

관련 문제