ในบางครั้ง คุณอาจต้องตรวจสอบการดำเนินการทั้งหมดของ Oracle® Databasesuperuser, sys
. เพื่อให้เป็นไปตามข้อกำหนดนี้ Oracle ได้แนะนำคุณลักษณะผกผัน 9i ที่มี AUDIT_SYS_OPERATIONS
พารามิเตอร์
แนะนำตัว
เมื่อคุณตั้งค่าพารามิเตอร์นี้เป็น true
กระบวนการสร้างไฟล์ในไดเร็กทอรีที่กำหนดโดย AUDIT_FILE_DEST
พารามิเตอร์. ไฟล์เหล่านี้มีโปรโตคอลของการกระทำทั้งหมดของ sys
ผู้ใช้ โดยค่าเริ่มต้น ไฟล์จะมีการเชื่อมต่อโดย sys
แต่ไม่รวมการกระทำที่เกิดขึ้นหลังการเชื่อมต่อ
หากคุณตั้งค่า AUDIT_SYS_OPERATIONS=true
ไฟล์การตรวจสอบที่มีการกระทำทั้งหมดของ sys
เป็นของผู้ใช้ระบบปฏิบัติการที่ติดตั้งฐานข้อมูล—โดยปกติคือผู้ใช้ Oracle ผู้ใช้ที่มีสิทธิ์เชื่อมต่อเป็นsys
อาจมีสิทธิ์เชื่อมต่อเป็น Oracle
ในระดับระบบปฏิบัติการ (OS) การเข้าถึงนี้ทำให้ใช้ AUDIT_SYS_OPERATIONS
ค่อนข้างไร้ประโยชน์จากมุมมองด้านความปลอดภัย ดังนั้น Oracle อนุญาต root
เพื่อเป็นเจ้าของไฟล์การตรวจสอบ ซึ่งจะทำให้ผู้ดูแลระบบฐานข้อมูลจัดการหรือลบไฟล์ได้ยากขึ้น
กำหนดค่าไฟล์การตรวจสอบที่ระดับ OS
ใช้ขั้นตอนต่อไปนี้เพื่อกำหนดค่าไฟล์การตรวจสอบที่ระดับ OS ในสภาพแวดล้อม anOracle Real Application Clusters (RAC):
ขั้นตอนที่ 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
ใช้ขั้นตอนต่อไปนี้เพื่อรีสตาร์ทฐานข้อมูล RAC บน RAC1 และ RAC2 แบบต่อเนื่อง:
ก) เรียกใช้คำสั่งต่อไปนี้บน 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) รอสิบนาที
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 และไฟล์ man) ในlogrotate ไฟล์การกำหนดค่า:
หมุน :เก็บ N archive สุดท้ายของบันทึก คุณสามารถตั้งค่านี้ให้สูงได้ตราบเท่าที่การใช้ดิสก์มีความสมเหตุสมผล คุณยังตั้งค่าเป็น 10 วันหรือ 2 สัปดาห์ล่าสุดได้หากบันทึกมีขนาดใหญ่ขึ้น
บีบอัด :บันทึกที่เก็บถาวรถูกบีบอัดโดยใช้ gzip (แนะนำ) การบีบอัดนี้ทำให้ขนาดไฟล์ต่ำกว่าบันทึกดิบมาก
รายสัปดาห์ :ไฟล์บันทึกจะหมุนเวียนวันละครั้ง หรือหากวันที่เลื่อนออกไปอย่างน้อย 7 วัน นับตั้งแต่การหมุนเวียนครั้งล่าสุด (โดยไม่สนใจเวลาที่แน่นอน) การตีความวันธรรมดามีดังนี้ 0 หมายถึง วันอาทิตย์ 1 หมายถึง วันจันทร์ 6 หมายถึงวันเสาร์ . ค่าพิเศษ 7 หมายถึงทุกๆ 7 วันโดยไม่คำนึงถึงวันทำงาน ค่าเริ่มต้นคือ 0 หากละเว้นอาร์กิวเมนต์วันทำงาน
รายปี :ไฟล์บันทึกจะถูกหมุนเวียนหากปีปัจจุบันไม่เหมือนกับการหมุนเวียนครั้งสุดท้าย
dateext :ไฟล์บันทึกที่เก็บถาวรจะถูกต่อท้ายด้วยวันที่ที่ประมวลผล รูปแบบเริ่มต้นคือ YYYYMMDD ส่วนต่อท้ายนี้ทำให้การค้นหาบันทึกที่เก็บถาวรง่ายขึ้น
แจ้งเตือน :หากไฟล์บันทึกว่างเปล่า ไม่ต้องเก็บถาวร นี่เป็นสิ่งสำคัญเพราะคุณเก็บไฟล์เก็บถาวรจำนวนหนึ่งไว้เท่านั้น และทำให้แน่ใจว่าคุณไม่ได้เก็บถาวรไฟล์เปล่าที่ผลักรายการเก่าที่เก็บไว้ออก
คิดถึงก็อก :หากไม่พบไฟล์บันทึก ให้ค้นหาไฟล์บันทึกถัดไปในการกำหนดค่า สิ่งนี้ทำให้มั่นใจได้ว่าโปรแกรม logrotate จะไม่ออกโดยไม่คาดคิดในกรณีที่ไฟล์บันทึกหายไปหนึ่งไฟล์
คัดลอก :เมื่อเก็บบันทึกถาวรแล้ว logrotate จะคัดลอกเนื้อหาของไฟล์บันทึกไปยังไฟล์อื่น (ด้วยการประทับเวลา) จากนั้นอ็อพชันนี้จะบอก logrotateto ให้ลบหรือตัดทอนรายการที่คัดลอกจากล็อกไฟล์ต้นฉบับ ตัวเลือกนี้จำเป็นเมื่อโปรแกรมเขียนลงในล็อกไฟล์อย่างต่อเนื่อง และตัวเลือกนี้ช่วยให้แน่ใจว่าโปรแกรมใช้ล็อกไฟล์เดียวกันเพื่อป้องกันไม่ให้ออกจากไฟล์โดยไม่คาดคิด (เนื่องจากไม่สามารถเข้าถึงล็อกไฟล์ได้)
ข้อดีและข้อเสีย
ข้อดีและข้อเสียของการเขียนบันทึกการตรวจสอบไปยังไฟล์บน OS รวมถึงข้อควรพิจารณาต่อไปนี้:
ข้อดี:
การบันทึกบันทึกการตรวจสอบไปยัง root
-ระบบไฟล์ที่เป็นเจ้าของจะจำกัดแม้แต่ผู้ใช้ Oracle ที่ติดตั้งฐานข้อมูลไม่ให้อ่านเนื้อหาและแก้ไข
ข้อเสีย:
การจัดเก็บไฟล์การตรวจสอบใน OS จะใช้พื้นที่และอาจทำให้เกิดปัญหาด้านประสิทธิภาพได้ ตัวอย่างเช่น sys
ตอนนี้สามารถดำเนินการขนาดใหญ่ได้ เช่น การเรียกใช้ catalog.sql
หรือ catproc.sql
การดำเนินงาน
บทสรุป
ขั้นตอนในโพสต์นี้จะนำบันทึกการตรวจสอบทั้งหมดไปยังไฟล์ OS ในฐานข้อมูล RAC Oracle แนะนำให้คุณใช้การตั้งค่า OS โดยเฉพาะหากคุณใช้การกำหนดค่าฐานข้อมูลที่มีความปลอดภัยสูง
ใช้แท็บคำติชมเพื่อแสดงความคิดเห็นหรือถามคำถาม คุณยังแชทตอนนี้เพื่อเริ่มการสนทนาได้
เรียนรู้เพิ่มเติมเกี่ยวกับฐานข้อมูล