Предложение WITH GRANT OPTION
Предложение WITH GRANT OPTION указывает на то, что пользователю предоставляется право делегировать свои привилегии другим пользователям и ролям. Предложение with hierarchy option (входящее в стандарт SQL:2003, но реализованное только в Oracle) имеет отношение только к объектно-ориентированным средствам СУБД, указывая на то, что назначенные для объекта привилегии распространяются и на все его дочерние объекты. Этот параметр имеет значение только при назначении для данного объекта привилегии SELECT. В Oracle 11g предложение with grant option может быть определено только при назначении привилегий пользователю или категории public; оно недопустимо при назначении привилегий роли. Приведем менее запутанный пример. В нем все привилегии назначаются для таблицы PRODUCT базы данных ACME роли SALES_FORCE. Все принадлежащие этой роли пользователи смогут воспользоваться данной привилегией после выполнения инструкции. В IBM DB2 реализован, пожалуй, наиболее запутанный синтаксис назначения привилегий объектного уровня. В дополнение к привилегиям, перечисленным в табл. 12.7, существует и масса собственных (табл. 12.8). Каждая из этих привилегий определяется некоторым набором правил. Эти привилегии не переносятся между разными объектами. Более полную информацию о данных привилегиях можно получить в документации DB2 (или в посвященных ей книгах) К примеру, чтобы назначить привилегию, относящуюся к таблице (создание внешнего ключа, основанного на столбце таблицы), всем пользователям (категории PUBLIC), можно выполнить следующую инструкцию. Данная привилегия дает право создавать и удалять внешний ключ, ссылающийся на таблицу (как на родительский объект). Естественно, предоставляющий эту привилегию сам должен иметь достаточные для выполнения инструкции GRANT права.