Computer >> คอมพิวเตอร์ >  >> การเขียนโปรแกรม >> ฐานข้อมูล

เปิดใช้งานการตรวจสอบ Oracle ที่ระดับระบบปฏิบัติการในฐานข้อมูล RAC

ในบางครั้ง คุณอาจต้องตรวจสอบการดำเนินการทั้งหมดของ 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 โดยเฉพาะหากคุณใช้การกำหนดค่าฐานข้อมูลที่มีความปลอดภัยสูง

ใช้แท็บคำติชมเพื่อแสดงความคิดเห็นหรือถามคำถาม คุณยังแชทตอนนี้เพื่อเริ่มการสนทนาได้

เรียนรู้เพิ่มเติมเกี่ยวกับฐานข้อมูล