การรักษาความปลอดภัยระดับแถวในฐานข้อมูล
หากองค์กรของคุณพยายามสร้างการรักษาความปลอดภัยระดับแถว (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 เริ่มต้นที่บังคับใช้จะถูกลบได้โดยง่าย แหล่งข้อมูลควรเผยแพร่โดยแยกจากกันแทนที่จะฝังไว้ในเวิร์กบุ๊ก
การเปรียบเทียบเมทริกซ์สำหรับวิธีรักษาความปลอดภัยระดับแถว
วิธีการ | มีประโยชน์เมื่อ | ข้อดี | ข้อเสีย |
ตารางการให้สิทธิ์ (แนะนำ) |
|
|
|
CONTAINS() กับการแยกข้อมูล |
|
|
|
การแอบอ้างเป็นบุคคลอื่น |
|
|
|
Kerberos |
|
|
|
SQL เริ่มต้น |
|
|
|