สร้างนโยบายข้อมูลสำหรับการรักษาความปลอดภัยระดับแถว
ใช้นโยบายข้อมูลเพื่อนำการรักษาความปลอดภัยระดับแถวไปใช้กับตารางอย่างน้อยหนึ่งตารางในการเชื่อมต่อแบบเสมือน นโยบายข้อมูลจะกรองข้อมูล เพื่อให้แน่ใจว่าผู้ใช้จะเห็นเฉพาะข้อมูลที่ควรจะเห็นเท่านั้น นโยบายข้อมูลใช้ได้กับทั้งการเชื่อมต่อแบบสดและแบบแยกข้อมูล
เกี่ยวกับนโยบายข้อมูล
นโยบายข้อมูลมีส่วนประกอบหลัก 3 ส่วนดังนี้
- ตารางที่ใช้กับนโยบายดังกล่าว เรียกว่าตารางนโยบาย ตารางเหล่านี้คือตารางที่มีการกรอง
- คอลัมน์ที่จับคู่ไว้ซึ่งกำหนดความสัมพันธ์ระหว่างตาราง (เช่น ระหว่างตารางการให้สิทธิ์กับตารางข้อเท็จจริง) และระหว่างคอลัมน์ของตารางและคอลัมน์ของนโยบาย คอลัมน์ของนโยบายคือคอลัมน์ที่ใช้กรองข้อมูล
- เงื่อนไขของนโยบาย ซึ่งเป็นนิพจน์หรือการคำนวณที่นำไปประเมินสำหรับทุกแถวในเวลาค้นหา หากเงื่อนไขของนโยบายเป็น TRUE แถวจะปรากฏขึ้นในการค้นหา
เมื่อคุณสร้างนโยบายข้อมูลแล้ว คุณต้องมีคอลัมน์ที่คุณสามารถใช้เพื่อกรองข้อมูลได้ คอลัมน์นี้เรียกว่าคอลัมน์ของนโยบาย ข้อมูลจะถูกกรองตามเงื่อนไขของนโยบาย ซึ่งโดยปกติแล้วจะใช้ฟังก์ชันของผู้ใช้ เช่น USERNAME() หรือ FULLNAME()
หากตารางนโยบายของคุณมีคอลัมน์ที่คุณสามารถกรองได้ ให้ใช้คอลัมน์นั้นเป็นคอลัมน์ของนโยบาย
หากตารางนโยบายไม่มีคอลัมน์ดังกล่าว ให้ใช้ตารางการให้สิทธิ์พร้อมคอลัมน์ที่คุณสามารถใช้เพื่อกรองข้อมูลได้ ตารางการให้สิทธิ์คือตารางที่มีทั้งคอลัมน์ของนโยบายที่คุณสามารถใช้เพื่อกรองตารางนโยบาย และอีกคอลัมน์หนึ่งที่คุณสามารถเชื่อมโยง (ทำแผนที่) กับคอลัมน์ในตารางนโยบายได้ (ดังที่แสดงในภาพตัวอย่างนโยบายข้อมูลด้านบน)
กรองด้วยคอลัมน์ของนโยบายจากตารางนโยบาย
วิธีที่พบมากที่สุดในการกรองข้อมูลคือการใช้คอลัมน์ในตารางที่มีข้อมูลที่คุณต้องการกรอง ใช้คอลัมน์นั้นเป็นคอลัมน์ของนโยบาย แล้วทำแผนที่คอลัมน์ตารางที่เหมาะสมกับคอลัมน์ของนโยบาย
หากต้องการใช้คอลัมน์ของนโยบายเพื่อกรองข้อมูล ก่อนอื่นให้เพิ่มตารางไปยังนโยบายจากแผงด้านซ้าย หากต้องการเพิ่มตาราง ทำตามขั้นตอนอย่างใดอย่างหนึ่งต่อไปนี้:
- ดับเบิลคลิกชื่อตาราง
- คลิกลูกศรดรอปดาวน์ที่อยู่ใกล้กับชื่อตารางและเลือกจัดการตารางที่มีนโยบาย
- หรือลากตารางไปทางขวาแล้ววางบนเพิ่มเป็นตารางนโยบาย
หลังจากที่มีการเพิ่มตารางไปยังนโยบาย ไอคอนโล่ จะปรากฏทางด้านขวาของชื่อตารางในแผงทางด้านซ้ายที่ระบุว่าเป็นตารางนโยบาย
จากนั้น ให้ทำแผนที่คอลัมน์เพื่อสร้างความสัมพันธ์ระหว่างชื่อคอลัมน์ในตารางกับชื่อคอลัมน์ของนโยบาย ใช้ชื่อคอลัมน์ของนโยบายในเงื่อนไขนโยบายข้อมูลเพื่อควบคุมการเข้าถึงข้อมูลระดับแถวสำหรับผู้ใช้:
- คลิก +เพิ่มคอลัมน์ไปยังแผนที่ เพื่อเพิ่มคอลัมน์อย่างน้อยหนึ่งคอลัมน์ที่คุณจะใช้ในการกรองข้อมูล
- ตั้งชื่อคอลัมน์ของนโยบาย คุณจะใช้ชื่อนี้ในเงื่อนไขของนโยบาย
- สำหรับแต่ละตารางที่มีการบังคับใช้นโยบาย ให้ใช้เมนูแบบดรอปดาวน์เพื่อเลือกคอลัมน์ตารางที่ทำแผนที่กับคอลัมน์ของนโยบาย
- ทำซ้ำกระบวนการนี้ตามจำนวนคอลัมน์ของนโยบายที่คุณต้องการใช้ในเงื่อนไขของนโยบาย
เคล็ดลับ: คุณสามารถเริ่มพิมพ์การคำนวณในช่องเงื่อนไขของนโยบาย และใช้การดำเนินการอัตโนมัติเพื่อเลือกชื่อคอลัมน์ ซึ่งจะเติมข้อมูลคอลัมน์ของนโยบายภายใต้ขั้นตอนที่ 1 แทนการใช้ปุ่ม +เพิ่มคอลัมน์ไปยังแผนที่
ตัวอย่างของการใช้คอลัมน์ของนโยบายจากตารางนโยบาย
- ตาราง Sales มีคอลัมน์ [Salesperson] และตาราง Region มีคอลัมน์ [SalesRep] ข้อมูล Salesperson และ SalesRep ตรงกับชื่อเต็มของผู้ใช้ Tableau บนไซต์ของคุณ
- คุณต้องการกรองข้อมูล Sales และ Region ตาม Salesperson ดังนั้น ให้คุณตั้งชื่อคอลัมน์ของนโยบายว่า "Salesperson" จากนั้นจึงจับทำแผนที่คอลัมน์ Salesperson จากคอลัมน์ Sales และ SalesRep จากคอลัมน์ Region กับคอลัมน์ของนโยบาย Salesperson
- จากนั้นเขียนเงื่อนไขของนโยบายเพื่อกรองทั้งสองตาราง ใช้คอลัมน์ของนโยบาย [Salesperson] และฟังก์ชันผู้ใช้ FULLNAME() เพื่อให้ผู้ใช้แต่ละรายสามารถดูได้เฉพาะข้อมูลของตนเองเท่านั้น
กรองด้วยคอลัมน์ของนโยบายจากตารางการให้สิทธิ์
ใช้ตารางการให้สิทธิ์เมื่อตารางนโยบายของคุณไม่มีคอลัมน์ที่คุณสามารถกรองได้ คุณสามารถใช้ตารางการให้สิทธิ์เพื่อทำแผนที่คอลัมน์ในตารางข้อมูลเข้ากับคอลัมน์ในตารางการให้สิทธิ์ โปรดทราบข้อต่อไปนี้:
- อย่าลืมรวมตารางการให้สิทธิ์เป็นตารางในการเชื่อมต่อแบบเสมือน คุณสามารถใช้ตารางจากการเชื่อมต่อหรือฐานข้อมูลใดก็ได้เป็นตารางการให้สิทธิ์ส่วนกลางที่รักษาความปลอดภัยของตารางในฐานข้อมูลอื่นๆ จำนวนมาก ในบางกรณี ตารางการให้สิทธิ์ที่อยู่ในฐานข้อมูลเดียวกับตารางที่คุณกำลังรักษาความปลอดภัยอยู่อาจมีความเสี่ยงด้านการรักษาความปลอดภัย เนื่องจากมีโอกาสที่จะเปิดเผยข้อมูลพนักงาน และการมีตารางการให้สิทธิ์ในฐานข้อมูลอื่นจะทำให้ควบคุมสิทธิ์ได้ง่ายขึ้น เช่น ให้สิทธิ์เข้าถึงฐานข้อมูลแก่บางคน
- หากคุณไม่ต้องการให้ผู้ใช้การเชื่อมต่อแบบเสมือนเห็นตารางการให้สิทธิ์ คุณสามารถสลับการตั้งค่าในคอลัมน์การมองเห็นบนแท็บตารางเพื่อซ่อนได้ เมื่อซ่อนแล้ว จะยังคงใช้ตารางการให้สิทธิ์สำหรับการกรองนโยบายได้ แต่ไม่สามารถใช้ในแหล่งข้อมูลการแสดงเป็นภาพหรือเวิร์กบุ๊กได้
หมายเหตุ: ระบบไม่รองรับการเชื่อมต่อโดยตรงกับเอาต์พุตโฟลว์ (ไฟล์ .hyper) สำหรับตารางการให้สิทธิ์ เอาต์พุตโฟลว์ต้องเขียนไปยังฐานข้อมูลโดยตรง
หากต้องการใช้ตารางการให้สิทธิ์เพื่อกรองข้อมูลของคุณ:
- เพิ่มตารางข้อมูลที่คุณต้องการนำนโยบายข้อมูลไปใช้ ทำตามขั้นตอนอย่างใดอย่างหนึ่งต่อไปนี้:
- ดับเบิลคลิกชื่อตาราง
- คลิกลูกศรดรอปดาวน์ที่อยู่ใกล้กับชื่อตารางและเลือกจัดการตารางที่มีนโยบาย
- หรือลากตารางไปทางขวาแล้ววางบนเพิ่มเป็นตารางนโยบาย
- หลังจากที่มีการเพิ่มตารางไปยังนโยบาย ไอคอนโล่ จะปรากฏทางด้านขวาของชื่อตารางในแผงทางด้านซ้ายที่ระบุว่าเป็นตารางนโยบาย
- เลือกตารางการให้สิทธิ์ จากนั้น:
- คลิกลูกศรดรอปดาวน์แล้วเลือกใช้เป็นตารางการให้สิทธิ์
- หรือลากตารางไปทางขวาแล้ววางบนเพิ่มเป็นตารางการให้สิทธิ์
- สำหรับแต่ละตารางที่มีการบังคับใช้นโยบาย ให้คลิกเมนูแบบดรอปดาวน์แล้วเลือกคอลัมน์เพื่อทำแผนที่ตารางนโยบายกับตารางการให้สิทธิ์
ตัวอย่างของการใช้คอลัมน์ของนโยบายจากตารางการให้สิทธิ์
- ข้อมูลที่คุณต้องการกรองมีคอลัมน์ EMP_ID แต่ไม่มีคอลัมน์ชื่อพนักงาน แต่คุณมีตารางที่สองที่รวมคอลัมน์สำหรับทั้ง EMP_ID และ FULL NAME ของพนักงาน และค่าในคอลัมน์ FULL NAME ของพนักงานตรงกับชื่อเต็มของผู้ใช้ Tableau บนไซต์ของคุณ
- คุณสามารถเพิ่มตาราง Employees ลงในนโยบายเป็นตารางการให้สิทธิ์ จากนั้นทำแผนที่ชื่อคอลัมน์ตารางนโยบาย EMP_ID กับชื่อคอลัมน์การให้สิทธิ์ EMP_ID สำหรับแต่ละตาราง
- จากนั้นใช้ฟังก์ชัน FULLNAME() ในเงื่อนไขของนโยบายของคุณเพื่อจับคู่ชื่อเต็มของผู้ใช้ Tableau Server กับคอลัมน์ [FULL NAME] ของตารางการให้สิทธิ์ (ซึ่งเป็นคอลัมน์ของนโยบาย) เพื่อให้ผู้ใช้แต่ละรายสามารถดูได้เฉพาะข้อมูลของตนเองเท่านั้น
เขียนเงื่อนไขของนโยบาย
ขั้นตอนสุดท้ายในการสร้างนโยบายข้อมูลคือการเขียนเงื่อนไขของนโยบาย ซึ่งเป็นการคำนวณหรือนิพจน์ที่ใช้กำหนดการเข้าถึงระดับแถว เรามักจะใช้เงื่อนไขของนโยบายเพื่อจำกัดการเข้าถึงผู้ใช้หรือกลุ่มผ่านฟังก์ชันผู้ใช้
เงื่อนไขของนโยบาย:
- ต้องมีอยู่ในนโยบายข้อมูล
- ต้องประเมินเป็นจริงหรือเท็จ
- แสดงแถวเมื่อเงื่อนไขของนโยบายเป็น TRUE
เมื่อคุณปิดแท็บนโยบาย งานของคุณจะไม่ถูกยกเลิก
ตัวอย่างของเงื่อนไขของนโยบาย
แสดงเฉพาะแถวที่ค่าคอลัมน์ Region เป็น North:
[Region] = "North"
อนุญาตให้ผู้ใช้ที่เข้าสู่ระบบดูแถวที่ชื่อผู้ใช้ตรงกับค่าใน EmployeeName:
FULLNAME() = [EmployeeName]
อนุญาตให้สมาชิกของกลุ่ม Managers สามารถดูทุกแถวได้ ในขณะที่ผู้ใช้สามารถดูได้เฉพาะแถวที่ชื่อผู้ใช้ตรงกับค่าในคอลัมน์ employee_name:
ISMEMBEROF('Managers') OR USERNAME() = [employee_name]
ฟังก์ชัน Tableau ที่รองรับในเงื่อนไขของนโยบาย
เงื่อนไขของนโยบายรองรับชุดย่อยของฟังก์ชัน Tableau:
- ตรรกะ (ยกเว้นที่เกี่ยวข้องกับ null)
- สตริง
- ผู้ใช้
- วันที่
- จำนวน: MIN, MID, MAX
หากต้องการดูว่าฟังก์ชันใดบางที่รองรับ ในตัวแก้ไขการเชื่อมต่อแบบเสมือน บนแท็บนโยบายข้อมูล โปรดดูแผงอ้างอิงทางด้านขวา
หมายเหตุ: หากการเชื่อมต่อแบบเสมือนมีนโยบายข้อมูลที่ประกอบด้วยฟังก์ชันของผู้ใช้(ลิงก์จะเปิดในหน้าต่างใหม่) (เช่น, USERNAME()
) และคุณเชื่อมต่อจากเวิร์กบุ๊กหรือแหล่งข้อมูลและสร้างการแยกข้อมูลไว้ที่นั่น การแยกข้อมูลจะมีเฉพาะแถวที่ตรงกับนโยบายข้อมูลการเชื่อมต่อแบบเสมือนในขณะที่สร้างการแยกข้อมูลเท่านั้น หากต้องการใช้ประโยชน์จากการเชื่อมต่อแบบเสมือนกับฟังก์ชันของผู้ใช้ในนโยบายข้อมูล ให้ใช้การเชื่อมต่อแบบเรียลไทม์จากเวิร์กบุ๊กหรือแหล่งข้อมูลไปยังการเชื่อมต่อแบบเสมือนแทนการแยกข้อมูล
ใครสามารถดำเนินการนี้ได้บ้าง
หากต้องการสร้างนโยบายข้อมูล คุณจะต้อง
- มีข้อมูลเข้าสู่ระบบไปยังฐานข้อมูลที่เชื่อมต่อกับการเชื่อมต่อแบบเสมือน และ
- เป็นผู้ดูแลเซิร์ฟเวอร์หรือผู้ดูแลไซต์ หรือ Creator
ขั้นตอนถัดไป
หลังจากที่คุณสร้างนโยบายข้อมูลแล้ว ขั้นตอนถัดไปคือการตรวจสอบว่านโยบายได้ผลตามที่คุณคาดหวังหรือไม่ โปรดดูทดสอบความปลอดภัยระดับแถวกับการดูตัวอย่างในฐานะผู้ใช้ หรือหากคุณพร้อมที่จะแชร์การเชื่อมต่อแบบเสมือนและนโยบายข้อมูลกับคนอื่นๆ แล้ว โปรดดูเผยแพร่การเชื่อมต่อเสมือนและกำหนดสิทธิ์
ทรัพยากร
สำหรับข้อมูลเพิ่มเติมเกี่ยวกับการคำนวณ โปรดดูการทำความเข้าใจการคำนวณใน Tableau(ลิงก์จะเปิดในหน้าต่างใหม่) ในความช่วยเหลือเกี่ยวกับ Tableau Desktop และการเขียนเว็บ
สำหรับข้อมูลเกี่ยวกับฟังก์ชันผู้ใช้ โปรดดูฟังก์ชันผู้ใช้(ลิงก์จะเปิดในหน้าต่างใหม่)ในความช่วยเหลือเกี่ยวกับ Tableau Desktop และการเขียนเว็บ
สำหรับข้อมูลเกี่ยวกับตัวเลือกการรักษาความปลอดภัยระดับแถวอื่นๆ ใน Tableau โปรดดูที ภาพรวมของตัวเลือกการรักษาความปลอดภัยระดับแถวใน Tableau(ลิงก์จะเปิดในหน้าต่างใหม่) ในความช่วยเหลือ Tableau Server