[SQL] SQL 서버 데이터 변경 사항을 감사
SQLSQL 서버 데이터 변경 사항을 감사
나는 우리의 SQL 서버 2005 데이터베이스에 대한 우리의 감사 과정을 변경보고 그리고 난 SQL Server 2008의 변경 데이터 캡처를 가로 질러왔다.
좋은 아이디어 같은이 모습은, 나는 그것을 시도하는 유혹 해요,하지만 난 전에 누군가가 상업적 환경에서 그것을 사용하고 당신의 생각은 무엇을 했는가?
나는 내가 MS 도움말에서 CDC에 대한 책을 읽은 때 발견, 그 감사 데이터는 일반적으로 며칠 동안 보관 될 것이라고 말했다. 즉 나는 무기한 데이터를 유지하고 싶습니다, 여기 불가능, 누구든지 알고이 방법에 문제입니까?
이것이 내가 모르고 해요 이유에 대한 좋은 솔루션이 아닌 경우, 당신은 데이터 변경의 감사를위한 다른 솔루션을 가지고있다. 내가 원하는 모든 테이블에 전면적으로 구현 될 수있는 시스템을 사용하고 싶어 해요.
나는 기본적인 후 해요 "전, 후, 누구에 의해, 때"변경 사항에 대한 정보를 제공합니다.
해결법
-
==============================
1.질병 통제 예방 센터 SHOULD 내 의견의 끝을 단지 수단입니다. 나는 과거에 감사 추적 솔루션을 구현 한 그들은 트리거의 사용을 포함했다. 이것은 높은 트랜잭션 데이터베이스에 대해 매우 혼란과 성능 집약적있을거야.
질병 통제 예방 센터 SHOULD 내 의견의 끝을 단지 수단입니다. 나는 과거에 감사 추적 솔루션을 구현 한 그들은 트리거의 사용을 포함했다. 이것은 높은 트랜잭션 데이터베이스에 대해 매우 혼란과 성능 집약적있을거야.
무엇 CDC가 당신을 제공하는 트리거를 사용하지 않고 감사 데이터를 기록 할 수 있다는 것입니다,하지만 당신은 여전히 영구 테이블에 데이터를 취할 수있는 수단이 필요합니다. 이것은 감사 할 각 테이블 또는 모든 테이블에 트랙의 모든 변경 (나는 후자를 수행 한) 것을 하나의 테이블 거울 테이블을 수행 할 수 있습니다.
여기가 트리거를 사용하여 수행 된 방법에 대한 자세한 내용은 일부 링크가 있습니다 : SQL 감사 추적 SQL 서버 - 역사 - 테이블 채우기-통해-SP-또는 트리거
여기에 사용 된 LINQ 그 오픈 소스 감사 추적 솔루션입니다 : DoddleAudit
-
==============================
2.꽤 늦었지만 잘하면 다른 독자에 유용 할 것입니다 ...
꽤 늦었지만 잘하면 다른 독자에 유용 할 것입니다 ...
다음은 장단점과 감사에 대한 몇 가지 다른 기술이다. 모두 맞는 것이 아니 "오른쪽"솔루션은 없습니다. 이 요구 사항에 따라 시스템이 감사하고.
트리거
질병 통제 예방 센터
추적
트랜잭션 로그를 읽기
나는 ApexSQL에서 여러 감사 도구와 함께 일했지만 좋은 도구가 Idera (준수 관리자)와 크렐 소프트웨어 (전 감사)로부터도있다
ApexSQL 감사 - 트리거 기반 감사 도구. 생성 및 감사 트리거를 관리
ApexSQL 로그 - 읽기 트랜잭션 로그에 의해 감사를 할 수 있습니다
-
==============================
3.SQL 서버 2008에서는 파일, 응용 프로그램 로그 나 시스템 로그에 "감사"기능 및 재고 데이터를 사용할 수 있습니다. 더 많은 정보를 정기적에서 찾기 : http://msdn.microsoft.com/en-us/library/cc280386.aspx
SQL 서버 2008에서는 파일, 응용 프로그램 로그 나 시스템 로그에 "감사"기능 및 재고 데이터를 사용할 수 있습니다. 더 많은 정보를 정기적에서 찾기 : http://msdn.microsoft.com/en-us/library/cc280386.aspx
-
==============================
4.두 일 후에 캡처 변경을 제거 SQL 서버 작업을 편집 할 수 있습니다. 또한 사용자의 편의에 따라이 정리 시간을 연장하거나 영구적으로 만들 수 있습니다.
두 일 후에 캡처 변경을 제거 SQL 서버 작업을 편집 할 수 있습니다. 또한 사용자의 편의에 따라이 정리 시간을 연장하거나 영구적으로 만들 수 있습니다.
-
==============================
5.나는이 스크립트를 사용하고, 당신은 당신이 당신의 데이터베이스에서 정의하는 감사 또는 모든 테이블이 원하는 테이블 (들)이 무엇인지 정의 할 수 있습니다. 또한, 하나의 레코드에 대한 TVF 역사의보고. 자세한 내용은 링크를 확인하십시오.
나는이 스크립트를 사용하고, 당신은 당신이 당신의 데이터베이스에서 정의하는 감사 또는 모든 테이블이 원하는 테이블 (들)이 무엇인지 정의 할 수 있습니다. 또한, 하나의 레코드에 대한 TVF 역사의보고. 자세한 내용은 링크를 확인하십시오.
from https://stackoverflow.com/questions/793643/auditing-sql-server-data-changes by cc-by-sa and MIT license
'SQL' 카테고리의 다른 글
[SQL] 오라클 SQL의 SUM 함수가 같은 제품 기능은 무엇입니까? (0) | 2020.06.08 |
---|---|
[SQL] 나는 SQL 서버의 XML 값에서 요소 이름의 목록을 얻을 수있는 방법 (0) | 2020.06.08 |
[SQL] MySQL의 최적화 INSERT 속도 때문에 지표의 둔화되고 (0) | 2020.06.08 |
[SQL] 어떻게 생성하고 SQL 서버 쿼리 연결된 데이터베이스 서버합니까? (0) | 2020.06.08 |
[SQL] 자료 10 변환을 사용하여 SQL 만에 자료 (36) (0) | 2020.06.08 |