จำกัดการเข้าถึงที่ระดับแถวข้อมูล
เมื่อคุณแชร์เวิร์กบุ๊กกับผู้อื่นโดยเผยแพร่ไปยัง Tableau Server หรือ Tableau Cloud ตามค่าเริ่มต้น ผู้ใช้ทั้งหมดที่มีสิทธิเข้าถึงเวิร์กบุ๊กจะสามารถดูข้อมูลทั้งหมดที่แสดงในมุมมองได้ คุณสามารถแทนที่การทำงานนี้ได้โดยใช้ประเภทของตัวกรองที่ช่วยให้คุณระบุได้ว่า "แถว” ข้อมูลที่บุคคลที่ลงชื่อเข้าใช้เซิร์ฟเวอร์สามารถเห็นได้ในมุมมอง
วิธีการในการรักษาความปลอดภัยของข้อมูลที่ระดับแถวนี้จะนำไปใช้กับแหล่งข้อมูลที่มีการเชื่อมต่อแบบสดและแหล่งการแยกข้อมูลที่จัดเก็บตารางไว้เป็นหลายตาราง หากต้องการข้อมูลเพิ่มเติมเกี่ยวกับการจัดเก็บข้อมูลการแยกข้อมูลโดยใช้หลายตาราง โปรดดู แยกข้อมูลของคุณ
หมายเหตุ: หากต้องการข้อมูลเกี่ยวกับทางเลือกอื่นที่คุณสามารถใช้เพื่อปรับใช้ความปลอดภัยระดับแถวใน Tableau โปรดดู ภาพรวมของตัวเลือกความปลอดภัยระดับแถวใน Tableau(ลิงก์จะเปิดในหน้าต่างใหม่) ในความช่วยเหลือเกี่ยวกับ Tableau Server
หากต้องการข้อมูลที่เกี่ยวข้องเพิ่มเติม โปรดดู เอกสารประกอบแนวทางปฏิบัติที่ดีที่สุดสำหรับความปลอดภัยระดับแถวที่มีด้วยตารางการให้สิทธิ(ลิงก์จะเปิดในหน้าต่างใหม่)
การกรองตามผู้ใช้ทำงานอย่างไร
สมมติว่าคุณสร้างรายงานการขายรายไตรมาสสำหรับชุดผลิตภัณฑ์ในช่วงหลายปีที่ผ่านมาโดยแบ่งตามภาคภูมิศาสตร์ต่างๆ
เมื่อเผยแพร่รายงานนี้ คุณต้องการอนุญาตให้ผู้จัดการระดับภูมิภาคแต่ละคนดูได้เฉพาะข้อมูลที่เกี่ยวข้องกับภูมิภาคของตนเอง คุณสามารถใช้ตัวกรองผู้ใช้ที่จำกัดการเข้าถึงข้อมูลตามลักษณะของผู้ใช้ เช่น บทบาทของผู้ใช้ แทนการสร้างมุมมองแบบแยกสำหรับผู้จัดการแต่ละคน
การจำกัดการเข้าถึงข้อมูลในลักษณะนี้เรียกว่าความปลอดภัยระดับแถว (RLS) Tableau มีแนวทางในความปลอดภัยระดับแถวดังนี้
สร้างตัวกรองผู้ใช้และจับคู่ผู้ใช้กับค่าด้วยตนเอง
แม้วิธีนี้สะดวกก็จริง แต่ต้องใช้การบำรุงรักษาอย่างมาก และการรักษาความปลอดภัยก็ไม่มีความแน่นอน ต้องทำให้เสร็จทีละเวิร์กบุ๊ก และคุณต้องอัปเดตตัวกรองและเผยแพร่แหล่งข้อมูลอีกครั้งเมื่อฐานผู้ใช้ของคุณเปลี่ยนแปลง
สร้างตัวกรองแบบไดนามิกโดยใช้ฟิลด์การรักษาความปลอดภัยในข้อมูล
เมื่อใช้วิธีนี้ คุณจะสร้างฟิลด์ที่คำนวณที่ทำให้กระบวนการแมปผู้ใช้กับค่าข้อมูลเป็นแบบอัตโนมัติ วิธีนี้ต้องใช้ข้อมูลเบื้องหลังรวมถึงข้อมูลการรักษาความปลอดภัยที่คุณต้องใช้สำหรับการกรอง
วิธีทั่วไปในการทำเช่นนี้คือการใช้ตารางอ้างอิง ("การค้นหา", "การให้สิทธิ" หรือ "ความปลอดภัย") ที่มีข้อมูลนี้ ตัวอย่างเช่น หากคุณต้องการกรองมุมมองเพื่อให้ดูได้เฉพาะหัวหน้างานเท่านั้น ข้อมูลเบื้องหลังต้องได้รับการตั้งค่าให้รวมชื่อผู้ใช้และระบุบทบาทของผู้ใช้แต่ละรายด้วย
เนื่องจากกำหนดการกรองไว้ที่ระดับข้อมูลและเป็นอัตโนมัติโดยฟิลด์ที่คำนวณ วิธีการนี้จึงมีความปลอดภัยมากกว่าการแมปผู้ใช้กับค่าข้อมูลด้วยตนเอง
การเพิ่มตัวกรองผู้ใช้ไปยังแหล่งข้อมูล
สองวิธีในส่วนก่อนหน้าอธิบายถึงวิธีเพิ่มตัวกรองไปยังข้อมูลที่ฝังอยู่ในเวิร์กบุ๊ก หากหลายเวิร์กบุ๊กเชื่อมต่อกับข้อมูลเดียวกัน คุณสามารถกรองแหล่งข้อมูล จากนั้นเชื่อมต่อเวิร์กบุ๊กกับแหล่งข้อมูลหลังจากที่คุณเผยแพร่ได้แทนการใช้ตัวกรองในเวิร์กบุ๊กแต่ละรายการ
เวิร์กบุ๊กที่เชื่อมต่อกับแหล่งข้อมูลที่กรองของคุณจะแสดงเฉพาะข้อมูลที่อนุญาตให้ดูได้เฉพาะผู้ใช้ที่เข้าสู่ระบบเซิร์ฟเวอร์เท่านั้น นอกจากนี้ เวิร์กบุ๊กที่เชื่อมต่อทั้งหมดจะแสดงการรีเฟรชข้อมูลเมื่อเกิดขึ้น
การแยกข้อมูลกับการเชื่อมต่อแบบสดที่มีตัวกรองผู้ใช้
โดยทั่วไปแล้ว เมื่อใช้วิธีการใดวิธีการหนึ่งที่อธิบายไว้ข้างต้น RLS ที่มีการแยกข้อมูลจะสร้างได้เร็วกว่าและมีประสิทธิภาพที่ดีกว่า RLS ที่มีแหล่งข้อมูลที่ใช้การเชื่อมต่อแบบสด
ข้อกำหนดสำหรับ RLS ที่มีแหล่งข้อมูลการแยก
ดังที่กล่าวไว้ก่อนหน้านี้ ข้อกำหนดประการแรกในการใช้ RLS กับการแยกข้อมูลคือ ข้อมูลในการแยกข้อมูลควรจัดเก็บโดยใช้ตารางกายภาพหลายตาราง คุณสามารถกำหนดค่าการแยกข้อมูลไปยังข้อมูลที่จัดเก็บได้โดยใช้ตารางกายภาพหลายตารางโดยปฏิบัติตามแยกข้อมูลของคุณ
นอกเหนือจากข้อกำหนดข้างต้นแล้ว ยังมีข้อควรพิจารณาเพิ่มเติมบางประการที่ต้องปฏิบัติตามหากคุณวางแผนที่จะใช้ RLS กับการแยกข้อมูลของคุณ เนื่องจากการแยกข้อมูลที่จัดเก็บโดยใช้หลายตารางไม่รองรับตัวกรองการแยกข้อมูลและฟังก์ชันอื่นๆ ที่ช่วยลดปริมาณข้อมูลในการแยกข้อมูล คุณอาจลองใช้คำแนะนำข้อใดข้อหนึ่งต่อไปนี้
เชื่อมต่อกับข้อมูลโดยใช้ SQL แบบปรับแต่งเอง
เชื่อมต่อกับมุมมองฐานข้อมูลที่มีระดับการกรองที่เหมาะสมอยู่แล้ว
หากต้องการข้อมูลเพิ่มเติมเกี่ยวกับคำแนะนำเหล่านี้ โปรดดู แยกข้อมูลของคุณ
แนวทางปฏิบัติที่แนะนำสำหรับ RLS ที่มีแหล่งข้อมูลการแยก
หากต้องการใช้ RLS ที่มีการแยกอย่างมีประสิทธิภาพ Tableau แนะนำให้รักษาจำนวนตาราง (หรือมุมมองฐานข้อมูลหรือการค้นหา SQL แบบปรับแต่งเอง) ในการแยกข้อมูลของคุณให้เป็น 2 ตาราง กล่าวอีกนัยหนึ่ง Tableau แนะนำให้ตารางในการแยกข้อมูลของคุณประกอบด้วยตารางประเภทต่อไปนี้
ตารางข้อมูล - ตารางนี้คือตาราง "ออบเจ็กต์" ที่มีข้อมูลทั้งหมดที่คุณต้องการแสดง
ตารางอ้างอิง - ตารางนี้คือตาราง "ค้นหา" หรือ "การให้สิทธิ" ที่มีข้อมูลผู้ใช้และกลุ่มความปลอดภัยที่ผู้ใช้อยู่
เมื่อลดตารางในการแยกข้อมูลของคุณให้เหลือสองตารางนี้ คุณจึงมั่นใจได้ว่าการรวมเพียงอย่างเดียวที่ Tableau ต้องทำคือระหว่างสองตารางนี้เท่านั้น และด้วยเหตุนี้จึงหลีกเลี่ยงความซ้ำซ้อนของข้อมูลหรือ "การรวมการกระจาย"
เกี่ยวกับ RLS และ Tableau เวอร์ชันก่อนหน้า
ก่อนหน้านี้ Tableau ไม่สามารถรองรับเวิร์กโฟลว์ RLS ที่มีการแยกข้อมูลได้เนื่องจากมีความยุ่งยากเกี่ยวกับการทำซ้ำแถวและประสิทธิภาพ แต่ในที่สุด ความซับซ้อนเหล่านี้ได้มาจากการแยกข้อมูลที่มีข้อมูลที่สามารถจัดเก็บและค้นหาได้เป็นตารางเดียวเท่านั้น อย่างไรก็ตาม ตั้งแต่ Tableau 2018.3 เป็นต้นไป คุณสามารถเลือกที่จะจัดเก็บข้อมูลในการแยกข้อมูลได้โดยใช้หลายตาราง และเปิดใช้งานเวิร์กโฟลว์สำหรับ RLS ที่มีการแยกข้อมูลที่คุณอาจเคยทำกับแหล่งข้อมูลที่มีการเชื่อมต่อแบบสดก่อนหน้านี้ได้
สำหรับการอภิปรายอย่างครอบคลุมเกี่ยวกับ RLS ที่มีการแยกข้อมูลใน Tableau โปรดอ่านบล็อกที่ดูแลโดยที่ปรึกษาการขายของ Tableau ซึ่งมีประสบการณ์กว้างขวางในด้านนี้
การแยกข้อมูล Hyper แบบหลายตาราง (นอร์มัลไลซ์)(ลิงก์จะเปิดในหน้าต่างใหม่)
การปิดใช้งานความปลอดภัยระดับแถว…ส่วนที่ 1(ลิงก์จะเปิดในหน้าต่างใหม่)
การปิดใช้งานความปลอดภัยระดับแถว…ส่วนที่ 2(ลิงก์จะเปิดในหน้าต่างใหม่)
ข้อจำกัดความรับผิดชอบ: การคลิกลิงก์เหล่านี้จะนำคุณออกจาก Tableau.com แม้ว่าเราจะพยายามอย่างเต็มที่เพื่อรับรองว่าลิงก์ไปยังเว็บไซต์ภายนอกนั้นถูกต้องและมีความเกี่ยวข้อง แต่ Tableau จะไม่รับผิดชอบหรือให้การสนับสนุนเนื้อหาภายนอกได้
ดูเพิ่มเติม
ความปลอดภัยของข้อมูล(ลิงก์จะเปิดในหน้าต่างใหม่)ในวิธีใช้ Tableau Server
ภาพรวมของตัวเลือกความปลอดภัยระดับแถว(ลิงก์จะเปิดในหน้าต่างใหม่)ใน Tableau ในวิธีใช้ Tableau Server