ARES - RLS Compatibility Mode

Kodu koji mora da radi bez sigurnosnih ovlašćenja, potrebna je impersonacija. Nekoliko funkcija i svojstava je dostupno za impersonaciju.
Kada se pokrene naredba EXECUTE AS, kontekst izvršavanja sesije se prebacuje na navedeno ime za prijavu ili korisničko ime. Nakon promjene konteksta, dozvole se provjeravaju u odnosu na tokene za prijavu i korisničku sigurnost za navedenog korisnika umjesto da login poziva naredbu EXECUTE AS.
Check the following code:
Select USER_NAME()
execute as user = 'RLS_ALL'
Select USER_NAME()
revert
Select USER_NAME()
Result:

 |
UPOZORENJE
Revert se mora pozvati! Korisnik ili nalog za prijavu se lažno predstavlja tokom trajanja sesije ili izvršavanja modula. Nakon toga, promjena konteksta se vraća nazad.
|
 |
UPOZORENJE
Sve funkcije i metode mjenjaju kod samo kada je IsRLS = True
|
Isti kod se može koristiti na bazama sa RLS-om ili na onima bez RLS.
- IsRLS: returns True ako je RLS omogućen na bazi.
check: select * from [dbo].[fPA_RLSEnabled]()
- Function SQLToSQLRLSAll(ASQL: String): String;
Konvertuje SQL

- ARES.ExecuteStep_RLS_ALL(3);
Code and step 3 will be executed using SQLToSQLRLSAll.
- ExecuteAsUser_RLS_ALLSQL
Use in try-finally statements.
- ExecuteAsUser_RLS_ALLSQL(True): execute as user = 'RLS_ALL' statement is run
- ExecuteAsUser_RLS_ALLSQL(False): revert statement is run

- Property TdlDataset.ExceuteAs_RLS_ALL := True;
Code TdlDataset.SQL.Text will be executed using SQLToSQLRLSAll.
Povezane teme:
RLS- Sigurnost podataka na nivou reda
Kako RLS djeluje u praksi
Nadogradnja
Baza podataka
Promjene koda