# Databricks เปิดใช้ ABAC ข้ามเอนจิน คุมสิทธิ์ข้อมูลแม้อ่านจาก Spark ภายนอก

> Databricks ประกาศให้ Cross-engine ABAC พร้อมใช้งานทั่วไปเมื่อ 1 ตุลาคม 2026 นโยบายกรองแถวและปิดบังคอลัมน์ใน Unity Catalog มีผลแม้ผู้ใช้อ่านตารางจาก Apache Spark นอก Databricks

- ประเภท: ข่าว · หมวด: Data & Analytics
- เผยแพร่: 2026-10-06T10:40:00.000Z · อัปเดต: 2026-10-06T10:40:00.000Z
- โดย: กองบรรณาธิการ THAI DATA, THAI DATA IT BUSINESS ENTERPRISE
- ที่มา: https://thaidata.co.th/data/databricks-cross-engine-abac-ga-unity-catalog/

## สรุปประเด็นสำคัญ

- Databricks ประกาศให้ **Cross-engine ABAC** พร้อมใช้งานทั่วไป (GA) เมื่อ **1 ตุลาคม 2026** หลังเปิดทดลองแบบ Beta ตั้งแต่ 2 มิถุนายน
- เอนจินภายนอกอ่านตาราง managed ใน **Unity Catalog** ได้ โดยนโยบาย ABAC, row filter และ column mask ยังมีผล ผ่าน serverless compute ของ Databricks
- กลไกนี้ใช้ **Iceberg REST Catalog scan API** แคตตาล็อกจะคืนเฉพาะไฟล์ที่ผู้ใช้มีสิทธิ์เห็น เอนจินไม่ต้องเข้าใจนโยบายเอง
- ไคลเอนต์ที่เอกสารระบุคือ **Apache Spark** ผ่านตัวเชื่อม Delta-Spark 4.1 ขึ้นไป หรือ Iceberg-Spark 1.11 ขึ้นไป
- ข้อจำกัดหลักคือ **อ่านได้อย่างเดียว** ไม่รองรับ dynamic view และมี **ค่า serverless compute** ทุกครั้งที่บังคับใช้นโยบาย

Databricks ประกาศในบันทึกการเปลี่ยนแปลงประจำเดือนตุลาคม 2026 ว่า Cross-engine attribute-based access controls (ABAC) พร้อมใช้งานทั่วไปแล้วตั้งแต่วันที่ 1 ตุลาคม 2026 เอนจินประมวลผลภายนอกที่รองรับจะอ่านตาราง managed ใน Unity Catalog ได้ โดยนโยบาย ABAC การกรองแถว (row filter) และการปิดบังคอลัมน์ (column mask) ยังมีผลครบ Databricks ใช้ serverless compute ของตัวเองเป็นตัวบังคับใช้นโยบาย

ฟีเจอร์นี้ปิดช่องว่างที่ทีมดูแลข้อมูลเจอมานาน ข้อมูลในรูปแบบเปิดอย่าง Delta Lake และ Apache Iceberg ทำให้หลายเอนจินอ่านไฟล์ชุดเดียวกันได้ แต่กฎความปลอดภัยระดับแถวและคอลัมน์มักผูกอยู่กับเอนจินตัวใดตัวหนึ่ง เมื่อทีมอื่นอ่านข้อมูลจากนอกระบบ กฎเหล่านั้นก็ไม่ตามไปด้วย

![บันทึกการเปลี่ยนแปลงของ Databricks ประกาศ Cross-engine ABAC พร้อมใช้งานทั่วไป 1 ตุลาคม 2026](https://thaidata.co.th/images/articles/databricks-cross-engine-abac-ga-unity-catalog/databricks-cross-engine-abac-ga-release-note.webp?v=1703f0db) _(ภาพ: Databricks (ภาพหน้าจอเอกสาร))_

## ปัญหาที่ Cross-engine ABAC แก้

Databricks อธิบายในบล็อกที่เปิดตัวรุ่น Beta เมื่อ 2 มิถุนายน 2026 ว่าทีมความปลอดภัยเคยมีทางเลือกเพียงสามทาง ทางแรกคือคัดลอกนโยบายไปตั้งในทุกเอนจินแล้วหวังว่าจะตรงกันเสมอ ทางที่สองคือทำสำเนาตารางแยกให้ผู้ใช้แต่ละกลุ่ม และทางที่สามคือให้สิทธิ์กว้างกว่าที่ควรแล้วยอมรับความเสี่ยง ทั้งสามทางเพิ่มงานดูแลหรือเพิ่มความเสี่ยงข้อมูลรั่ว

Cross-engine ABAC ให้องค์กรกำหนดนโยบายครั้งเดียวใน Unity Catalog เช่น กฎที่ใช้แท็กระบุคอลัมน์ข้อมูลส่วนบุคคลแล้วปิดบังให้ทุกคนยกเว้นทีมที่ได้รับอนุญาต จากนั้นนโยบายจะมีผลทั้งเมื่อ query ใน Databricks และเมื่ออ่านจากเอนจินภายนอกที่เชื่อมผ่าน Iceberg REST Catalog

## ทำงานอย่างไร

กลไกนี้สร้างบน Iceberg REST Catalog scan API ซึ่งเป็นข้อกำหนดเปิดที่เอนจินใดก็นำไปใช้ได้ เมื่อผู้ใช้ query ตารางที่มีนโยบายจากเอนจินภายนอก ขั้นตอนเป็นดังนี้

1. เอนจินส่งคำขอ scan ไปยัง Unity Catalog ผ่าน Iceberg REST Catalog scan API
2. Unity Catalog ตรวจสิทธิ์ของผู้ใช้และนโยบายทั้งหมดที่เกี่ยวข้อง
3. Unity Catalog ส่ง scan plan ที่กรองแล้วกลับไป ครอบคลุมเฉพาะข้อมูลที่ผู้ใช้มีสิทธิ์เห็น
4. เอนจินประมวลผล query ต่อจากไฟล์ที่อยู่ใน scan plan นั้นเท่านั้น

การบังคับใช้เกิดที่ชั้นแคตตาล็อกก่อนข้อมูลถึงเอนจิน เอนจินไม่ต้องรู้จักนโยบายเลย Databricks จึงบอกว่าวิธีนี้เหมาะกับเอนจินที่ "ไม่น่าเชื่อถือ" หรือไม่มีระบบกำกับดูแลในตัว ในบล็อกเดือนมิถุนายน Databricks ระบุว่ารองรับ Apache Spark ก่อน และมีแผนเชื่อม Starburst กับ DuckDB ตามมา แต่เอกสารฉบับ GA ยังระบุวิธีตั้งค่าเฉพาะ Apache Spark

## เงื่อนไขก่อนเปิดใช้

เอกสารของ Databricks ระบุเงื่อนไขไว้สี่ข้อ ข้อแรกต้องเปิด external data access บน metastore ของ Unity Catalog ข้อสองต้องให้สิทธิ์ EXTERNAL USE SCHEMA แก่ผู้ใช้หรือ service principal ที่ query ข้อสามตารางต้องเป็น managed table ที่เปิด catalog commits ตารางใหม่สร้างได้บน Databricks Runtime 16.4 ขึ้นไป ส่วนตารางเดิมต้องอัปเกรดบน Runtime 18.0 ขึ้นไป ข้อสี่ต้องยืนยันตัวตนด้วย OAuth แบบ machine-to-machine หรือ personal access token

ฝั่งไคลเอนต์ใช้ Apache Spark ได้สองทาง ทางแรกคือ Delta-Spark 4.1 ขึ้นไปคู่กับ Unity Catalog Spark connector 0.4 ขึ้นไป และต้องเปิดค่า ServerSidePlanning ทางที่สองคือ Iceberg-Spark 1.11 ขึ้นไปบน Apache Spark 4.0 ขึ้นไป

![ภาพสรุปสิ่งที่ต้องรู้ก่อนใช้ Cross-engine ABAC](https://thaidata.co.th/images/articles/databricks-cross-engine-abac-ga-unity-catalog/databricks-cross-engine-abac-key-facts.webp?v=42b69edb) _(ภาพ: THAI DATA (ข้อมูล: Databricks))_

## ค่าใช้จ่ายและข้อจำกัด

การบังคับใช้นโยบายฝั่งเซิร์ฟเวอร์ใช้ serverless compute ซึ่ง Databricks คิดค่าบริการ ผู้ดูแลที่เข้าถึงตาราง system.billing.usage ตรวจยอดได้จากรายการที่ billing_origin_product เป็น EXTERNAL_COMPATIBILITY

![รายการข้อจำกัดของ Cross-engine ABAC ในเอกสารของ Databricks](https://thaidata.co.th/images/articles/databricks-cross-engine-abac-ga-unity-catalog/databricks-cross-engine-abac-limitations.webp?v=5d5bde1b) _(ภาพ: Databricks (ภาพหน้าจอเอกสาร))_

ข้อจำกัดที่เอกสารระบุมีหลายข้อ เอนจินภายนอกอ่านได้อย่างเดียวเมื่อมีนโยบายบังคับใช้ หากต้องเขียนข้อมูล ต้องยกเว้นผู้เขียนออกจากนโยบาย ABAC นอกจากนี้ยังไม่รองรับ dynamic view การ project คอลัมน์ประเภท VARIANT การกรองคอลัมน์ BINARY และฟังก์ชันปิดบังคอลัมน์ที่คืนค่าต่างประเภทจากคอลัมน์เดิม aggregation ขนาดใหญ่อาจทำงานช้าลง และการเขียนข้อมูลพร้อมกันระหว่างวางแผน query อาจทำให้ self-join หรือ query ที่ scan ตารางหลายครั้งอ่านข้อมูลจากคนละ snapshot จนได้ผลลัพธ์ผิด

## อัปเดตด้านการกำกับดูแลอื่นในเดือนเดียวกัน

บันทึกการเปลี่ยนแปลงเดือนตุลาคมของ Databricks ยังมีอีกสองรายการที่เกี่ยวกับการควบคุมข้อมูล วันที่ 2 ตุลาคม การใช้กุญแจเข้ารหัสที่ลูกค้าจัดการเอง (customer-managed key) กับตารางประวัติ query พร้อมใช้งานทั่วไป ข้อความคำสั่ง SQL และข้อความ error ในตารางนั้นจะถอดรหัสได้ด้วยกุญแจของลูกค้า วันที่ 5 ตุลาคม Lakeflow pipeline ตั้งตัวตนที่ใช้รันเป็นกลุ่มบัญชีได้ ทำให้ทีมเป็นเจ้าของ pipeline อัตโนมัติร่วมกันโดยไม่ผูกกับบัญชีของพนักงานคนใดคนหนึ่ง

## ผลต่อองค์กรไทย

- **ทีมที่ดูแลข้อมูลส่วนบุคคลตาม PDPA** กำหนดกฎปิดบังเลขบัตรประชาชน เบอร์โทร หรือข้อมูลสุขภาพไว้ที่แคตตาล็อกครั้งเดียว แล้วกฎนั้นมีผลแม้ทีมอื่นอ่านตารางจาก Spark นอก Databricks ลดความจำเป็นในการทำสำเนาตารางที่ตัดคอลัมน์ออกให้แต่ละทีม
- **วิศวกรข้อมูลที่ใช้หลายเอนจิน** ควรตรวจเวอร์ชัน Runtime ตัวเชื่อม Spark และประเภทตารางให้ตรงเงื่อนไขก่อน ตารางเดิมที่ต้องอัปเกรดเป็น catalog commits ควรทดสอบในสภาพแวดล้อมทดสอบก่อน
- **ฝ่ายการเงินและผู้ดูแลงบคลาวด์** ตั้งการแจ้งเตือนค่า serverless compute ที่เกิดจากการอ่านผ่านเอนจินภายนอก เพราะงานที่ query บ่อยหรือ aggregation ขนาดใหญ่อาจมีค่าใช้จ่ายเพิ่มที่ไม่เคยเห็นมาก่อน ดูข่าวด้านข้อมูลเพิ่มเติมได้ที่[หมวดข้อมูล](/data/)

## คำถามที่พบบ่อย

### Cross-engine ABAC ของ Databricks คืออะไร?

เป็นความสามารถของ Unity Catalog ที่บังคับใช้นโยบายควบคุมสิทธิ์ตามแอตทริบิวต์ (ABAC) รวมถึงการกรองแถว (row filter) และการปิดบังคอลัมน์ (column mask) กับเอนจินประมวลผลภายนอก Databricks เช่น Apache Spark ที่อ่านตาราง managed ผ่าน Iceberg REST Catalog API

### Cross-engine ABAC พร้อมใช้งานทั่วไปเมื่อไร?

บันทึกการเปลี่ยนแปลงของ Databricks ระบุว่าพร้อมใช้งานทั่วไปเมื่อ 1 ตุลาคม 2026 หลังเปิด Beta เมื่อ 2 มิถุนายน 2026 Databricks ทยอยปล่อยฟีเจอร์ จึงอาจใช้เวลาหนึ่งสัปดาห์หรือมากกว่าก่อนถึงทุกบัญชี

### ต้องเตรียมอะไรก่อนใช้ Cross-engine ABAC?

ต้องเปิด external data access บน metastore ของ Unity Catalog ให้สิทธิ์ EXTERNAL USE SCHEMA แก่ผู้ใช้ที่ query ใช้ตาราง managed ที่เปิด catalog commits และยืนยันตัวตนด้วย OAuth แบบ machine-to-machine หรือ personal access token

### Cross-engine ABAC มีค่าใช้จ่ายและข้อจำกัดอะไร?

Databricks คิดค่า serverless compute ที่ใช้บังคับนโยบาย ตรวจสอบได้จากตาราง system.billing.usage ข้อจำกัดหลักคืออ่านได้อย่างเดียว ไม่รองรับ dynamic view การ project คอลัมน์ VARIANT การกรองคอลัมน์ BINARY และ aggregation ขนาดใหญ่อาจช้าลง


## แหล่งอ้างอิง

- [Databricks platform release notes: October 2026](https://docs.databricks.com/aws/en/release-notes/product/2026/october) — Databricks
- [Cross-engine attribute-based access controls (ABAC)](https://docs.databricks.com/aws/en/external-access/cross-engine-abac) — Databricks
- [Introducing Cross-Engine ABAC](https://www.databricks.com/blog/introducing-cross-engine-abac) — Databricks
