Popis p°φstupov²ch prßv

Platφ od verze 5.0

Hodnota aktußlnφho nastavenφ prßv se zapisuje do struktury o dΘlce 65 bajt∙. Prßva jsou vyjßd°ena jednotliv²mi bity tak, ₧e hodnota 1 znaΦφ p°φtomnost prßva a 0 absenci prßva. Prvnφ bajt mß v²znam pouze p°i specifikovßnφ prßv tabulky jako celku. Obsahuje ·daje t²kajφcφ se vÜech zßznam∙ a vÜech sloupc∙. V dalÜφch 64 bajtech jsou specifikovßna prßva pro jednotlivΘ sloupce. Lze je zadat jak na ·rovni celΘ tabulky, tak i pro urΦit² zßznam.

Globßlnφ prßva

JednotlivΘ bity prvnφho bajtu majφ tento v²znam:

oznaΦenφ hodnota v²znam pozn.
RIGHT_READ 1 prßvo Φφst data v celΘ tabulce #
RIGHT_WRITE 2 prßvo p°episovat data v celΘ tabulce #
RIGHT_INSERT 4 prßvo p°idßvat novΘ zßznamy do tabulky  
RIGHT_DEL 8 prßvo ruÜit zßznamy v tabulce  
RIGHT_GRANT 128 prßvo poskytovat (vlastnφ) prßva  
RIGHT_NEW_READ 16 poskytnout prßvo Φφst k nov²m zßznam∙m *
RIGHT_NEW_WRITE 32 poskytnout prßvo p°episovat k nov²m zßz. *
RIGHT_NEW_DEL 64 poskytnout prßvo zruÜit zßznam k nov²m zßz. *

Prßva oznaΦenß k°φ₧kem (#) lze pou₧φvat pro nastavenφ pouze do verze 4.32, pro zjiÜt∞nφ i ve verzi 5.0. Od verze 5.0 je nutnΘ prßvo Φφst a p°episovat celou tabulku nahradit prßvem Φφst a p°episovat jednotlivΘ sloupce.

Prßva oznaΦenß hv∞zdiΦkou (*) se t²kajφ zßznam∙ (tabulky se zßznamov²mi prßvy), kterΘ budou v budoucnu vlo₧eny do tabulky. Pro ka₧d² vlo₧en² zßznam bude skupin∞ EVERYBODY na zßklad∞ nastavenφ t∞chto bit∙ p°id∞leno prßvo Φφst vÜechny sloupce, p°episovat vÜechny sloupce resp. zruÜit tento zßznam. Mß smysl je p°id∞lovat pouze skupin∞ EVERYBODY funkcφ GetSet_privils.

Prßva ke sloupc∙m tabulky 

Bity dalÜφch (druhΘho atd.) bajt∙ v zßpisu prßv vyjad°ujφ prßvo Φφst resp. p°episovat jednotlivΘ zßznamy. Prßvo Φφst sloupec s Φφslem A je vyjßd°eno X-t²m bitem v N-tΘm bajtu a prßvo p°episovat Y-t²m bitem v N-tΘm bajtu, p°iΦem₧ platφ:

N = (A-1) div 4 + 2

X = 2 * ((A-1) mod 4) + 1

Y = X + 1

Sloupce jsou Φφslovßny od 1, bajty jsou Φφslovßny od 1, bity bajtu jsou Φφslovßny od 1. Prvnφ Φty°i sloupce tabulky jsou popsßny ve druhΘm bajtu, dalÜφ Φty°i ve t°etφm atd.

POZOR! P°i zjiÜ¥ovßnφ Φφsla sloupce nezapome≥te na p°φpadnΘ (skrytΘ) systΘmovΘ sloupce tabulky, kterΘ jsou umφst∞ny p°ed normßlnφmi sloupce!

Nep°edpoklßdßme nastavovßnφ prßv k sloupc∙m za b∞hu aplikacφ. Je-li to p°esto nutnΘ, uva₧ujte o mo₧nosti prßva nastavit podle ji₧ existujφcφch prßv, p°φpadn∞ interaktivn∞ pomocφ funkce Edit_privils.

Prßva k obsahu tabulky se p°id∞lujφ pomocφ funkce GetSet_privils. Alternativnφ cestou je pou₧itφ SQL p°φkazu GRANT.

D∙le₧itΘ: P°i zjiÜ¥ovßnφ a nastavovßnΘ prßv k definici objekt∙ funkcφ GetSet_privils je nutnΘ brßt do ·vahy prßva ke sloupc∙m systΘmovΘ tabulky Tabtab a Objtab, obsahujφcφm definici (a dalÜφ ·daje). Pro definice objekt∙ neplatφ, ₧e v prvnφch dvou bitech prvnφho bajtu struktury jsou globßlnφ prßva. P°i zjiÜ¥ovßnφ Φt∞te bity pat°φcφ 6. sloupci tabulky (3. a 4. bit t°etφho bajtu struktury), p°i zapisovßnφ je nutnΘ nastavit 5. a 6. bit druhΘho bajtu a 3. a₧ 6. bit t°etφho bajtu.

Viz takΘ: Prßva ve WinBase602
  Subjekty prßv ve WinBase602
  Programy ve vnit°nφm jazyce - ·vod