การรักษาความปลอดภัยระดับแถวในฐานข้อมูล

หากองค์กรของคุณพยายามสร้างการรักษาความปลอดภัยระดับแถว (RLS) ในฐานข้อมูลแล้ว คุณอาจสามารถใช้เทคนิคต่อไปนี้เพื่อใช้ประโยชน์จาก RLS ที่มีอยู่ได้ หากต้องการใช้ประโยชน์จากแบบจำลองการรักความปลอดภัยของฐานข้อมูล จำเป็นต้องมีการเชื่อมต่อแบบสด นอกจากนี้เทคนิคเหล่านี้อาจใช้งานบน Tableau Cloud ไม่ได้ ชื่อผู้ใช้ของ Tableau สำหรับ Tableau Cloud คือที่อยู่อีเมลที่ไม่ซ้ำกันซึ่งปกติแล้วจะไม่ใช่ข้อมูลประจำตัวผู้ใช้ของฝั่งฐานข้อมูล

ดังนั้นการปรับใช้แบบจำลอง RLS ในตัวจึงไม่จำเป็นที่จะต้องง่ายกว่าหรือดีกว่าเมื่อเทียบกับการสร้างแบบจำลองโดยคำนึงถึง Tableau การใช้ประโยชน์จากเทคนิคเหล่านี้จึงมักจะเกิดขึ้นเมื่อองค์กรได้ลงทุนในเทคโนโลยีเหล่านี้แล้ว และต้องการใช้ประโยชน์จากสิ่งที่ลงทุนไปนั่นเอง

หมายเหตุ: หากต้องการข้อมูลเกี่ยวกับทางเลือกอื่นที่คุณสามารถใช้เพื่อปรับใช้ความปลอดภัยระดับแถวใน Tableau โปรดดู ภาพรวมของตัวเลือกความปลอดภัยระดับแถวใน Tableau

การแอบอ้างเป็นบุคคลอื่น (Microsoft SQL Server)

Microsoft SQL Server (และระบบต่างๆ ที่เกี่ยวข้อง) สามารถกำหนดค่าให้ผู้ใช้ของฐานข้อมูลสามารถเข้าถึงมุมมองด้วยตัวกรอง RLS ในตัวเท่านั้น ทั้งการใช้ตารางจุดเชื่อมต่อการรักษาความปลอดภัยและมุมมองที่ DBA สร้างขึ้น Tableau สามารถใช้ประโยชน์จากแนวคิดที่เรียกว่า “การแอบอ้างเป็นบุคคลอื่น” ได้

เมื่อเผยแพร่แหล่งข้อมูล Tableau ที่มี MS SQL Server ที่เชื่อมต่อกับ Tableau Server จะมีตัวเลือกการตรวจสอบสิทธิ์ที่สามารถใช้ประโยชน์จากการแอบอ้างเป็นบุคคลอื่นได้อยู่สองตัวเลือก เมนูที่คุณเห็นจะขึ้นอยู่กับว่าคุณลงชื่อเข้าใช้ SQL Server ด้วยการตรวจสอบสิทธิ์เครือข่ายหรือด้วยการป้อนข้อมูลเข้าสู่ระบบชื่อผู้ใช้/รหัสผ่าน

หากต้องการเปิดใช้งานการกรอง RLS สำหรับผู้ใช้รายใดก็ตามที่สามารถเข้าถึงแหล่งข้อมูลที่เผยแพร่ใน Tableau Server ทั้งบัญชีที่เรียกใช้ในฐานะ AD หรือข้อมูลเข้าสู่ระบบ SQL Server แบบฝังล้วนต้องมีสิทธิ์ดำเนินการในฐานะผู้ใช้ Tableau ในฐานข้อมูลซึ่งจะเข้าถึงแดชบอร์ดหรือแหล่งข้อมูล ผู้ใช้ Tableau ต้องเป็นอยู่ในเซิร์ฟเวอร์ฐานข้อมูลในฐานะผู้ใช้ โดยมีสิทธิ์ SELECT สำหรับมุมมองที่คุณพยายามเชื่อม (และมีการปรับใช้ RLS) ดู ข้อกำหนดการเลียนแบบ สำหรับรายการข้อกำหนดอย่างครอบคลุม

Kerberos และการมอบหมายที่จำกัด

การมอบหมายที่จำกัดภายใน Tableau Server โดยใช้การดำเนินการของ Kerberos จะคล้ายคลึงกับการแอบอ้างเป็นบุคคลอื่นซึ่งทำให้ Tableau Server สามารถใช้ข้อมูลเข้าสู่ระบบของ Kerberos ของมุมมองเวิร์กบุ๊กหรือดูเพื่อดำเนินการค้นหาในนามของผู้รับชม ดังนั้นหากตั้งค่า RLS ไว้ในฐานข้อมูล ผู้รับชมเวิร์กบุ๊กจะเห็นเพียงข้อมูลของตนเองเท่านั้น

หากต้องการดูรายการฐานข้อมูลที่ครอบคลุมซึ่งรองรับการมอบหมาย Kerberos โปรดดู เปิดใช้งานการมอบหมาย Kerberos จำเป็นต้องมี Active Directory คอมพิวเตอร์ที่ติดตั้ง Tableau Server จะต้องเข้าร่วมโดเมน Active Directory วิธีการรับรองสิทธิ์(ลิงก์จะเปิดในหน้าต่างใหม่) ที่ระบุไว้เมื่อเผยแพร่แหล่งข้อมูลจะต้องเป็น ข้อมูลเข้าสู่ระบบของผู้ชม

โปรดทราบว่า Kerberos สามารถใช้ประโยชน์จาก RLS เมื่อใช้งาน Microsoft Analysis Services ได้

คิวบ์ OLAP

การเชื่อมต่อคิวบ์ OLAP ใน Tableau จะไม่เท่ากับตัวกรองแหล่งข้อมูล ซึ่งต้องมีวิธีการให้สิทธิ์ RLS ที่อิงจากตารางใน Tableau หรือเข้าถึงฟังก์ชัน USERNAME() สำหรับเหตุผลเหล่านี้ Kerberos และการมอบหมายที่จำกัดคือแนวทางที่แนะนำสำหรับ RLS ที่มีฐานข้อมูล OLAP ซึ่งอนุญาตให้ Tableau ใช้ประโยชน์จากการกรองผู้ใช้ที่ได้ปรับใช้ OLAP ในฝั่งเซิร์ฟเวอร์แล้ว

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

การมอบหมาย SAML และ SAP HANA

หาก Tableau Server มีการกำหนดค่าเพื่อใช้ กำหนดค่า SSO ของ SAP HANA เพื่อให้ประสบการณ์ลงชื่อเข้าใช้เพียงครั้งเดียว ระบบจะใช้ข้อมูลเข้าสู่ระบบของผู้ชมเพื่อดำเนินการค้นหาแทนผู้ใช้รายนั้น ซึ่งจะดำเนินการภายใต้การรักษาความปลอดภัยใดๆ ที่มีการปรับใช้ในระดับผู้ใช้ วิธีการรับรองสิทธิ์(ลิงก์จะเปิดในหน้าต่างใหม่) ที่ระบุไว้เมื่อเผยแพร่แหล่งข้อมูลจะต้องเป็น ข้อมูลเข้าสู่ระบบของผู้ชม

SQL เริ่มต้นเพื่อบังคับใช้เซสชันเฉพาะผู้ใช้ (Oracle VPD)

SQL เริ่มต้นทำให้คุณสามารถระบุคำสั่ง SQL ที่ทำงานเมื่อเกิดการเชื่อมต่อกับฐานข้อมูลเพื่อการตั้งค่าตารางชั่วคราวที่ใช้ระหว่างเซสชันหรือเพื่อตั้งค่าสภาพแวดล้อมข้อมูลที่กำหนดเอง

สำหรับ Oracle VPD คุณสามารถตั้งค่าเซสชันเฉพาะผู้ใช้ได้โดยการเรียกฟังก์ชันหรือโพรซีเยอร์ที่จัดเก็บไว้เฉพาะเพื่อตั้งค่าบริบทของการเชื่อมต่อฐานข้อมูลให้ตรงกับชื่อผู้ใช้ของผู้ใช้ Tableau ดังนี้

begin
DBMS_SESSION.SET_IDENTIFIER([TableauServerUser]);
end;

ข้อกำหนดระดับสูงแบบเดียวกันจะเป็น True สำหรับการใช้สิ่งนี้เพื่อ RLS ที่แอบอ้างเป็นบุคคลอื่น DBA ต้องตั้งค่าให้เป็น VPD และผู้ใช้ทุกรายที่เกี่ยวข้องซึ่งอยู่ในฐานข้อมูล

ใน MS SQL Server คุณควรบังคับคำสั่ง EXECUTE as (แม้การดำเนินการดังกล่าวจะคล้ายกับการที่ Tableau ทำกับการแอบอ้างเป็นบุคคลอื่นอยู่แล้วก็ตาม)

EXECUTE AS USER = [TableauServerUser] WITH NO REVERT;

หมายเหตุ: หากแหล่งข้อมูลถูกฝังและผู้ใช้มีสิทธิ์แก้ไขเว็บหรือดาวน์โหลดเวิร์กบุ๊ก เช่นนั้นจะไม่มี RLS เนื่องจาก SQL เริ่มต้นที่บังคับใช้จะถูกลบได้โดยง่าย แหล่งข้อมูลควรเผยแพร่โดยแยกจากกันแทนที่จะฝังไว้ในเวิร์กบุ๊ก

การเปรียบเทียบเมทริกซ์สำหรับวิธีรักษาความปลอดภัยระดับแถว

วิธีการมีประโยชน์เมื่อข้อดีข้อเสีย
ตารางการให้สิทธิ์ (แนะนำ)
  • มีแนวคิดเกี่ยวกับการให้สิทธิ์เดิมที่มีในฐานข้อมูล
  • องค์กรที่ดำเนินการตั้งค่าการรักษาความปลอดภัยระดับแถวเป็นครั้งแรก
  • ทดสอบ อัปเดต บำรุงรักษา และปรับขนาดได้อย่างง่ายดาย
  • ทำงานได้ทั้งกับการเชื่อมต่อแบบสดและการแยกข้อมูลในเวอร์ชัน 2018.3+
  • ต้องมีการสร้างและบำรุงรักษาตารางการให้สิทธิ์
  • อาจต้องเลือกและสร้างคีย์ที่เหมาะสมเพื่อเพิ่มประสิทธิภาพ
CONTAINS() กับการแยกข้อมูล
  • การปรับใช้ RLS ในการแยกข้อมูลก่อนเวอร์ชัน 2018.3
  • ให้คุณใช้ประโยชน์จากประสิทธิภาพของการแยกข้อมูล
  • ต้องมีการแมปผู้ใช้ให้อยู่ในคอลัมน์เดี่ยว
  • สลับกลับไปสู่การเชื่อมต่อแบบสดได้ยาก เนื่องจากการคำนวณสตริง
การแอบอ้างเป็นบุคคลอื่น
  • ผู้ใช้ทุกรายที่เข้าถึงข้อมูลจะเป็นเหมือนกับผู้ใช้ใน SQL Server (ปกติจะเป็นการปรับใช้ภายใน)
  • การรักษาความปลอดภัยจะได้รับการจัดการและบำรุงรักษาในที่เดียว นั่นคือฐานข้อมูล
  • ต้องการให้ทุกคนเข้าถึงมุมมองเหมือนเป็นผู้ใช้รายเดิมใน SQL Server
  • ใช้งานได้กับ Microsoft SQL Server เท่านั้น
Kerberos
  • ฐานข้อมูลที่จำเป็นสำหรับการตั้งค่าการมอบหมาย Kerberos และ RLS จะตั้งค่าไว้ในฐานข้อมูล (ปกติจะเป็นการปรับใช้ภายใน)
  • ชื่อของผู้ชมจะปรากฏในบันทึกการเข้าถึงฐานข้อมูล
  • การรักษาความปลอดภัยจะได้รับการจัดการและบำรุงรักษาในฐานข้อมูล
  • ต้องกำหนดค่า Tableau เพื่อใช้ LDAP - Active Directory
  • Tableau Server ต้องรวมกับโดเมน AD
  • ผู้ใช้ทุกรายต้องอยู่ในโดเมน AD ของคุณ
SQL เริ่มต้น
  • ฐานข้อมูลรองรับ SQL เริ่มต้นและ RLS จะตั้งค่าไว้ในฝั่งฐานข้อมูล
  • อนุญาตให้ส่งพารามิเตอร์ Tableau ที่เวลาในการโหลด
  • การเชื่อมต่อเฉพาะที่สามารถแชร์กับผู้ใช้รายอื่นๆ ได้
  • ผู้ใช้ต้องอยู่ในฐานข้อมูลเพื่อดำเนินการค้นหาในฐานะผู้ใช้ได้
  • ฐานข้อมูลบางรายการอาจไม่รองรับ SQL เริ่มต้น
  • อาจมีผลกระทบต่อประสิทธิภาพเนื่องจากการแชร์แคชที่จำกัด
ขอบคุณสำหรับข้อเสนอแนะของคุณส่งข้อเสนอแนะของคุณเรียบร้อยแล้ว ขอขอบคุณ