คำถามคือวิธีที่จะสร้าง VPD ในสิทธิ์กับภาษา sql นั้นจะยังหน้ากากข้อมูล

0

คำถาม

ฉันกำลังพยายามสร้าง VPD ในสิทธิ์การใช้ภาษา sql สอบปากคำ. จุดประสงค์ของปัญหาก็คือแล้วเป็นพนักงานอาจจะเพียงมุมมองบันทึกสำหรับพนักงานในหน่วยเดียวกันขณะที่พวกเขาแกล้งทำเพื่อนร่วมงานไม่ใช่แค่เงินของลุงนะอาดัเป็นโพรโทคอล aimcomment.

รหัสสำหรับโต๊ะถูกใช้เป็นที่ติดตาม

create table Employee
(
    ID number primary key,
    DEPT varchar2(25),
    SALARY number(8,2),
    NAME varchar2(25)
); 

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

data-masking oracle sql vpd
2021-11-16 18:11:02
1

คำตอบที่ดีที่สุด

0

เป็นชนพื้นเมืองที่ RLS จะพาคุณเข้าใกล้แต่ไม่ใช่เรื่องนั้น ใช้"sec_relevant_cols"จะให้คุณเลือกใช้ตัวเลือกระหว่าง

  • เดียวที่เห็นคนแถวนั้นตรงกับของคุณ predicate แต่ทั้งหมดที่ค่าเป็นของขวัญ
  • เห็นทั้งหมดแถวแต่แกล้งทำค่าของมันไม่ตรงกับของคุณ predicate

แต่ทว่า(ถ้าฉันอ่านอย่างถูกต้อง)คุณต้องการเห็นเพียง predicate ตรงกับแถวและหน้ากากออกค่าต่างๆเช่นกัน

คุณอาจจะประสบความสำเร็จในส่วนนี้มีสองขั้นวิธีการ

  1. คอนเท็กซ์ของคุณมีกุญแจสองคน(พูด)DEPT และ YOUR_ID

  2. ที่ RLS ข้อกำหนดคือ"อยู่ไหน dept=sys_context(ctx,'DEPT')"

  3. คุณมีมุมมอง EMP ซึ่งนั่นคือข้อกำหนดที่ถูกใช้เป็

     select 
       id, 
       dept, 
       name,
       case when id = sys_context(ctx,'YOUR_ID') then sal else null end sal
     from EMP_TABLE
    
2021-11-17 05:57:22

ฉันจะให้มันยิง! ฉันใช้คอนเท็กซ์นั่นทำให้ผมได้ DEPT ค่าจากใครก็ตามที่เป็นระบบ! ฉันไม่ได้ตระหนักว่าฉันสามารถใช้มันได้อีกเช่นกัน...มันเป็นไปได้ที่จะทำทั้งหมดอยู่ในที่เดียวกันห่อเหรอ?
Venzie

ใช่คอนเท็กซ์มันจะกขาหีบห่อนั่นแล้วไม่ใช่กุญแจ/ค่าภายในบริบท เป็นคอนเท็กซ์สามารถมีกุญแจ/ค่า. "USERENV"คือแบบคลาสสิคตัวอย่างของมัน
Connor McDonald

ในภาษาอื่นๆ

หน้านี้อยู่ในภาษาอื่นๆ

Русский
..................................................................................................................
Italiano
..................................................................................................................
Polski
..................................................................................................................
Română
..................................................................................................................
한국어
..................................................................................................................
हिन्दी
..................................................................................................................
Français
..................................................................................................................
Türk
..................................................................................................................
Česk
..................................................................................................................
Português
..................................................................................................................
中文
..................................................................................................................
Español
..................................................................................................................
Slovenský
..................................................................................................................

ดังอยู่ในนี้หมวดหมู่

ดังคำถามอยู่ในนี้หมวดหมู่