Podle me mate tri moznosti:

- zkuste to bez predpocitani, vytvorte si nejaky reprezentativni
vzorek dat a na nem udelejte vykonostni test
- pouzijte predpocitani, dle meho nazoru zmena tech ACL pripadne
nejakych roli nemusi byt tak casta
- uplne se na to vykaslete pri vypisovani seznamu zaznamu, proste bude
listovat vsechny a pro ty, ktere nema pravo nepovolite danou akci. V
podstate udelate vzdy dotaz jestli ma clovek opravneni na to s danym
zaznamem pracovat. Da se to udelat i batchove jednim dotazem pro
nactenou stanku.

2009/8/5  <[email protected]>:
> Ahoj,
>
> vyvíjíme standartní obchodní evidenční systém s trochu sofistikovanější 
> agendou přístupových práv, ktará je postavena na přístupových rolích 
> uživatelů a vztahů těchto rolí k jednotlivým entitním objektům (uloženým 
> záznamům v db) systému. Oprávnění na každou operaci (CRUD) na daném objektu 
> se vyhodnocují podle složitých pravidel závislých na hodnotách jejích 
> atributů a jejich vztahu k rolím přiděleným danému uživateli. Navíc se role 
> mohou různě sčítat apod, zkrátka pravidla a algoritmy pro vyhodnocení 
> povolení operace nad daným záznamem pro konkrétního uživatele jsou dost 
> složitá. Analyticky máme celý systém vytvořen, ten zjednodušeně pro každý 
> záznam  vyhodnotí přístupová práva pro daného uživatele a případně povolí 
> nebo zamítne požadovanou operaci. Nastává však problém v návrhové rovině, 
> např. při generování seznamů. Pokud bude chtít uživatel zobrazit 
> stránkovatelný seznam všech záznamů, musí se mu samozřejmě zobrazit jen ty, u 
> kterých má právo čtení. Nedokážu si z výkonostního hlediska představit, že 
> pro každý uložený záznam, kterých můžou být  i miliony, budu až při 
> generování seznamu ověřovat, zda jej má užvatel právo zobrazit nebo ne, pro 
> každý záznam by se pak spouštěly složité algoritmy pro ověření práv a pokud 
> by měl ve finále uživatel právo třeba na méně záznamů než kolik je 
> zobrazovaných záznamů na stránku musely by se projít třeba i všechny záznamy. 
> Zatím se jako jedno z řešení jeví, předpočítávat si konečná oprávnění pro 
> danou operaci, uživatele a záznam někde na pozadí, ukládat si je do nějaké 
> pomocné tabulky a při generování seznamu prostě jen tuto tabulku připojit. 
> Toto ale zase vyvolává problém s aktualizacemi těchto pomocných tabulek, 
> pokud se v runtime stane něco co by mohlo mít vliv na konečná oprávnění 
> (např. změna rolí uživatelů, pravidel vyhodnocenování apod), budou se muset 
> celé aktualizovat, což při celkovém počtu entit systému X (stovky) počet 
> záznamů každé enity (statisíce) X počet uživatelů (tisíce)  bude opět 
> znamenat výkonostní problém. Myslím, že tady už určitě někdo řešil něco 
> podobného, proto bych byl vděčen za jakékoliv poznatky jak to třeba řešíte vy.
>
> Díky
>



-- 
S pozdravem Roman "Dagi" Pichlik

/* http://www.sweb.cz/pichlik/ Blog pro kodery */

Odpovedet emailem