DB2 - ความปลอดภัยของฐานข้อมูล
บทนี้อธิบายถึงความปลอดภัยของฐานข้อมูล
บทนำ
ฐานข้อมูล DB2 และฟังก์ชันสามารถจัดการได้โดยโหมดควบคุมความปลอดภัยสองโหมด:
- Authentication
- Authorization
การรับรองความถูกต้อง
การพิสูจน์ตัวตนเป็นกระบวนการยืนยันว่าผู้ใช้เข้าสู่ระบบตามสิทธิ์ในการดำเนินกิจกรรมที่ได้รับอนุญาตให้ดำเนินการเท่านั้น การพิสูจน์ตัวตนผู้ใช้สามารถทำได้ในระดับระบบปฏิบัติการหรือระดับฐานข้อมูลเอง การใช้เครื่องมือตรวจสอบความถูกต้องสำหรับไบโอเมตริกเช่นเรติน่าและภาพพิมพ์ถูกใช้เพื่อป้องกันฐานข้อมูลจากแฮกเกอร์หรือผู้ใช้ที่เป็นอันตราย
ความปลอดภัยของฐานข้อมูลสามารถจัดการได้จากภายนอกระบบฐานข้อมูล db2 กระบวนการตรวจสอบความปลอดภัยบางประเภทมีดังนี้
- ขึ้นอยู่กับการรับรองความถูกต้องของระบบปฏิบัติการ
- Lightweight Directory Access Protocol (LDAP)
สำหรับ DB2 เซอร์วิสความปลอดภัยเป็นส่วนหนึ่งของระบบปฏิบัติการเป็นผลิตภัณฑ์แยกต่างหาก สำหรับการพิสูจน์ตัวตนจำเป็นต้องมีข้อมูลประจำตัวที่แตกต่างกันสองแบบคือรหัสผู้ใช้หรือชื่อผู้ใช้และรหัสผ่าน
การอนุญาต
คุณสามารถเข้าถึงฐานข้อมูล DB2 และฟังก์ชันการทำงานภายในระบบฐานข้อมูล DB2 ซึ่งจัดการโดยตัวจัดการฐานข้อมูล DB2 การอนุญาตเป็นกระบวนการที่จัดการโดยตัวจัดการฐานข้อมูล DB2 ผู้จัดการได้รับข้อมูลเกี่ยวกับผู้ใช้ปัจจุบันที่พิสูจน์ตัวตนซึ่งระบุว่าการดำเนินการฐานข้อมูลใดที่ผู้ใช้สามารถดำเนินการหรือเข้าถึงได้
วิธีการอนุญาตต่างๆสำหรับการอนุญาตมีดังนี้
Primary permission: ให้รหัสการอนุญาตโดยตรง
Secondary permission: มอบให้กับกลุ่มและบทบาทหากผู้ใช้เป็นสมาชิก
Public permission: มอบให้กับผู้ใช้ทุกคนแบบสาธารณะ
Context-sensitive permission: มอบให้กับบทบาทบริบทที่เชื่อถือได้
สามารถให้สิทธิ์แก่ผู้ใช้ตามหมวดหมู่ด้านล่าง:
- การอนุญาตระดับระบบ
- ผู้ดูแลระบบ [SYSADM]
- การควบคุมระบบ [SYSCTRL]
- การบำรุงรักษาระบบ [SYSMAINT]
- การตรวจสอบระบบ [SYSMON]
ผู้มีอำนาจให้การควบคุมฟังก์ชันระดับอินสแตนซ์ ผู้มีอำนาจให้สิทธิ์กลุ่มเพื่อควบคุมการบำรุงรักษาและการดำเนินการด้านอำนาจ ตัวอย่างเช่นฐานข้อมูลและวัตถุฐานข้อมูล
- การอนุญาตระดับฐานข้อมูล
- ผู้ดูแลระบบความปลอดภัย [SECADM]
- ผู้ดูแลระบบฐานข้อมูล [DBADM]
- การควบคุมการเข้าถึง [ACCESSCTRL]
- การเข้าถึงข้อมูล [DATAACCESS]
- ผู้ดูแลระบบ SQL [SQLADM]
- ผู้ดูแลระบบการจัดการภาระงาน [WLMADM]
- อธิบาย [EXPLAIN]
เจ้าหน้าที่ให้การควบคุมภายในฐานข้อมูล หน่วยงานอื่น ๆ สำหรับฐานข้อมูลรวมถึง LDAD และ CONNECT
- Object-Level Authorization: การอนุญาตระดับออบเจ็กต์เกี่ยวข้องกับการตรวจสอบสิทธิ์เมื่อมีการดำเนินการกับวัตถุ
- Content-based Authorization: ผู้ใช้สามารถอ่านและเขียนการเข้าถึงแต่ละแถวและคอลัมน์ในตารางเฉพาะโดยใช้ Label-based access Control [LBAC]
ตาราง DB2 และไฟล์คอนฟิกูเรชันใช้เพื่อบันทึกสิทธิ์ที่เกี่ยวข้องกับชื่อการอนุญาต เมื่อผู้ใช้พยายามเข้าถึงข้อมูลสิทธิ์ที่บันทึกไว้จะตรวจสอบสิทธิ์ต่อไปนี้:
- ชื่อการอนุญาตของผู้ใช้
- กลุ่มใดเป็นของผู้ใช้
- บทบาทใดที่มอบให้กับผู้ใช้โดยตรงหรือโดยอ้อมให้กับกลุ่ม
- สิทธิ์ที่ได้รับผ่านบริบทที่เชื่อถือได้
ในขณะที่ทำงานกับคำสั่ง SQL โมเดลการอนุญาต DB2 จะพิจารณาการรวมกันของสิทธิ์ต่อไปนี้:
- สิทธิ์ที่มอบให้กับ ID การอนุญาตหลักที่เชื่อมโยงกับคำสั่ง SQL
- รหัสการอนุญาตรองที่เชื่อมโยงกับคำสั่ง SQL
- มอบให้แก่ PUBLIC
- มอบให้กับบทบาทบริบทที่เชื่อถือได้
หน่วยงานระดับอินสแตนซ์
ให้เราหารือเกี่ยวกับหน่วยงานที่เกี่ยวข้องบางตัวอย่าง
ผู้มีอำนาจดูแลระบบ (SYSADM)
เป็นผู้มีอำนาจบริหารระดับสูงสุดในระดับอินสแตนซ์ ผู้ใช้ที่มีสิทธิ์ SYSADM สามารถเรียกใช้ฐานข้อมูลและคำสั่งตัวจัดการฐานข้อมูลภายในอินสแตนซ์ได้ ผู้ใช้ที่มีสิทธิ์ SYSADM สามารถดำเนินการดังต่อไปนี้:
- อัพเกรดฐานข้อมูล
- กู้คืนฐานข้อมูล
- อัปเดตไฟล์คอนฟิกูเรชันตัวจัดการฐานข้อมูล
ผู้มีอำนาจควบคุมระบบ (SYSCTRL)
เป็นระดับสูงสุดในผู้มีอำนาจควบคุมระบบ ให้ดำเนินการบำรุงรักษาและยูทิลิตี้กับอินสแตนซ์ตัวจัดการฐานข้อมูลและฐานข้อมูล การดำเนินการเหล่านี้อาจส่งผลกระทบต่อทรัพยากรระบบ แต่ไม่อนุญาตให้เข้าถึงข้อมูลโดยตรงในฐานข้อมูล
ผู้ใช้ที่มีสิทธิ SYSCTRL สามารถดำเนินการดังต่อไปนี้:
- การอัพเดตไดเร็กทอรีฐานข้อมูลโหนดหรือ Distributed Connect Service (DCS)
- บังคับให้ผู้ใช้ออกจากระดับระบบ
- การสร้างหรือการทิ้งระดับฐานข้อมูล
- การสร้างแก้ไขหรือวางพื้นที่ตาราง
- ใช้พื้นที่โต๊ะใดก็ได้
- การกู้คืนฐานข้อมูล
ผู้มีอำนาจในการบำรุงรักษาระบบ (SYSMAINT)
เป็นระดับที่สองของผู้มีอำนาจควบคุมระบบ ให้ดำเนินการบำรุงรักษาและยูทิลิตี้กับอินสแตนซ์ตัวจัดการฐานข้อมูลและฐานข้อมูล การดำเนินการเหล่านี้ส่งผลกระทบต่อทรัพยากรระบบโดยไม่อนุญาตให้เข้าถึงข้อมูลในฐานข้อมูลโดยตรง สิทธิ์นี้ออกแบบมาเพื่อให้ผู้ใช้ดูแลฐานข้อมูลภายในอินสแตนซ์ตัวจัดการฐานข้อมูลที่มีข้อมูลที่ละเอียดอ่อน
เฉพาะผู้ใช้ที่มี SYSMAINT หรือหน่วยงานระบบระดับสูงกว่าเท่านั้นที่สามารถทำงานต่อไปนี้
- กำลังสำรองข้อมูล
- การกู้คืนข้อมูลสำรอง
- หมุนไปข้างหน้าการกู้คืน
- การเริ่มต้นหรือการหยุดอินสแตนซ์
- คืนค่าช้อนโต๊ะ
- กำลังดำเนินการคำสั่ง db2trc
- การถ่ายสแน็ปช็อตการมอนิเตอร์ระบบในกรณีของผู้ใช้ระดับอินสแตนซ์หรือผู้ใช้ระดับฐานข้อมูล
ผู้ใช้ที่มี SYSMAINT สามารถทำงานต่อไปนี้:
- ค้นหาสถานะของพื้นที่ตาราง
- การอัปเดตไฟล์ประวัติบันทึก
- การจัดระเบียบตารางใหม่
- การใช้ RUNSTATS (สถิติแค็ตตาล็อกคอลเลคชัน)
ผู้มีอำนาจตรวจสอบระบบ (SYSMON)
ด้วยสิทธิ์นี้ผู้ใช้สามารถตรวจสอบหรือถ่ายภาพรวมของอินสแตนซ์ตัวจัดการฐานข้อมูลหรือฐานข้อมูลได้ สิทธิ์ SYSMON ช่วยให้ผู้ใช้สามารถรันงานต่อไปนี้:
- รับสวิตช์มอนิเตอร์ตัวจัดการฐานข้อมูล
- รับสวิตช์ MONITOR
- รับ SNAPSHOT
- รายการ
- แสดงรายการฐานข้อมูลที่ใช้งานอยู่
- รายการแอปพลิเคชัน
- แสดงรายชื่อกลุ่มฐานข้อมูลฐานข้อมูล
- แสดงรายการแอปพลิเคชัน DCS
- รายการแพ็คเกจ
- ตารางรายการ
- LIST ตารางคอนเทนเนอร์
- ตารางรายการ
- รายการยูทิลิตี้
- รีเซ็ต MONITOR
- อัปเดตสวิตช์มอนิเตอร์
เจ้าหน้าที่ฐานข้อมูล
สิทธิในฐานข้อมูลแต่ละรายการจะมี ID การอนุญาตเพื่อดำเนินการบางอย่างกับฐานข้อมูล หน่วยงานฐานข้อมูลเหล่านี้แตกต่างจากสิทธิพิเศษ นี่คือรายชื่อหน่วยงานฐานข้อมูลบางส่วน:
ACCESSCTRL: อนุญาตให้อนุญาตและเพิกถอนสิทธิ์ของอ็อบเจ็กต์และผู้มีอำนาจในฐานข้อมูลทั้งหมด
BINDADD: อนุญาตให้สร้างแพ็คเกจใหม่ในฐานข้อมูล
CONNECT: อนุญาตให้เชื่อมต่อกับฐานข้อมูล
CREATETAB: อนุญาตให้สร้างตารางใหม่ในฐานข้อมูล
CREATE_EXTERNAL_ROUTINE: อนุญาตให้สร้างโพรซีเดอร์ที่จะใช้โดยแอพพลิเคชั่นและผู้ใช้ฐานข้อมูล
DATAACCESS: อนุญาตให้เข้าถึงข้อมูลที่จัดเก็บในตารางฐานข้อมูล
DBADM: ทำหน้าที่เป็นผู้ดูแลระบบฐานข้อมูล มันให้หน่วยงานฐานข้อมูลอื่น ๆ ทั้งหมดยกเว้น ACCESSCTRL, DATAACCESS และ SECADM
EXPLAIN: อนุญาตให้อธิบายแผนการสืบค้นโดยไม่ต้องให้พวกเขาถือสิทธิ์ในการเข้าถึงข้อมูลในตาราง
IMPLICIT_SCHEMA: อนุญาตให้ผู้ใช้สร้างสคีมาโดยปริยายโดยการสร้างวัตถุโดยใช้คำสั่ง CREATE
LOAD: อนุญาตให้โหลดข้อมูลลงในตาราง
QUIESCE_CONNECT: อนุญาตให้เข้าถึงฐานข้อมูลในขณะที่อยู่ในโหมด quiesce (ปิดใช้งานชั่วคราว)
SECADM: อนุญาตให้ทำหน้าที่เป็นผู้ดูแลระบบความปลอดภัยสำหรับฐานข้อมูล
SQLADM: อนุญาตให้ตรวจสอบและปรับแต่งคำสั่ง SQL
WLMADM: อนุญาตให้ทำหน้าที่เป็นผู้ดูแลปริมาณงาน
สิทธิพิเศษ
SETSESSIONUSER
สิทธิ์ของ Authorization ID เกี่ยวข้องกับการดำเนินการกับ ID การอนุญาต มีสิทธิ์เดียวเรียกว่าสิทธิ์ SETSESSIONUSER สามารถมอบให้กับผู้ใช้หรือกลุ่มและอนุญาตให้เซสชันผู้ใช้เปลี่ยนข้อมูลประจำตัวเป็น ID การอนุญาตใด ๆ ที่ได้รับสิทธิ์ สิทธิ์นี้มอบให้โดยหน่วยงาน SECADM ของผู้ใช้
สิทธิ์ของสคีมา
สิทธิ์นี้เกี่ยวข้องกับการดำเนินการกับสคีมาในฐานข้อมูล เจ้าของสคีมามีสิทธิ์ทั้งหมดในการจัดการวัตถุสคีมาเช่นตารางมุมมองดัชนีแพ็คเกจชนิดข้อมูลฟังก์ชันทริกเกอร์โพรซีเดอร์และนามแฝง ผู้ใช้กลุ่มบทบาทหรือ PUBLIC สามารถให้สิทธิ์แก่ผู้ใช้ใด ๆ ต่อไปนี้:
- CREATEIN: อนุญาตให้สร้างวัตถุภายในสคีมา
- ALTERIN: อนุญาตให้แก้ไขวัตถุภายในสคีมา
DROPIN
สิ่งนี้อนุญาตให้ลบอ็อบเจ็กต์ภายในสคีมา
สิทธิ์ Tablespace
สิทธิ์เหล่านี้เกี่ยวข้องกับการดำเนินการบนพื้นที่ตารางในฐานข้อมูล ผู้ใช้สามารถได้รับสิทธิ์ USE สำหรับพื้นที่ตาราง สิทธิ์จากนั้นอนุญาตให้พวกเขาสร้างตารางภายในพื้นที่ตาราง เจ้าของสิทธิ์สามารถให้สิทธิ์ USE ด้วยคำสั่ง WITH GRANT OPTION บนพื้นที่ตารางเมื่อมีการสร้างพื้นที่ตาราง และหน่วยงาน SECADM หรือ ACCESSCTRL มีสิทธิ์ในการใช้สิทธิพิเศษบนพื้นที่ตาราง
ตารางและดูสิทธิพิเศษ
ผู้ใช้ต้องมีสิทธิ์ CONNECT บนฐานข้อมูลจึงจะสามารถใช้ตารางและสิทธิ์ดูได้ สิทธิพิเศษสำหรับตารางและมุมมองมีดังต่อไปนี้:
ควบคุม
ให้สิทธิ์ทั้งหมดสำหรับตารางหรือมุมมองรวมถึงการปล่อยและการให้สิทธิ์เพิกถอนสิทธิ์แต่ละตารางให้กับผู้ใช้
แก้ไข
อนุญาตให้ผู้ใช้แก้ไขตาราง
ลบ
ช่วยให้ผู้ใช้สามารถลบแถวจากตารางหรือมุมมอง
ดัชนี
ช่วยให้ผู้ใช้สามารถแทรกแถวลงในตารางหรือมุมมอง นอกจากนี้ยังสามารถเรียกใช้ยูทิลิตี้นำเข้า
ข้อมูลอ้างอิง
อนุญาตให้ผู้ใช้สร้างและวางคีย์ต่างประเทศ
เลือก
ช่วยให้ผู้ใช้ดึงข้อมูลแถวจากตารางหรือมุมมอง
อัปเดต
ช่วยให้ผู้ใช้สามารถเปลี่ยนรายการในตารางดู
สิทธิพิเศษของแพ็คเกจ
ผู้ใช้ต้องมีสิทธิ์ CONNECT กับฐานข้อมูล Package เป็นวัตถุฐานข้อมูลที่มีข้อมูลของตัวจัดการฐานข้อมูลเพื่อเข้าถึงข้อมูลด้วยวิธีที่มีประสิทธิภาพสูงสุดสำหรับแอปพลิเคชันเฉพาะ
ควบคุม
ช่วยให้ผู้ใช้มีสิทธิ์ในการ rebinding วางหรือเรียกใช้แพ็คเกจ ผู้ใช้ที่มีสิทธิ์นี้จะได้รับสิทธิ์ BIND และ EXECUTE
ผูก
อนุญาตให้ผู้ใช้ผูกหรือผูกแพ็กเกจนั้นใหม่
ดำเนินการ
อนุญาตให้เรียกใช้แพ็คเกจ
สิทธิ์ดัชนี
สิทธิ์นี้จะได้รับสิทธิ์ CONTROL บนดัชนีโดยอัตโนมัติ
สิทธิ์ตามลำดับ
ลำดับจะได้รับสิทธิ์ USAGE และ ALTER ในลำดับโดยอัตโนมัติ
สิทธิพิเศษประจำ
มันเกี่ยวข้องกับการดำเนินการของกิจวัตรเช่นฟังก์ชันขั้นตอนและวิธีการภายในฐานข้อมูล