Computer >> Máy Tính >  >> Lập trình >> Cơ sở dữ liệu

Cho phép kiểm tra Oracle ở cấp hệ điều hành trong cơ sở dữ liệu RAC

Đôi khi, bạn có thể cần phải kiểm tra tất cả các hoạt động của Oracle® Databasesuperuser, sys . Để đáp ứng yêu cầu này, Oracle đã giới thiệu một tính năng đảo ngược 9i bao gồm AUDIT_SYS_OPERATIONS tham số.

Giới thiệu

Khi bạn đặt tham số này thành true , quá trình tạo tệp trong thư mục được xác định bởi AUDIT_FILE_DEST tham số. Các tệp này chứa một giao thức của tất cả các hành động của sys người sử dụng. Theo mặc định, các tệp chứa các kết nối bằng sys nhưng không bao gồm các hành động xảy ra sau khi kết nối.

Nếu bạn đặt AUDIT_SYS_OPERATIONS=true , tệp kiểm tra chứa tất cả các hành động của sys thuộc về người dùng hệ điều hành đã cài đặt cơ sở dữ liệu — thường là người dùng Oracle. Người dùng có đặc quyền kết nối dưới dạng sys có lẽ cũng có đặc quyền kết nối với tên Oracle ở cấp độ hệ điều hành (OS). Quyền truy cập này sử dụng AUDIT_SYS_OPERATIONS hơi vô ích từ quan điểm bảo mật. Vì vậy, Oracle cho phép root sở hữu tệp kiểm tra, điều này sẽ khiến quản trị viên cơ sở dữ liệu khó thao tác hoặc xóa tệp hơn.

Định cấu hình tệp kiểm tra ở cấp hệ điều hành

Sử dụng các bước sau để định cấu hình tệp kiểm tra ở cấp hệ điều hành trong môi trường Cụm ứng dụng thực tế kỳ diệu (RAC):

Bước 1:Đặt các tham số cơ sở dữ liệu

Sử dụng các lệnh sau để đặt các tham số cơ sở dữ liệu:

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.

Bước 2:Định cấu hình các nút RAC

Sử dụng các bước sau, với tư cách là root , để định cấu hình các nút RAC1 và RAC2:

a) Chạy lệnh sau để sao lưu /etc/rsyslog.conf :

cp -p /etc/rsyslog.conf /etc/rsyslog.conf.<ITK#>

b) Thêm các dòng sau vào /etc/rsyslog.conf :

# Oracle audit <ITK#>
local1.warning /var/log/oracle/db_name_audit.log

Bước 3:Khởi động lại trình ghi nhật ký hệ thống

Chạy các lệnh sau để khởi động lại syslog quy trình ghi nhật ký:

service rsyslog status
service rsyslog restart
service rsyslog status

Bước 4:Khởi động lại cơ sở dữ liệu RAC

Sử dụng các bước sau để khởi động lại cơ sở dữ liệu RAC trên RAC1 và RAC2 theo kiểu cuộn:

a) Chạy các lệnh sau trên 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) Chờ mười phút.

c) Chạy các lệnh sau trên 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

Bước 5:Thiết lập tệp logrotate

Để thiết lập logrotate tệp trên RAC1 và RAC2, chỉnh sửa /etc/logrotate.d/oracle_audit , với tư cách là root , bao gồm các dòng sau:

/var/log/oracle/db_name_audit.log
{
   rotate 12
   compress
   weekly
   dateext
   notifempty
   missingok
   copytruncate
}
Tham số logrotate

Bạn có thể bao gồm các tùy chọn sau (được thu thập từ Quản lý nhật ký của bạn bằng Logrotatea và tệp man) trong logrotate tệp cấu hình:

Xoay vòng :Giữ N bản lưu trữ cuối cùng của nhật ký. Bạn có thể đặt mức này cao, tùy theo mức sử dụng đĩa là hợp lý. Bạn cũng có thể đặt nó thành 10 ngày hoặc 2 tuần qua nếu nhật ký lớn hơn.

Nén :Nhật ký đã lưu trữ được nén bằng gzip (được khuyến nghị). Nén này giữ cho kích thước tệp thấp hơn nhiều so với nhật ký thô.

Hàng tuần :Các tệp nhật ký được xoay vòng một lần mỗi ngày hoặc nếu ngày được nâng cao ít nhất 7 ngày, kể từ lần xoay cuối cùng (mặc dù bỏ qua thời gian chính xác). . Giá trị đặc biệt 7 có nghĩa là mỗi 7 ngày, bất kể ngày trong tuần. Giá trị mặc định là 0 nếu bỏ qua đối số ngày trong tuần.

Hàng năm :Các tệp nhật ký được xoay vòng nếu năm hiện tại không giống với tuần hoàn.

dateext :Các tệp nhật ký đã lưu trữ được thêm vào ngày xử lý. Định dạng mặc định là YYYYMMDD. Phần phụ này giúp việc tìm kiếm nhật ký đã lưu trữ dễ dàng hơn.

notifempty :Nếu tệp nhật ký trống, không lưu trữ nó. Điều này rất quan trọng vì bạn chỉ giữ một số lượng lưu trữ nhất định và điều này đảm bảo rằng bạn không lưu trữ các tệp trống đã lưu trữ đẩy ra các mục đã lưu trữ cũ hơn.

missok :Nếu không tìm thấy bất kỳ tệp nhật ký nào, chỉ cần tìm kiếm tệp nhật ký tiếp theo trong cấu hình. Điều này đảm bảo rằng chương trình logrotate không thoát ra ngoài dự kiến ​​trong trường hợp thiếu một tệp nhật ký.

copytruncate :Khi một nhật ký được lưu trữ, logrotate sao chép nội dung của tệp nhật ký vào một tệp khác (có dấu thời gian). Tùy chọn này sau đó yêu cầu logrotateto loại bỏ hoặc cắt bớt các mục đã sao chép từ tệp nhật ký gốc. Tùy chọn này cần thiết khi các chương trình liên tục ghi vào tệp nhật ký và tùy chọn này đảm bảo rằng cùng một tệp nhật ký đang được chương trình sử dụng để ngăn nó thoát ra ngoài bất ngờ (do không thể truy cập tệp nhật ký).

Ưu và nhược điểm

Ưu và nhược điểm của việc ghi hồ sơ đánh giá vào một tệp trên Hệ điều hành bao gồm những cân nhắc sau:

Ưu điểm:

Ghi nhật ký các bản ghi kiểm tra vào một root -owned filesystem hạn chế ngay cả người dùng Oracle đã cài đặt cơ sở dữ liệu đọc nội dung và sửa đổi nó.

Nhược điểm:

Việc lưu trữ các tệp kiểm tra trên hệ điều hành sẽ tiêu tốn dung lượng và có thể gây ra các vấn đề về hiệu suất. Ví dụ:sys bây giờ có thể thực hiện các hành động lớn, chẳng hạn như chạy catalog.sql hoặc catproc.sql hoạt động.

Kết luận

Các bước trong bài đăng này hướng tất cả các bản ghi kiểm tra đến tệp hệ điều hành trong cơ sở dữ liệu RACdatabase. Oracle khuyến nghị bạn sử dụng cài đặt hệ điều hành, đặc biệt nếu bạn sử dụng cấu hình cơ sở dữ liệu siêu an toàn.

Sử dụng tab Phản hồi để đưa ra bất kỳ nhận xét hoặc đặt câu hỏi nào. Bạn cũng có thể trò chuyện ngay bây giờ để bắt đầu cuộc trò chuyện.

Tìm hiểu thêm về Cơ sở dữ liệu.