경우에 따라 Oracle® Databasesuperuser, sys
의 모든 작업을 감사해야 할 수도 있습니다. . 이 요구 사항을 충족하기 위해 Oracle은 AUDIT_SYS_OPERATIONS
를 포함하는 기능 반전 9i를 도입했습니다. 매개변수.
소개
이 매개변수를 true
로 설정하면 , 프로세스는 AUDIT_FILE_DEST
에 의해 결정된 디렉토리에 파일을 생성합니다. 매개변수. 이 파일에는 sys
의 모든 작업에 대한 프로토콜이 포함되어 있습니다. 사용자. 기본적으로 파일에는 sys
에 의한 연결이 포함됩니다. 그러나 연결 후에 발생하는 작업은 포함하지 마십시오.
AUDIT_SYS_OPERATIONS=true
로 설정한 경우 , sys
의 모든 작업을 포함하는 감사 파일 데이터베이스를 설치한 운영 체제 사용자(일반적으로 Oracle 사용자)에 속합니다. sys
로 연결할 권한이 있는 사용자 아마도 Oracle
로 연결할 수 있는 권한도 있을 것입니다. 운영 체제(OS) 수준에서. 이 액세스는 AUDIT_SYS_OPERATIONS
를 사용합니다. 보안 관점에서 다소 쓸모가 없습니다. 따라서 Oracle은 root
를 허용합니다. 감사 파일을 소유하기 위해 데이터베이스 관리자가 파일을 조작하거나 삭제하기가 더 어려워집니다.
OS 수준에서 감사 파일 구성
Oracle RAC(Real Application Clusters) 환경의 OS 수준에서 감사 파일을 구성하려면 다음 단계를 따르십시오.
1단계:데이터베이스 매개변수 설정
다음 명령을 사용하여 데이터베이스 매개변수를 설정하십시오.
SQL> alter system set audit_sys_operations=true scope=spfile;
System altered.
SQL> alter system set audit_syslog_level='LOCAL1.WARNING' scope=spfile;
System altered.
SQL> alter system set audit_trail = OS
SCOPE=SPFILE;
System altered.
2단계:RAC 노드 구성
root
로 다음 단계를 사용하십시오. , RAC1 및 RAC2 노드를 구성하려면:
a) 다음 명령을 실행하여 /etc/rsyslog.conf를 백업합니다. :
cp -p /etc/rsyslog.conf /etc/rsyslog.conf.<ITK#>
b) /etc/rsyslog.conf에 다음 줄을 추가합니다. :
# Oracle audit <ITK#>
local1.warning /var/log/oracle/db_name_audit.log
3단계:syslog 로거 다시 시작
다음 명령을 실행하여 syslog
를 다시 시작합니다. 로거 프로세스:
service rsyslog status
service rsyslog restart
service rsyslog status
4단계:RAC 데이터베이스 다시 시작
롤링 방식으로 RAC1 및 RAC2에서 RAC 데이터베이스를 다시 시작하려면 다음 단계를 사용하십시오.
a) RAC2에서 다음 명령을 실행합니다.
srvctl stop instance -d DB_NAME -i DB_SID2
srvctl start instance -d DB_NAME -i DB_SID2
srvctl status database -d DB_NAME
b) 10분 동안 기다립니다.
c) RAC1에서 다음 명령을 실행합니다.
srvctl stop instance -d DB_NAME -i DB_SID1
srvctl start instance -d DB_NAME -i DB_SID1
srvctl status database -d DB_NAME
5단계:logrotate 파일 설정
logrotate를 설정하려면 RAC1 및 RAC2의 파일, /etc/logrotate.d/oracle_audit 편집 , root
로 , 다음 줄 포함:
/var/log/oracle/db_name_audit.log
{
rotate 12
compress
weekly
dateext
notifempty
missingok
copytruncate
}
Logrotate 매개변수
logrotate에 다음 옵션(Logrotate를 사용하여 로그 관리 및 man 파일에서 수집)을 포함할 수 있습니다. 구성 파일:
회전 :로그의 마지막 N개의 아카이브를 유지합니다. 디스크 사용량이 적당하다면 이 값을 높게 설정할 수 있습니다. 로그가 커지면 지난 10일 또는 2주로 설정할 수도 있습니다.
압축 :아카이브된 로그는 gzip을 사용하여 압축됩니다(권장). 이 압축은 파일 크기를 원시 로그보다 훨씬 작게 유지합니다.
매주 :로그 파일은 매일 한 번 순환되거나 마지막 순환 이후 날짜가 7일 이상 앞당긴 경우(정확한 시간은 무시함) 요일 해석은 다음과 같습니다. 0은 일요일, 1은 월요일, 6은 토요일 . 특수값 7은 요일에 상관없이 7일 단위를 의미합니다. 요일 인수를 생략하면 기본값은 0입니다.
매년 :현재 연도가 마지막 회전과 같지 않으면 로그 파일을 회전합니다.
날짜 텍스트 :아카이브된 로그 파일에 처리된 날짜가 추가됩니다. 기본 형식은 YYYYMMDD입니다. 이 부록을 사용하면 보관된 로그를 더 쉽게 검색할 수 있습니다.
알림 :로그 파일이 비어 있으면 아카이브하지 마십시오. 이는 특정 수의 아카이브만 유지하고 이전 아카이브 항목을 밀어내는 빈 파일을 아카이브하지 않도록 하기 때문에 중요합니다.
미싱옥 :로그 파일을 찾을 수 없으면 구성에서 다음 로그 파일을 검색하십시오. 이렇게 하면 하나의 로그 파일이 누락된 경우 logrotate 프로그램이 예기치 않게 종료되지 않습니다.
복사본 자르기 :로그가 아카이브되면 logrotate는 로그 파일의 내용을 다른 파일(타임스탬프 포함)에 복사합니다. 그런 다음 이 옵션은 원본 로그 파일에서 복사된 항목을 제거하거나 자르도록 logrotate에 지시합니다. 이 옵션은 프로그램이 계속해서 로그 파일에 기록할 때 필요하며, 이 옵션은 프로그램이 (로그 파일에 액세스할 수 없기 때문에) 예기치 않게 종료되는 것을 방지하기 위해 프로그램에서 동일한 로그 파일을 사용하고 있는지 확인합니다.
장단점
감사 기록을 OS의 파일에 기록할 때의 장단점은 다음과 같습니다.
장점:
root
에 감사 레코드 로깅 -소유된 파일 시스템은 데이터베이스를 설치한 Oracle 사용자라도 내용을 읽고 수정하는 것을 제한합니다.
단점:
OS에 감사 파일을 저장하면 공간이 소모되고 성능 문제가 발생할 수 있습니다. 예:sys
이제 catalog.sql
실행과 같은 대규모 작업을 수행할 수 있습니다. 또는 catproc.sql
작업.
결론
이 게시물의 단계는 모든 감사 레코드를 RAC 데이터베이스의 OS 파일로 보냅니다. 오라클은 특히 매우 안전한 데이터베이스 구성을 사용하는 경우 OS 설정을 사용할 것을 권장합니다.
피드백 탭을 사용하여 의견을 작성하거나 질문하십시오. 지금 채팅을 시작하여 대화를 시작할 수도 있습니다.
데이터베이스에 대해 자세히 알아보십시오.