Анулиране на привилегии, предоставени на потребителите (оператор REVOKE) - Студопедия
SQL използва командата REVOKE, за да отмени привилегиите, предоставени на потребителите чрез командата GRANT. С това изявление всички или някои от привилегиите, предоставени преди това на посочения потребител, могат да бъдат отменени. Изявлението REVOKE има следния формат:
Ключовата дума ALL PRIVILEGES означава, че всички привилегии, предоставени преди това на посочения потребител от потребителя, който е издал израза, се отменят. Незадължителната конструкция GRANT OPTION FOR позволява всички привилегии, предадени в оригиналния оператор GRANT на клаузата WITH GRANT OPTION, да бъдат отменени, независимо от самите привилегии.
Целта на ключовите думи RESTRICT и CASCADE е същата като в оператора DROP TABLE. Тъй като привилегиите са необходими за създаване на някои обекти, премахването на привилегия може да премахне правото на потребителя да създаде обекта (такива обекти, които нямат собственик, се наричат изоставени). Операторът REVOKE ще бъде отменен, ако резултатът би бил изоставени обекти (като изгледи), освен ако ключовата дума CASCADE не е посочена в него. Ако изразът съдържа ключовата дума CASCADE, тогава всички изоставени обекти (изгледи, домейни, ограничения или проверки), които възникват, когато се изпълни оригиналният оператор REVOKE, автоматично ще издадат оператори DROP.
Привилегиите, които са предоставени на посочения потребител от други потребители, не могат да бъдат засегнати от този оператор REVOKE. Следователно, ако друг потребител също е предоставил на този потребител отменяемпривилегия, посоченият потребител ще запази правото на достъп до съответната таблица. Например фигурата показва, че потребител A е предоставил на потребител B привилегията INSERT в таблицата Staff, като е посочена клаузата WITH GRANT OPTION (стъпка 1). Потребител B е прехвърлил тази привилегия на потребител C (стъпка 2). След това потребител C получи същата привилегия от потребител E (стъпка 3). След това потребител C предостави споменатата привилегия на потребител D (стъпка 4). Когато потребител A отмени привилегията INSERT на потребител B (стъпка 5), тази привилегия не може да бъде отменена и от потребител C, защото той вече я е получил от потребител E. Ако потребител E не е предоставил тази привилегия на потребител C, тогава отнемането на привилегията на потребител B би довело до каскадна загуба на привилегии за потребители C и D.
Пример за резултат от изявление REVOKE
Не намерихте това, което търсихте? Използвайте търсачката: