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 |