หมายเหตุ
การเข้าถึงหน้านี้ต้องได้รับการอนุญาต คุณสามารถลอง ลงชื่อเข้าใช้หรือเปลี่ยนไดเรกทอรีได้
การเข้าถึงหน้านี้ต้องได้รับการอนุญาต คุณสามารถลองเปลี่ยนไดเรกทอรีได้
นําไปใช้กับ:✅ จุดสิ้นสุดการวิเคราะห์ 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 หากต้องการตรวจสอบว่าผู้ใช้มีสิทธิ์การสืบค้นการตรวจสอบหรือไม่ ให้ตรวจสอบการตั้งค่าจัดการสิทธิ์
ในรายการคลังสินค้าของคุณ ให้เลือกปุ่ม แชร์
หรือในพอร์ทัล Fabric ในพื้นที่ทํางานของคุณ เลือก
...เมนูบริบทสําหรับสินค้าคลังสินค้าของคุณ แล้วเลือก จัดการสิทธิ์ในบานหน้าต่าง 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
ขั้นตอนถัดไป
กําหนดค่าบันทึกการตรวจสอบ SQL ใน Fabric คลังข้อมูล