Отзыв привилегий объектного уровня
В стандарте SQL:2003 не существует различий между привилегиями системного и объектного уровней; в нем определен только один синтаксис. В конкретных реализациях СУБД ситуация усложняется. В случае отзыва привилегий объектного уровня инструкция REVOKE может быть достаточно сложной. Информация, изложенная в настоящей книге, охватывает лишь основы реализаций данной операции в разных СУБД; более подробные сведения можно получить в соответствующей документации. Синтаксис Oracle 11g отзыва объектных привилегий практически соответствует стандарту, за исключением дополнительных необязательных предложений, таких как JAVA и DIRECTORY (в целях упрощения синтаксиса они опускаются). Объектной привилегией может быть любая, перечисленная в табл. 12.3 (если она уместна для объекта). В предложении COLUMN определяется столбец (или список столбцов), для которого применяется инструкция. Объектом, для которого отзывается привилегия, может быть любой объект базы данных. Привилегия может быть отозвана у пользователя, роли или категории PUBLIC. Пользователь, у которого отозвана привилегия, не сможет ею воспользоваться сразу же после выполнения инструкции. Если привилегия отзывается у роли, все пользователи, принадлежащие данной роли, немедленно теряют данную привилегию. Привилегия, отзываемая у категории PUBLIC, становится недоступной всем пользователям, которым была назначена с помощью данной категории. Однако если пользователь получил привилегию непосредственно или с помощью роли, инструкция отзыва не будет иметь эффекта. Следующая инструкция отзывает привилегии INSERT, DELETE и UPDATE для столбцов CUST_PAYTERMSID_FN и CUST_SALESMAN_ID таблицы CUSTOMER у категории PUBLIC (предполагается, что они были ранее назначены). Все зависимые объекты (к примеру, представления, созданные пользователем, который утратил привилегию доступа к соответствующим таблицам) становятся недоступными.
Предложение CASCADE CONSTRAINTS уместно только в случае отзыва привилегий REFERENCES или ALL. При этом очищаются все ограничения ссылочной целостности, определенные пользователем, который пользуется данной привилегией.