한 서버에서 출력 한 감사 파일을 해당 서버에서 CONTROL SERVER 액세스없이 읽을 수 있는지 확인하려고합니다. MSDN docs이 가능 제안 : 그들이 권한이있는 경우 데이터베이스 엔진이 파일에 쓰기SQL Server 2012 감사 보고서 생성
경우에도, 다른 Windows 사용자가 감사 파일을 읽을 수 있습니다. 데이터베이스 엔진은 읽기 작업을 금지하는 배타적 잠금을 사용하지 않습니다.
도 : 에만 감사 관리자 또는 감사 독자가에
당신은 SQL Server Express의 인스턴스로 별도의 인스턴스 SQL 서버의 에서 감사 보고서를 생성하는 것이 좋습니다, 접속하다. 보고를 위해 데이터베이스 엔진 인스턴스를 별도로 사용하면 이 권한없는 사용자가 감사 레코드에 액세스하지 못하도록 할 수 있습니다.
간단히 말해서이 작업을 수행 할 수 있습니까?
- 구성 감사는 감사 보고서를 생성하기 위해 별도의 DB에서 파일 공유에
- 사용 sys.fn_get_audit_file ('파일 공유의 *')를 읽기 액세스.
[해설] 질문의 중요한 부분은 당신이 감사 정보가 생성 된에서 DB에 대한 관리자 액세스하지 않고, 별도의 DB에서 sys.fn_get_audit_file을 사용하여 파일을 액세스 할 수있다. 그렇게하면 DB 관리자 액세스 권한이있는 DBA와 별도로 파일 시스템 액세스 권한을 가진 독자를 감사 할 수 있습니다. 처음에 이것을 분명히하지 않아서 미안합니다.
대답과 관련하여이 쿼리는 원본 DB의 DBA가 아닌 사람이 관련없는 SQL Mgmt Studio/DB에서 실행할 수 있습니까?
SELECT
event_time, action_id, session_id, object_id, class_type,
database_principal_name, database_name, object_name, statement
FROM
sys.fn_get_audit_file('\\Temp\Audit\*',NULL,NULL);
위에 나열된 짧은 단계를 시도해 봤습니까? 다른 것을 시도 했습니까? – milivojeviCH
@mceda - 적어도 1 월 중순까지 SQL 2012에 액세스 할 수 없으므로 필자는 문서가 비슷해 보이는 동안 SQL 2008에서이 작업을 시도 할 계획입니다. –
내가 시도하지 않은 유일한 부분은 총알 지점 3입니다. 별도의 DB는 중요하지 않습니다. 파일에 액세스하는 사용자는 SQL Server 서비스 사용자입니다. – milivojeviCH