문제

SQL Server 2005에는 저장된 절차를 삭제하는 것과 같은 것을 감사하기 위해 내장 된 방법이 있습니까? 쿼리 할 수있는 히스토리 테이블이 있습니까? 우리는 지금 몇 번 사라진 미스터리 스프로크를 가지고 있습니다.

도움이 되었습니까?

해결책

DDL 트리거를 사용 하여이 작업을 구축 할 수 있습니다.

http://msdn.microsoft.com/en-us/library/ms190989.aspx

다른 팁

사용하는 경우에만 DDL 트리거 또는 프로파일 러를 사용하여 텍스트를 추적합니다 "%drop%proc%procname%"

SQL Server 2008에서는 이제 감사 활동을위한 프로파일 러 트레이스를 대체하는 감사가 있습니다. 비슷하지만 결과를 볼 수있는 자체 구성 UI 및 UI가 있습니다.

관심있는 데이터베이스 이름을 기반으로 감사 스키마 객체 관리 이벤트와 필터를 캡처하기 위해 프로파일 러 트레이스를 설정할 수 있습니다. 스키마의 객체가 생성, 삭제, 편집 할 때마다 변경 한 사람과 저장 프로 시저의 이름을 포함하는 프로파일 러의 이벤트를 시작합니다.

최소한 이러한 프로파일 러 열을 원할 것입니다 : ApplicationName- 앱 사용자 이름이 변경되었을 때 실행 중입니다. 데이터가 변경 될 때 - 객체 변경 이벤트를 포함하는 데이터베스 - 액션 유형 Alter, Modify, Drop, LoginName -Object 객체 이름 만들기 - 개체 체하는

늦은 사람이지만 감사 시스템이 시행되기 전에 누가 변경했는지 확인하는 방법에 대한 세부 정보를 추가합니다.

다른 사람들은 이미 미래의 변경 사항을 모니터링하기 위해 감사 데이터를 시작할 수있는 다양한 방법을 다루었지만 원래 감사 시스템이 없다면 누가 역사적으로 무엇을했는지 알아 내기가 매우 어렵습니다.

유일한 옵션은 데이터베이스가 전체 복구 모드에 있다고 가정하는 트랜잭션 로그를 읽는 것입니다. 문제는 이것이 기본적으로 지원되지 않는다는 것입니다. 옵션은 다음과 같습니다.

자세한 내용은 다음 주제를 참조하십시오.

SQL Server 2008에서 트랜잭션 로그를 보는 방법

SQL Server Transaction Log Explorer/Analyzer

SQL Server Management Studio에서 쿼리 기록을 보는 방법

동의한다. 필터가있는 SQL Server 프로파일러 일 수 있습니다. DDL 트리거는 SQL Server에 존재했습니다. 다음과 같은 것을 만들 수 있습니다.

 CREATE TRIGGER ddl_drop_procedure 
    ON DATABASE 
    FOR DROP_PROCEDURE
   AS 
     RAISERROR ('You deleted a stored procedure',10, 1)

   GO

다른 옵션은 CodePlex의 자동 감사 또는 ApexSQL 트리거와 같은 타사 도구를 사용하는 것입니다.

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