หมายเหตุ
การเข้าถึงหน้านี้ต้องได้รับการอนุญาต คุณสามารถลอง ลงชื่อเข้าใช้หรือเปลี่ยนไดเรกทอรีได้
การเข้าถึงหน้านี้ต้องได้รับการอนุญาต คุณสามารถลองเปลี่ยนไดเรกทอรีได้
นําไปใช้กับ:✅ฐานข้อมูล SQL ใน Microsoft Fabric
การตรวจสอบฐานข้อมูล SQL ใน Fabric เป็นคุณลักษณะด้านความปลอดภัยและการปฏิบัติตามข้อกําหนดที่สําคัญที่ช่วยให้องค์กรสามารถติดตามและบันทึกกิจกรรมฐานข้อมูลได้ การตรวจสอบสนับสนุนการปฏิบัติตามข้อกําหนด การตรวจจับภัยคุกคาม และการสืบสวนทางนิติวิทยาศาสตร์ โดยช่วยตอบคําถาม เช่น ใครเข้าถึงข้อมูลใด เมื่อใด และอย่างไร
การตรวจสอบ SQL คืออะไร?
การตรวจสอบ SQL หมายถึงกระบวนการจับภาพและจัดเก็บเหตุการณ์ที่เกี่ยวข้องกับกิจกรรมฐานข้อมูล เหตุการณ์เหล่านี้รวมถึงการเข้าถึงข้อมูล การเปลี่ยนแปลงสคีมา การแก้ไขสิทธิ์ และความพยายามในการรับรองความถูกต้อง
ใน Fabric การตรวจสอบจะทํางานในระดับฐานข้อมูลและสนับสนุน:
- การตรวจสอบการปฏิบัติตามข้อกําหนด (เช่น HIPAA, SOX)
- การตรวจสอบความปลอดภัย
- ข้อมูลเชิงลึกด้านการดําเนินงาน
เป้าหมายการตรวจสอบ
บันทึกการตรวจสอบจะถูกเขียนลงในโฟลเดอร์แบบอ่านอย่างเดียวใน OneLake และสามารถคิวรีได้โดยใช้ sys.fn_get_audit_file_v2 ฟังก์ชัน T-SQL หรือ OneLake Explorer
สําหรับฐานข้อมูล SQL ใน Fabric บันทึกการตรวจสอบจะถูกเก็บไว้ใน OneLake: https://onelake.blob.fabric.microsoft.com/{workspace_id}/{artifact_id}/Audit/sqldbauditlogs/
บันทึกเหล่านี้ไม่สามารถเปลี่ยนแปลงได้และเข้าถึงได้โดยผู้ใช้ที่มีสิทธิ์ที่เหมาะสม นอกจากนี้ยังสามารถดาวน์โหลดบันทึกโดยใช้ OneLake Explorer หรือ Azure Storage Explorer
เรียก เก็บ เงิน
ปัจจุบัน การเขียนบันทึกการตรวจสอบไปยัง Fabric OneLake ไม่มีค่าใช้จ่ายเพิ่มเติม และที่เก็บข้อมูลจะรวมอยู่ในขีดจํากัดที่เก็บข้อมูล OneLake ของความจุ
ตัวเลือกการกําหนดค่า
ตามค่าเริ่มต้น ตัวเลือก ตรวจสอบทุกอย่าง จะบันทึกเหตุการณ์ทั้งหมด รวมถึงการทําให้แบตช์เสร็จสมบูรณ์และการรับรองความถูกต้องที่สําเร็จและล้มเหลว
หากต้องการเลือกมากขึ้น ให้เลือกจากสถานการณ์การตรวจสอบที่กําหนดค่าไว้ล่วงหน้า เช่น การเปลี่ยนแปลงสิทธิ์ & ความพยายามในการเข้าสู่ระบบ การอ่านและเขียนข้อมูล และ/หรือการเปลี่ยนแปลง Schema
สถานการณ์ที่กําหนดค่าไว้ล่วงหน้าแต่ละสถานการณ์จะแมปกับกลุ่มการดําเนินการตรวจสอบที่เฉพาะเจาะจง (ตัวอย่างเช่น SCHEMA_OBJECT_ACCESS_GROUP, , ) DATABASE_PRINCIPAL_CHANGE_GROUP คุณยังสามารถเลือกเหตุการณ์ที่จะตรวจสอบได้ภายใต้เหตุการณ์ที่กําหนดเอง คุณสามารถเลือกกลุ่มการดําเนินการแต่ละกลุ่มเพื่อปรับแต่งการตรวจสอบตามความต้องการของคุณ ตัวเลือกนี้เหมาะสําหรับองค์กรที่มีนโยบายการรักษาความปลอดภัยภายในที่เข้มงวด
หากต้องการกรองคิวรีการเข้าถึงทั่วไปหรือที่รู้จัก คุณสามารถระบุนิพจน์เพรดิเคตใน Transact-SQL (T-SQL) เพื่อกรองเหตุการณ์การตรวจสอบตามเงื่อนไข (ตัวอย่างเช่น เพื่อยกเว้นคําสั่ง SELECT): WHERE statement NOT LIKE '%select%'
การอนุญาต
เมื่อต้องการจัดการการตรวจสอบโดยใช้บทบาทพื้นที่ทํางาน Fabric (แนะนํา) คุณต้องมีสมาชิกในบทบาท ผู้สนับสนุน พื้นที่ทํางาน Fabric หรือสิทธิ์ที่สูงกว่า
วิธีจัดการการตรวจสอบด้วยสิทธิ์ SQL
- เมื่อต้องการกําหนดค่าการตรวจสอบฐานข้อมูล คุณต้องมีสิทธิ์ ALTER ANY DATABASE AUDIT
- เมื่อต้องการดูบันทึกการตรวจสอบโดยใช้ T-SQL คุณต้องมีสิทธิ์ VIEW DATABASE SECURITY AUDIT
Retention
โดยค่าเริ่มต้น ระบบจะเก็บข้อมูลการตรวจสอบไว้อย่างไม่มีกําหนด เว้นแต่คุณจะกําหนดค่าระยะเวลาการเก็บรักษาที่กําหนดเองเพื่อลบบันทึกโดยอัตโนมัติหลังจากระยะเวลานี้
ปัจจุบัน Fabric จัดเก็บบันทึกการตรวจสอบในโฟลเดอร์ของรายการใน OneLake และกําหนดขอบเขตตามวงจรชีวิตของรายการ หากคุณลบรายการ Fabric จะลบบันทึกการตรวจสอบด้วย หากคุณต้องการการเก็บรักษาโดยไม่ขึ้นกับวงจรชีวิตของรายการ ให้ย้ายบันทึกการตรวจสอบไปยังตําแหน่งที่เก็บข้อมูลแยกต่างหาก (ตัวอย่างเช่น Lakehouse อื่นหรือบัญชี Azure Storage) โดยใช้เครื่องมือ เช่น AzCopy หรือ SSD
การเก็บรักษาการตั้งค่าหลังจากการกู้คืน
หลังจากการดําเนินการคืนค่า การตั้งค่าการตรวจสอบจะถูกเก็บไว้ แต่ต้องเปิดใช้งานการตรวจสอบอีกครั้งในฐานข้อมูล Fabric SQL ในพอร์ทัล Fabric ให้เปิด จัดการการตรวจสอบ SQL เลือก บันทึก
กําหนดค่าการตรวจสอบสําหรับฐานข้อมูล SQL จากพอร์ทัล Fabric
ในการเริ่มต้นการตรวจสอบฐานข้อมูล Fabric SQL:
- นําทางไปยังและเปิดฐานข้อมูล SQL ของคุณในพอร์ทัล Fabric
- จากเมนูหลัก ให้เลือกแท็บ ความปลอดภัย จากนั้นเลือก จัดการการตรวจสอบ SQL
- บานหน้าต่าง จัดการการตรวจสอบ SQL จะเปิดขึ้น
- เลือกปุ่ม บันทึกเหตุการณ์ไปยังบันทึกการตรวจสอบ SQL เพื่อเปิดใช้งานการตรวจสอบ
- กําหนดค่าเหตุการณ์ที่จะบันทึกในส่วนเหตุการณ์ฐานข้อมูล เลือก ตรวจสอบทุกอย่าง (ค่าเริ่มต้น) เพื่อบันทึกเหตุการณ์ทั้งหมด
- หรือกําหนดค่านโยบายการเก็บรักษาในส่วนการเก็บรักษา
- หรือกําหนดค่านิพจน์เพรดิเคตของคําสั่ง T-SQL เพื่อละเว้นในฟิลด์นิพจน์เพรดิเคต
- เลือก บันทึก
บันทึกการตรวจสอบคิวรี
บันทึกการตรวจสอบสามารถสืบค้นได้โดยใช้ฟังก์ชัน T-SQL sys.fn_get_audit_file และ sys.fn_get_audit_file_v2
ในสคริปต์ต่อไปนี้ คุณต้องระบุรหัสพื้นที่ทํางานและรหัสฐานข้อมูล ทั้งสองสามารถพบได้ใน URL จากพอร์ทัล Fabric ตัวอย่างเช่น: https://fabric.microsoft.com/groups/<fabric workspace id>/sqldatabases/<fabric sql database id> สตริงตัวระบุที่ไม่ซ้ํากันแรกใน URL คือ ID พื้นที่ทํางาน Fabric และสตริงตัวระบุที่ไม่ซ้ํากันที่สองคือ ID ฐานข้อมูล SQL
- แทนที่
<fabric_workspace_id>ด้วยรหัสพื้นที่ทํางาน Fabric ของคุณ คุณสามารถ ค้นหา ID ของพื้นที่ทํางาน ได้ใน URL ซึ่งเป็นสตริงที่ไม่ซ้ํากันภายในอักขระสอง/ตัวหลังจาก/groups/ในหน้าต่างเบราว์เซอร์ของคุณ - แทนที่
<fabric sql database id>ด้วยฐานข้อมูล SQL ของคุณในรหัสฐานข้อมูล Fabric คุณสามารถค้นหา ID ของรายการฐานข้อมูลได้ใน URL ซึ่งเป็นสตริงที่ไม่ซ้ํากันภายในอักขระสอง/ตัวหลังจาก/sqldatabases/ในหน้าต่างเบราว์เซอร์ของคุณ
เช่น:
SELECT * FROM sys.fn_get_audit_file_v2(
'https://onelake.blob.fabric.microsoft.com/<fabric workspace id>/<fabric sql database id>/Audit/sqldbauditlogs/',
DEFAULT, DEFAULT, DEFAULT, DEFAULT );
ตัวอย่างนี้ดึงข้อมูลบันทึกการตรวจสอบระหว่าง 2025-11-17T08:40:40Z และ2025-11-17T09:10:40Z
SELECT *
FROM sys.fn_get_audit_file_v2(
'https://onelake.blob.fabric.microsoft.com/<fabric workspace id>/<fabric sql database id>/Audit/sqldbauditlogs/',
DEFAULT,
DEFAULT,
'2025-11-17T08:40:40Z',
'2025-11-17T09:10:40Z')
สําหรับข้อมูลเพิ่มเติม โปรดดู sys.fn_get_audit_file และ sys.fn_get_audit_file_v2
จัดการการตรวจสอบด้วย REST API
คุณยังสามารถดูและกําหนดค่าการตั้งค่าการตรวจสอบฐานข้อมูล SQL โดยทางโปรแกรมโดยใช้ Fabric REST API REST API ช่วยให้คุณสามารถจัดการการตรวจสอบได้อย่างสอดคล้องกันในฐานข้อมูลทั้งหมดในพื้นที่ทํางานโดยใช้สคริปต์ PowerShell
สําหรับข้อมูลเพิ่มเติม โปรดดู จัดการการตรวจสอบฐานข้อมูล SQL ด้วย REST API
ปกป้องข้อมูลสําคัญในบันทึกการตรวจสอบ
เมื่อคุณสร้าง SQL แบบไดนามิกโดยการต่อค่าที่ป้อนเข้าโดยตรงลงในคําสั่ง SQL ค่าเหล่านั้นจะกลายเป็นส่วนหนึ่งของข้อความคําสั่ง หากคุณตรวจสอบคําสั่ง บันทึกการตรวจสอบอาจบันทึกข้อมูลที่ละเอียดอ่อนซึ่งรวมอยู่ในข้อความคําสั่ง
เพื่อช่วยลดความเสี่ยงในการเปิดเผยข้อมูลที่ละเอียดอ่อน ให้ปฏิบัติตามแนวทางดังต่อไปนี้:
หลีกเลี่ยง SQL แบบไดนามิกสําหรับการดําเนินการที่มีค่าที่ละเอียดอ่อน
สําหรับการดําเนินการบริหารที่มีความละเอียดอ่อนต่อความปลอดภัย ควรหลีกเลี่ยงการสร้างคําสั่งโดยการต่อค่าที่ละเอียดอ่อนเข้าด้วยกันใน SQL แบบไดนามิก หากเป็นไปได้ ให้ใช้คําสั่ง SQL แบบเนทีฟหรือวิธีการอื่น ๆ ที่ป้องกันไม่ให้ค่าที่ละเอียดอ่อนถูกฝังโดยตรงในข้อความของคําสั่ง
คําสั่ง SQL แบบไดนามิกที่สร้างขึ้นจากสตริงที่ผู้ใช้เข้าถึงได้ยังทําให้แอปพลิเคชันของคุณเสี่ยงต่อการโจมตีแบบ SQL injection การฉีด SQL เป็นการโจมตีที่แทรกโค้ดอันตรายลงในสตริง ซึ่งต่อมาจะถูกส่งต่อไปยังฐานข้อมูลเพื่อวิเคราะห์และดําเนินการ คุณต้องทดสอบขั้นตอนใด ๆ ที่สร้างช่องโหว่ T-SQL สําหรับการฉีด SQL เพราะเอนจินฐานข้อมูลจะรันคําสั่งที่ถูกต้องทางไวยากรณ์ทั้งหมดที่ได้รับ ใช้พารามิเตอร์สําหรับค่าข้อมูล และอย่าต่อค่าพารามิเตอร์เข้าไปในข้อความค้นหา ค่าที่มีพารามิเตอร์ถูกต้องจะถูกมองว่าเป็นข้อมูล ไม่ใช่ไวยากรณ์ SQL ที่สามารถรันได้
จํากัดการเข้าถึงบันทึกการตรวจสอบ
จํากัดการเข้าถึงบันทึกการตรวจสอบเฉพาะผู้ใช้ที่ได้รับอนุญาตและผู้ดูแลระบบเท่านั้น ภายใน SQL กลไกจัดการฐานข้อมูล สิทธิ์ SQL จะควบคุมการเข้าถึงการตรวจสอบภายใน SQL กลไกจัดการฐานข้อมูล และอาจแตกต่างกันไปตามแพลตฟอร์มและขอบเขตการตรวจสอบ ปฏิบัติตามหลักสิทธิ์ขั้นต่ําและให้สิทธิ์เฉพาะที่จําเป็นสําหรับการจัดการหรือตรวจสอบข้อมูลการตรวจสอบ มีโมเดลสิทธิ์การตรวจสอบระดับเซิร์ฟเวอร์และระดับฐานข้อมูลแยกกัน และ Azure SQL Database แตกต่างจาก SQL Server ในเรื่องความพร้อมใช้งานของสิทธิ์ระดับเซิร์ฟเวอร์ การจํากัดการเข้าถึงข้อมูลการตรวจสอบช่วยลดความเสี่ยงของการเปิดเผยข้อมูลโดยไม่ได้รับอนุญาตเมื่อมีข้อมูลสําคัญในเหตุการณ์ตรวจสอบที่บันทึกไว้
การเข้าถึงบันทึกการตรวจสอบนอก SQL กลไกจัดการฐานข้อมูล ขึ้นอยู่กับสิทธิ์ในปลายทางที่กําหนดค่าไว้ (เช่น OneLake) ปฏิบัติตามหลักสิทธิ์ขั้นต่ําและให้สิทธิ์เฉพาะที่จําเป็นสําหรับการจัดการหรือตรวจสอบข้อมูลการตรวจสอบ