Spremembe kode

- Spremenite SQL objekte
- ARES
- Spremembe kode - primer 1
- Spremembe kode - primer 2
|
1. Spremenite SQL obejkte
SQL: doda WITH EXECUTE AS 'RLS-ALL'
Poizvedbe, ki potrebujejo dostop do vseh podatkov ne glede na pooblastila uporabnika, je treba premakniti v SQL objekte (shranjene procedure, funkcije, ...) in jih izvesti z lažnim predstavlanjem AS USER 'RLS_ALL'.
a) Primer: Najdi zadnji acKey v tHE_Move:
Pri vstavlanju zapisov je za vstalavnje dokumenta potreben nov acKey.
Uporabnik, ki vstavlja zapis, nima pooblastila za vse dokumente (za določeno vrsto dokumenta), saj so pooblastila odvisna od oddelka, skladišča in/ali kateregakoli pooblastila, zato je potrebno izvesti tak SQL brez pooblastilnih omejitev.
Preverite shranjeno proceduro pHE_MoveGetNewKey

Opomba: WITH EXECUTE AS 'RLS_ALL' se lahko uporablja v pogledih, sprožilcih, funkcijah (razen funkcij z vrednostjo vrstic v tabeli).
b) Preverite tudi:
gPA_SetDoctype_security
pMN_DocumentNewKey
Poiščite RLS_ALL lažne objekte:
select SO.*, OBJECT_DEFINITION(SO.object_id)
from sys.objects SO
where OBJECT_DEFINITION(SO.object_id) lie '%RLS_ALL%'
2. ARES
a) Spremenite skripte PL / SQL
Za lažno predstavlanje celotne skripte PLS / SQL uporabite EXECUTE AS USER = 'RLS_ALL'.
Primer preverite na DevSite.

 |
Ista koda se ustvari pri uporabi lastnosti Dataset-a. |
 |
Uporabite pripravljene metode če želite uporabljati to funkcionalnost. |
Preverite tudi združljivostni način za ARES.
b) ARES and SQL: Remove joins to t%Security tables in SQL and PL/SQL code
Check vHE_Move changes

Joins to t%UserSecurity tabelo moramo odstraniti. RLS navzkrižno vpelje t%UserSecurity tabele kot varnostno politiko in funkcijo vsake tabele. Za bolj podrobne informacije preverite arhitekturo RLS.
3. Spremembe kode – vzorec 1:
Objekti, ki potrebujejo dostop brez dovolenj je treba spremeniti z dodajanjem:
with execute as 'RLS_ALL'

4. Spremembe kode – vzorec 2:
create procedure [dbo].[pHE_MoveGetNewKey]
@cPoslDog varchar(04),
@dDatum DATETIME,
@cKljuc varchar(13) = '' OUTPUT
WITH EXECUTE AS 'RLS_ALL'