SQL1

ÎÒÌÅÍÀ ÏÐÈÂÈËÅÃÈÉ


Òàêæå êàê ANSI ïðåäîñòàâëÿåò êîìàíäó CREATE TABLE, ÷òîáû ñîçäàòü òàáëèöó, à DROP TABLE - ÷òîáû îò íåå èçáàâèòüñÿ, òàê è êîìàíäà GRANT ïîçâîëÿåò âàì äàâàòü ïðèâèëåãèè ïîëüçîâàòåëÿì, íå ïðåäîñòàâëÿÿ ñïîñîáà îòîáðàòü èõ îáðàòíî.

Óäàëåíèå ïðèâèëåãèè âûïîëíÿåòñÿ êîìàíäîé REVOKE, ôàêòè÷åñêè - ñòàíäàðòíîìó ñðåäñòâó ñ äîñòàòî÷íî ïîíÿòíîé ôîðìîé çàïèñè. Ñèíòàêñèñ êîìàíäû REVOKE ïîõîæ íà GRANT, íî èìååò îáðàòíûé ñìûñë.

×òîáû óäàëèòü ïðèâèëåãèþ INSERT äëÿ Adrian â òàáëèöå Çàêàçîâ, âû ìîæåòå ââåñòè

REVOKE INSERT ON Orders FROM Adrian;

Èñïîëüçîâàíèå ñïèñêîâ ïðèâèëåãèé è ïîëüçîâàòåëåé çäåñü äîïóñòèìû, êàê è â ñëó÷àå ñ GRANT, òàê ÷òî âû ìîæåòå ââåñòè ñëåäóþùóþ êîìàíäó:

REVOKE INSERT, DELETE ON Customers FROM Adrian, Stephen;

Îäíàêî çäåñü èìååòñÿ íåêîòîðàÿ íåÿñíîñòü. Êòî èìååò ïðàâî îòìåíÿòü ïðèâèëåãèè? Êîãäà ïîëüçîâàòåëü ñ ïðàâîì ïåðåäàâàòü ïðèâèëåãèè äðóãèì, òåðÿåò ýòî ïðàâî, ïîëüçîâàòåëè, êîòîðûì îí ïðåäîñòàâèë ýòè ïðèâèëåãèè, òàêæå èõ ïîòåðÿþò?

Òàê êàê ýòî íåñòàíäàðòíàÿ îñîáåííîñòü, íåò íèêàêèõ àâòîðèòåòíûõ îòâåòîâ íà ýòè âîïðîñû, íî íàèáîëåå îáùèé ïîäõîä òàêîâ:

  • Ïðèâèëåãèè îòìåíÿþòñÿ ïîëüçîâàòåëåì, êîòîðûé èõ ïðåäîñòàâèë, è îòìåíà áóäåò êàñêàäèðîâàòüñÿ, òî åñòü îíà áóäåò àâòîìàòè÷åñêè ðàñïðîñòðàíÿòüñÿ íà âñåõ ïîëüçîâàòåëåé, ïîëó÷èâøèõ îò íåãî ýòó ïðèâèëåãèþ.


  • Ñîäåðæàíèå ðàçäåëà