บันทึกการตรวจสอบ SQL ใน Fabric คลังข้อมูล

นําไปใช้กับ:✅ จุดสิ้นสุดการวิเคราะห์ SQL และ Warehouse ใน Microsoft Fabric

การตรวจสอบใน Fabric คลังข้อมูล เพิ่มความปลอดภัยและความสามารถในการปฏิบัติตามกฎระเบียบโดยการติดตามและการบันทึกเหตุการณ์ฐานข้อมูล

ด้วยการใช้บันทึกการตรวจสอบ SQL คุณสามารถตรวจสอบกิจกรรมของฐานข้อมูล ตรวจจับภัยคุกคามด้านความปลอดภัยที่อาจเกิดขึ้น และปฏิบัติตามข้อกําหนดการปฏิบัติตามข้อกําหนดโดยเก็บบันทึกการตรวจสอบของการดําเนินการสําคัญ เช่น:

  • ความพยายามในการรับรองความถูกต้องและการเปลี่ยนแปลงการควบคุมการเข้าถึง
  • การเข้าถึงข้อมูลและการดําเนินการแก้ไข
  • การเปลี่ยนแปลงเค้าร่างและกิจกรรมการจัดการ
  • การเปลี่ยนแปลงสิทธิ์และการกําหนดค่าความปลอดภัย

Important

โดยค่าเริ่มต้น บันทึกการตรวจสอบ SQL จะปิดอยู่ ผู้ใช้ที่มีสิทธิ์การ สืบค้นการตรวจสอบต้อง เปิดใช้งานเพื่อบันทึกบันทึก

เมื่อต้องการเริ่มต้นใช้งาน ให้ตรวจสอบขั้นตอนใน วิธีกําหนดค่าบันทึกการตรวจสอบ SQL ใน Fabric คลังข้อมูล

Storage

บันทึกการตรวจสอบ SQL จะถูกเข้ารหัสเมื่อไม่ได้ใช้งานและจัดเก็บไว้ใน OneLake

สําหรับ Fabric คลังข้อมูล บันทึกการตรวจสอบจะถูกเขียนลงใน .XEL ไฟล์ที่จัดเก็บไว้ใน โฟลเดอร์การตรวจสอบ คลังสินค้าใน OneLake

ผู้ใช้ที่มี บทบาท ต่อไปนี้สามารถเข้าถึงโฟลเดอร์การตรวจสอบได้

  • ผู้ดูแลระบบพื้นที่ทํางาน
  • สมาชิกพื้นที่ทํางาน
  • ผู้สนับสนุนพื้นที่ทํางาน
  • โปรแกรมดูพื้นที่ทํางานที่มีสิทธิ์อ่านทั้งหมด

ผู้ใช้เหล่านี้สามารถ:

  • เรียกดูโฟลเดอร์การตรวจสอบ
  • ดู .XEL ไฟล์การตรวจสอบที่สร้างโดยการตรวจสอบ SQL
  • คัดลอกไฟล์สําหรับการวิเคราะห์แบบออฟไลน์
  • เปิดไฟล์ด้วยเครื่องมือเช่น SQL Server Management Studio (SSMS)

คุณยังสามารถสืบค้นบันทึกการตรวจสอบด้วย T-SQL ผ่าน sys.fn_get_audit_file_v2

สําหรับคําแนะนํา โปรดดู วิธีการกําหนดค่าบันทึกการตรวจสอบ SQL ใน Fabric คลังข้อมูล

Tip

การกําหนดค่าบันทึกการตรวจสอบใน Microsoft Fabric คลังข้อมูล สามารถเพิ่มค่าใช้จ่ายในการจัดเก็บข้อมูลได้ โดยขึ้นอยู่กับกลุ่มการดําเนินการและเหตุการณ์ที่บันทึกไว้ เปิดใช้งานเฉพาะเหตุการณ์ที่จําเป็นเพื่อหลีกเลี่ยงค่าใช้จ่ายที่เก็บข้อมูลที่ไม่จําเป็น

ผลการปฏิบัติงาน

ฟีเจอร์บันทึกการตรวจสอบ SQL ถูกปรับแต่งให้เหมาะสมกับความพร้อมใช้งานและประสิทธิภาพของฐานข้อมูลที่ถูกตรวจสอบ ในช่วงเวลาที่มีกิจกรรมสูงมากหรือโหลดเครือข่ายสูง คุณลักษณะการตรวจสอบอาจอนุญาตให้ธุรกรรมดําเนินการต่อโดยไม่ต้องบันทึกเหตุการณ์ทั้งหมดที่ทําเครื่องหมายไว้สําหรับการตรวจสอบ

Permissions

ผู้ใช้ต้องมีสิทธิ์ แบบสอบถามการตรวจสอบ (การตรวจสอบ) เพื่อกําหนดค่าและคิวรีบันทึกการตรวจสอบ

  • โดยค่าเริ่มต้น ผู้ดูแลระบบพื้นที่ทํางาน มีสิทธิ์การ สืบค้นการตรวจสอบ สําหรับรายการทั้งหมดในพื้นที่ทํางาน
  • ผู้ดูแลระบบสามารถให้สิทธิ์ การค้นหา การตรวจสอบรายการแก่ผู้ใช้อื่นผ่านกล่องโต้ตอบแชร์

ผู้ดูแลระบบ Workspace สามารถให้สิทธิ์การค้นหาการตรวจสอบแก่รายการโดยใช้ตัวเลือกเมนูแชร์ในพอร์ทัล Fabric หากต้องการตรวจสอบว่าผู้ใช้มีสิทธิ์การสืบค้นการตรวจสอบหรือไม่ ให้ตรวจสอบการตั้งค่าจัดการสิทธิ์

  1. ในรายการคลังสินค้าของคุณ ให้เลือกปุ่ม แชร์

    หรือในพอร์ทัล Fabric ในพื้นที่ทํางานของคุณ เลือก...เมนูบริบทสําหรับสินค้าคลังสินค้าของคุณ แล้วเลือก จัดการสิทธิ์

  2. ในบานหน้าต่าง Grant people access ให้สิทธิ์ผู้ใช้

    สกรีนช็อตแสดงตําแหน่งที่จะเลือกสิทธิ์ คิวรีการตรวจสอบ (การตรวจสอบ) บนเมนู แชร์รายการ

ค้นหาบันทึกการตรวจสอบโดยใช้สิทธิ์ T-SQL

ให้สิทธิ์ผู้ใช้เพื่อให้สามารถ VIEW DATABASE SECURITY AUDIT สืบค้นบันทึกการตรวจสอบโดยใช้สิทธิ์ T-SQL แม้ว่าจะไม่มีบทบาทผู้ดูแลระบบในพื้นที่ทํางานก็ตาม

เมื่อคุณให้สิทธิ์ดังต่อไปนี้ ผู้ใช้สามารถสืบค้นบันทึกการตรวจสอบโดยใช้ฟังก์ชันนี้ sys.fn_get_audit_file_v2 :

GRANT VIEW DATABASE SECURITY AUDIT TO [user];

Tip

สิทธิ์นี้ VIEW DATABASE SECURITY AUDIT ให้สิทธิ์เฉพาะในการสืบค้นบันทึกการตรวจสอบเท่านั้น มันไม่ให้สิทธิ์เข้าถึงไฟล์หรือสิทธิ์ในการแก้ไขการกําหนดค่าการตรวจสอบ

กลุ่มและการดําเนินการตรวจสอบระดับฐานข้อมูล

เพื่อให้การกําหนดค่าบันทึกการตรวจสอบสามารถเข้าถึงได้มากขึ้น พอร์ทัล Fabric ใช้ชื่อที่จําง่ายเพื่อช่วยให้ผู้ดูแลระบบที่ไม่ใช่ SQL และผู้ใช้รายอื่นเข้าใจเหตุการณ์ Fabric คลังข้อมูล ที่บันทึกได้อย่างง่ายดาย

Fabric แมปชื่อที่จําง่ายเหล่านี้กับกลุ่มการดําเนินการ SQL Audit พื้นฐาน ใช้ตารางต่อไปนี้เป็นข้อมูลอ้างอิง

ชื่อที่เรียกง่าย ชื่อกลุ่มการดําเนินการ Description
วัตถุถูกเข้าถึง DATABASE_OBJECT_ACCESS_GROUP บันทึกการเข้าถึงวัตถุในฐานข้อมูล เช่น ชนิดข้อความ แอสเซมบลี หรือสัญญา
วัตถุถูกเปลี่ยน DATABASE_OBJECT_CHANGE_GROUP บันทึก CREATE, ALTER, หรือ การดําเนินการ DROP กับวัตถุฐานข้อมูล
เจ้าของวัตถุเปลี่ยนไป DATABASE_OBJECT_OWNERSHIP_CHANGE_GROUP บันทึกการเปลี่ยนแปลงความเป็นเจ้าของของวัตถุฐานข้อมูล
การอนุญาตวัตถุถูกเปลี่ยนไป DATABASE_OBJECT_PERMISSION_CHANGE_GROUP บันทึก GRANT, REVOKEหรือ DENY การดําเนินการบนวัตถุฐานข้อมูล
ผู้ใช้ถูกเปลี่ยน DATABASE_PRINCIPAL_CHANGE_GROUP การสร้างรายการบันทึก การเปลี่ยนแปลง หรือการลบฐานข้อมูลหลัก (ผู้ใช้ บทบาท)
ผู้ใช้ถูกแอบอ้างเป็น DATABASE_PRINCIPAL_IMPERSONATION_GROUP ไฟล์บันทึกการดําเนินการเลียนแบบ (เช่น EXECUTE AS)
สมาชิกบทบาทถูกเปลี่ยน DATABASE_ROLE_MEMBER_CHANGE_GROUP ล็อกการเพิ่มหรือการเอาล็อกอินออกจากบทบาทฐานข้อมูล
ผู้ใช้เข้าสู่ระบบไม่สําเร็จ FAILED_DATABASE_AUTHENTICATION_GROUP รายการบันทึกความพยายามในการรับรองความถูกต้องภายในฐานข้อมูลล้มเหลว
มีการใช้สิทธิ์ Schema SCHEMA_OBJECT_ACCESS_GROUP บันทึกการเข้าถึงวัตถุ Schema
Schema มีการเปลี่ยนแปลง SCHEMA_OBJECT_CHANGE_GROUP บันทึก CREATE, ALTERหรือการดําเนินการ DROP บน Schema
ตรวจสอบสิทธิ์ของออบเจ็กต์ Schema แล้ว SCHEMA_OBJECT_OWNERSHIP_CHANGE_GROUP บันทึกการเปลี่ยนแปลงการเป็นเจ้าของวัตถุของ Schema
มีสิทธิ์ของวัตถุ Schema มีการเปลี่ยนแปลง SCHEMA_OBJECT_PERMISSION_CHANGE_GROUP บันทึก GRANT, REVOKEหรือ DENY การดําเนินการบนวัตถุ Schema
แบทช์เสร็จสมบูรณ์ BATCH_COMPLETED_GROUP เหตุการณ์นี้เกิดขึ้นเมื่อใดก็ตามที่ข้อความชุดงาน กระบวนงานที่เก็บไว้ หรือการดําเนินการการจัดการธุรกรรมเสร็จสิ้น
เริ่มชุดงาน BATCH_STARTED_GROUP เหตุการณ์นี้เกิดขึ้นเมื่อใดก็ตามที่ข้อความชุดงาน กระบวนงานที่เก็บไว้ หรือการดําเนินการการจัดการธุรกรรมเริ่มดําเนินการ
การตรวจสอบมีการเปลี่ยนแปลง AUDIT_CHANGE_GROUP เหตุการณ์นี้เกิดขึ้นเมื่อใดก็ตามที่มีการสร้าง แก้ไข หรือลบการตรวจสอบใดๆ
ผู้ใช้ออกจากระบบ DATABASE_LOGOUT_GROUP เหตุการณ์นี้เกิดขึ้นเมื่อผู้ใช้ฐานข้อมูลลงชื่อออกจากฐานข้อมูล
ผู้ใช้เข้าสู่ระบบ SUCCESSFUL_DATABASE_AUTHENTICATION_GROUP ระบุว่า หลักการเข้าสู่ระบบฐานข้อมูลสําเร็จ

การดําเนินการตรวจสอบระดับฐานข้อมูล

นอกจากกลุ่มการดําเนินการแล้ว คุณสามารถกําหนดค่าการดําเนินการตรวจสอบแต่ละรายการเพื่อบันทึกเหตุการณ์ฐานข้อมูลที่เฉพาะเจาะจงได้:

การดําเนินการตรวจสอบ Description
SELECT ล็อกคําสั่ง SELECT บนออบเจ็กต์ที่ระบุ
INSERT บันทึก INSERT การดําเนินการบนวัตถุที่ระบุ
UPDATE บันทึก UPDATE การดําเนินการบนวัตถุที่ระบุ
DELETE บันทึก DELETE การดําเนินการบนวัตถุที่ระบุ
EXECUTE การดําเนินการบันทึกของขั้นตอนหรือฟังก์ชันที่จัดเก็บไว้
RECEIVE บันทึกการดําเนินการ RECEIVE ในคิวของตัวกลางบริการ
REFERENCES บันทึกการตรวจสอบสิทธิ์ที่เกี่ยวข้องกับข้อจํากัดของคีย์นอก

ลดเสียงรบกวนในการตรวจสอบด้วยการกรองข้อมูลพรีดิเคต

หากต้องการกรองเหตุการณ์ที่ถูกบันทึก ให้ใช้ตัวกรอง นิพจน์พจน์เสริม (optional predicate expression)

ใช้การกรองพรีดิเคตเพื่อลดเสียงรบกวนจากกิจกรรมที่คาดหวังและซ้ําซาก เช่น ตัวตนอัตโนมัติ หลักการบริการ หรืองานที่ตั้งเวลาไว้ โดยไม่ต้องปิดกลุ่มการดําเนินการที่องค์กรของคุณต้องการเพื่อวัตถุประสงค์ด้านการปฏิบัติตามหรือการตรวจสอบ

  • เฉพาะเมื่อเหตุการณ์ตรงกับเงื่อนไขที่กําหนดไว้เท่านั้น เหตุการณ์บันทึกการตรวจสอบ SQL สําหรับการดําเนินการนั้นจะถูกสร้างขึ้น
    • การกรองเกิดขึ้นก่อนที่เหตุการณ์จะถูกเขียน ดังนั้นเหตุการณ์ที่ถูกตัดออกจะไม่สามารถตรวจสอบย้อนหลังได้ในภายหลัง ปฏิบัติต่อการยกเว้นเงื่อนไขเป็นการตัดสินใจนโยบายการตรวจสอบโดยเจตนา และตรวจสอบเงื่อนไขที่ตั้งค่าไว้เป็นระยะเมื่อโปรไฟล์ความเป็นเจ้าของ สิทธิ์ และความเสี่ยงเปลี่ยนแปลง
  • การกรอง Predicate จะประเมินเฉพาะเหตุการณ์ที่ถูกตั้งค่าให้ถูกจับโดย กลุ่มการดําเนินการหรือการดําเนินการตรวจสอบที่เปิดใช้งานอยู่แล้ว
    • หากกลุ่มการกระทําพื้นฐานไม่ได้เปิดใช้งาน จะไม่มีเหตุการณ์ถูกสร้างขึ้นเพื่อให้พรีดิเคตประเมินผล และตัวกรองจะไม่มีผล ตัวอย่างเช่น หากต้องการกรอง SELECT คําสั่งโดยใช้เงื่อนไขใน statement ฟิลด์ คุณต้องเปิดใช้งานกลุ่มการดําเนินการ Batch Was Completed (BATCH_COMPLETED_GROUP) ก่อน

คุณสามารถกําหนดค่านิพจน์พรีดิเคตได้โดยใช้พอร์ทัล Fabric หรือ REST API สําหรับขั้นตอน ดูที่ กําหนดค่านิพจน์พรีดิเคต

ไวยากรณ์ของนิพจน์นิพจน์

นิพจน์ predicate ใช้ไวยากรณ์เดียวกับ <predicate_expression> ใน CREATE SERVER AUDIT (Transact-SQL) โดยไม่มี WHERE คีย์เวิร์ด:

<predicate_expression> ::=
    { [ NOT ] <predicate_factor>
    [ { AND | OR } [ NOT ] { <predicate_factor> } ] [ ,... n ] }

<predicate_factor> ::=
    event_field_name { = | <> | != | > | >= | < | <= | LIKE }
    { number | 'string' }
  • event_field_nameสอดคล้องกับคอลัมน์ที่ส่งคืนโดย sys.fn_get_audit_file (Transact-SQL) คุณสามารถใช้คอลัมน์ที่มีเอกสารทั้งหมด ยกเว้น file_name, audit_file_offset, และ event_time.
  • action_id และ class_type เป็นสตริง แต่คุณสามารถเปรียบเทียบกับค่าตัวเลขในพรีดิเคตได้เท่านั้น
  • การเปรียบเทียบสตริงไม่ได้ทําการแปลงประเภทโดยนัย
  • ความยาวสูงสุดของนิพจน์คือ 3,000 ตัวอักษร
  • สตริงว่างหมายความว่าไม่มีการใช้พรีดิเคต

ตัวอย่างเช่น หากต้องการยกเว้นกิจกรรมที่เกิดจากผู้ให้บริการหลักที่รู้จักหรืออัตลักษณ์ระบบอัตโนมัติ ให้กรองบนserver_principal_name หากต้องการยกเว้น SELECT คําสั่งซ้ํา ให้กรองใน statement ช่อง: NOT statement LIKE 'SELECT %'.

Limitations

  • พื้นที่ทํางานเริ่มต้นของคุณไม่สนับสนุนบันทึกการตรวจสอบ SQL
  • บันทึกการตรวจสอบ SQL ไม่ได้รับการสนับสนุนสําหรับสแนปช็อตคลังสินค้า

Important

บันทึกการตรวจสอบจะถูกเก็บไว้ภายในรายการคลังสินค้าใน OneLake ถ้าคุณลบคลังสินค้า คุณจะลบไฟล์บันทึกการตรวจสอบที่เกี่ยวข้องด้วย และไม่สามารถเข้าถึงไฟล์เหล่านั้นได้อีกต่อไป
หากต้องการเก็บบันทึกการตรวจสอบเพื่อวัตถุประสงค์ในการปฏิบัติตามข้อกําหนดหรือการตรวจสอบ ให้คัดลอก .XEL ไฟล์ไปยังตําแหน่งที่เก็บข้อมูลอื่นก่อนที่จะลบคลังสินค้า

ข้อจํากัดปลายทางของการวิเคราะห์ SQL

ข้อจํากัดต่อไปนี้ใช้เมื่อตรวจสอบตําแหน่งข้อมูลการวิเคราะห์ SQL:

  • การดําเนินการ DML จะไม่ถูกบันทึก การตรวจสอบจะไม่บันทึกการดําเนินการ เช่น INSERT, UPDATE, และDELETEMERGEเนื่องจากการจัดการข้อมูลสําหรับตาราง Lakehouse เกิดขึ้นผ่านรันไทม์ Lakehouse แทนที่จะผ่านจุดสิ้นสุดการวิเคราะห์ SQL
  • การเข้าถึงโดยตรงไปยังโฟลเดอร์การตรวจสอบยังไม่ได้รับการสนับสนุนในขณะนี้ ผู้ใช้ไม่สามารถเรียกดูหรือดาวน์โหลดไฟล์การตรวจสอบพื้นฐาน .XEL จากโฟลเดอร์การตรวจสอบ Lakehouse

คุณยังสามารถสืบค้นเหตุการณ์การตรวจสอบสําหรับปลายทาง SQL analytics ได้โดยใช้ฟังก์ชัน sys.fn_get_audit_file_v2T-SQL

ขั้นตอนถัดไป