Zuordnung der Policy zur Tabelle:
| 1 | BEGIN |
| 2 | SA_POLICY_ADMIN.APPLY_TABLE_POLICY( |
| 3 | policy_name => 'PERSDAT' |
| 4 | ,schema_name => 'HR' |
| 5 | ,table_name => 'MITARBEITER' |
| 6 | ,table_options => NULL |
| 7 | ,label_function => NULL |
| 8 | ,predicate => NULL |
| 9 | ); |
| 10 | END; |
| 11 | / |
Erzeugen der Label-Werte in der Tabelle:
| 1 | update hr.mitarbeiter |
| 2 | set ma_class = char_to_label('PERSDAT','lta::IT') |
| 3 | where tarifgruppe ='lta' and abteilung = 2; |
| 4 | update hr.mitarbeiter |
| 5 | set ma_class = char_to_label('PERSDAT','tarif::ITZ') |
| 6 | where tarifgruppe not in('lta','at') and abteilung = 21; |
| 7 | update hr.mitarbeiter |
| 8 | set ma_class = char_to_label('PERSDAT','at::VK') |
| 9 | where tarifgruppe ='at' and abteilung = 41; |
| 10 | Anschliessend kann das Setzen der Labels kontrolliert werden. Die Labels werden mit der Funktion label_to_char() lesbar gemacht: |
| 11 | select pnr,name, tarifgruppe, abteilung, |
| 12 | substr(label_to_char(ma_class),1,16) seclabel |
| 1 | from hr.mitarbeiter; |
Ergebnis:
| 1 | 10 HAAS lta 1 LTA::GF |
| 2 | 20 THOMPSON lta 2 LTA::IT |
| 3 | 30 KWAN lta 3 LTA::GF |
| 4 | 50 GEYER lta 4 LTA::GF |
| 5 | 60 STERN at 21 AT::ITZ |
| 6 | 70 PULASKI at 31 AT::FE |
| 7 | 90 HENDERSON at 22 AT::ITD |
| 8 | 100 Roosevelt lta 51 LTA::HR |
| 9 | 110 LUCCHESSI at 41 AT::VK |
| 10 | 130 QUINTANA tg6 1 LTA::GF |
| 11 | 140 Graham tg5 32 TARIF::PRD1 |
| 12 | 150 ADAMSON tg5 21 TARIF::ITZ |
| 13 | 160 PIANKA tg5 21 TARIF::ITZ |
| 14 | 170 YOSHIMURA tg5 21 TARIF::ITZ |
| 15 | 180 Monroe tg5 21 TARIF::ITZ |
| 16 | 190 WALKER tg5 21 TARIF::ITZ |
| 17 | 200 BROWN tg5 21 TARIF::ITZ |
| 18 | 210 JONES tg5 21 TARIF::ITZ |
| 19 | 220 Lopez tg5 21 TARIF::ITZ |
| 20 | 230 JEFFERSON tg5 31 TARIF::FE |
| 21 | 240 MARINO tg5 31 TARIF::FE |
| 22 | 250 SMITH tg5 31 TARIF::FE |
| 23 | 260 JOHNSON tg5 31 TARIF::FE |
| 24 | 270 PEREZ tg5 31 TARIF::FE |
| 25 | 280 SCHNEIDER tg4 22 TARIF::ITD |
| 26 | 290 PARKER tg3 22 TARIF::ITD |
| 27 | 300 SMITH tg4 22 TARIF::ITD |
| 28 | 310 SETRIGHT tg4 22 TARIF::ITD |
| 29 | 320 MEHTA tg5 51 TARIF::HR |
| 30 | 330 LEE tg5 51 TARIF::HR |
| 31 | 340 Ullrich tg5 51 TARIF::HR |
| 32 | 2010 HEMMINGER at 41 AT::VK |
| 33 | 2120 ORLANDO tg5 53 AT::RW |
| 34 | 2140 NATZ tg5 33 TARIF::PRD2 |
| 35 | 2170 YAMAMOTO tg5 21 TARIF::ITZ |
| 36 | 2220 JOHN tg5 21 TARIF::ITZ |
| 37 | 2240 MONTEVERDE tg5 31 TARIF::FE |
| 38 | 2280 SCHWARTZ tg4 22 TARIF::ITD |
| 39 | 2310 SPRINGER tg4 22 TARIF::ITD |
| 40 | 2330 WONG tg5 51 TARIF::HR |
| 41 | 2340 ALONZO tg5 51 TARIF::HR |
| 1 | 120 Connery tg5 32 TARIF::PRD1 |
Fragt der Manager der Abteilung F/E (Forschung und Entwicklung) die Tabelle ohne einschränkende Bedingungen ab, so erhält er auch hier nur die Mitarbeiter seiner Abteilung angezeigt:
| 1 | select pnr, name, gebdat, abtbez, grundgehalt |
| 2 | from hr.mitarbeiter, hr.abteilung |
| 3 | where aid = abteilung; |
| 4 | 2240 MONTEVERDE 31-MAR-54 FE 28760 |
| 5 | 270 PEREZ 26-MAY-53 FE 27380 |
| 6 | 260 JOHNSON 05-OCT-36 FE 17250 |
| 7 | 250 SMITH 12-NOV-39 FE 19180 |
| 8 | 240 MARINO 31-MAR-54 FE 28760 |
| 9 | 230 JEFFERSON 30-MAY-35 FE 22180 |
| 10 | 70 PULASKI 26-MAY-53 FE 36170 |