ARES - RLS Compatibility Mode

Kodu koji mora da radi bez bezbednosnog konteksta ovlašćenja, potrebno je lažno predstavljanje. Nekoliko funkcija i svojstava je dostupno za lažno predstavljanje.
Kada se pokrene naredba EKSECUTE AS, kontekst izvršavanja sesije se prebacuje na navedeno ime za prijavu ili korisničko ime. Nakon promene konteksta, dozvole se proveravaju u odnosu na tokene za prijavu i korisničku bezbednost za navedeni nalog umesto da nalog poziva naredbu EKSECUTE 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, promena konteksta se vraća nazad.
|
 |
UPOZORENJE
Sve funkcije i metode menjaju 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 if RLS is enabled on database.
check: select * from [dbo].[fPA_RLSEnabled]()
- Function SQLToSQLRLSAll(ASQL: String): String;
Converts SQL

- ARES.ExecuteStep_RLS_ALL(3);
Code in 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.
Related topics:
Row Level Security
How RLS works in practice
Upgrade
Database
Code changes