P°φkaz GRANT (SQL)

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_subjektuseznam_sloupc∙ ::= sloupec { , sloupecp°φ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