p°φkaz_GRANT
::=
p°φkaz_GRANT_pro_tabulky
|
p°φ
kaz_GRANT_pro_rutiny
p°φkaz_GRANT_pro_tabulky
::= GRANT
v²Φet_prßv
ON [schema.]jmΘno_tabulky TO
seznam_u₧ivatel∙
[ WITH GRANT OPTION ]
v²Φet_prßv
::= ALL [ PRIVILEGES ] | jednotlivΘ_prßvo {, jednotlivΘ_prßvo }à jednotlivΘ_prßvo ::= DELETE | INSERT | SELECT | UPDATE [(
seznam_sloupc∙
)] | REFERENCES [(
seznam_sloupc∙
)]
seznam_u₧ivatel∙
::= PUBLIC | jmΘno_subjektu {, jmΘno_subjektu }à
seznam_sloupc∙
::= sloupec { , sloupec }à
p°φkaz_GRANT_pro_rutiny
::= GRANT
v²Φet_prßv
ON [ PROCEDURE | FUNCTION ] [schema.]jmΘno_rutiny TO
seznam_u₧ivatel∙
[ WITH GRANT OPTION ]
v²Φet_prßv
::= ALL [ PRIVILEGES ] | jednotlivΘ_prßvo {, jednotlivΘ_prßvo }à jednotlivΘ_prßvo ::= EXECUTE | UPDATE
seznam_u₧ivatel∙
::= PUBLIC | jmΘno_subjektu {, jmΘno_subjektu }à
Popis
P°φkaz GRANT nastavφ prßva k tabulce jmΘno_tabulky nebo SQL rutin∞ jmΘno_rutiny (procedu°e Φi funkci) pro u₧ivatele a skupiny u₧ivatel∙ urΦenΘ v seznamu_u₧ivatel∙.
Pro mo₧n² konflikt jmΘna tabulky a jmΘna rutiny je rozumnΘ rutiny odliÜit slovem PROCEDURE nebo FUNCTION.
Ve v²Φtu_prßv definujete, jakß prßva se majφ nastavit. Pou₧ijete-li slovo ALL, nastavφ se vÜechna mo₧nß prßva. Chcete-li nastavit pouze n∞kterß prßva, jednotliv∞ je vypφÜete a odd∞lφte Φßrkami. K dispozici jsou pro tabulky tato prßva:
Pro rutiny je v²Φet prßv jednoduÜÜφ:
V seznamu_u₧ivatel∙ urΦujete, koho se nastavenφ prßv t²kß. Pou₧ijete-li slovo PUBLIC, prßva se nastavφ pro skupinu EVERYBODY. V jinΘm p°φpad∞ se nastavφ t∞m u₧ivatel∙m a skupinßm, kte°φ jsou uvedeni jmenovit∞. Pou₧ijte-li jmΘno skupiny u₧ivatel∙ (ji₧ definovanΘ na serveru), nastavφ se prßva tΘto skupin∞, tzn. ₧e u₧ivatelΘ v nφ za°azenφ prßva d∞dφ automaticky. Pokud se shoduje jmΘno skupiny se jmΘnem u₧ivatele, p°ednost mß u₧ivatel a tΘto skupin∞ nejde prßvo p°id∞lit.
Pokud u₧ivatel nebo skupina mß ji₧ urΦitß prßva, pak prßva uvedenß v p°φkazu GRANT se k nim p°idajφ.
Uvede-li se klauzule WITH GRANT OPTION, pak u₧ivatelΘ a skupiny zφskajφ mo₧nost svß prßva poskytovat dalÜφm u₧ivatel∙m.
V souΦasnΘ verzi nenφ mo₧nΘ p°φkazem GRANT nastavovat prßva k objekt∙m (v²jimku tvo°φ procedury).
P°φklad pou₧itφ:
Dejte u₧ivateli PETR prßvo mazat zßznamy a editovat Φφslo pracovnφka a jeho plat a spouÜt∞t proceduru Zmena Ceniku.
GRANT DELETE, UPDATE (Plat, Cislo)
ON Zamestan
TO Petr
GRANT EXECUTE
ON PROCEDURE ZmenaCeniku
TO Petr