Программирование >>  Sql: полное руководство 

1 ... 121 122 123 [ 124 ] 125 126 127 ... 264


REVOKE INSERT, UPDATE ON SALESREPS EROM OPUSER

I- revoke -

-grant option for-

- select .

- delete-

- insert-

- update-

references-

- {- имя столбца-j) -

all privileges

on имя та6лицы

usage on

- domain имя домена

- character имя на6ара символов-

- collation имя порядка сортировки-

- translation имя правипа конвертирования -1

from -

имя попьзавателя -public -

-cascade--restrict-

Рис. 15.7. Синтаксическая диаграмма инсгрущии REVOKE

Сначала привилегии insert и update на таблицу salesreps даются двум пользователям, а затем у одного из них отбираются. Однако привилегия select остается у обоих пользователей. Вот еще несколько примеров инструкций revoke.

Отобрать все привилегии, предоставленные ранее на таблицу offices

REVOKE ALL PRIVILEGES ON OFFICES FROM ARUSER

Отобрать привилегии update и delete у двух пользователей.

REVOKE UPDATE, DELETE ON OFFICES FROM ARUSER, OPUSER

Отобрать у всех пользователей все предоставленные ранее привилегии на таблицу

offices

REVOKE ALL PRIVILEGES ON OFFICES FROM PUBLIC

Посредством инструкции revoke вы можете отобрать только те привилегии, которые вы предоставили ранее некоторому пользователю. Y него могут быть также привилегии, предоставленные другими пользователя.ми; ваща инструкция revoke не влияет на эти привилегии Обратите особое внимание на то, что если два разных пользователя предоставляют третьему пользователю одну и ту же привилегию на один и тот же объект, а затем один из них отменяет привилегию, то вторая привилегия остается в силе и по-прежнему разрешает пользователю доступ к объекту Результат такого перекрытия привилегий иллюстрируется на следующем примере



Предположим, что вице-президент по сбыту Сэм Кларк предоставляет Ларри фитчу привилегию select на таблицу salesreps и привилегии select и update ла таблицу orders, используя следующие инструкции;

gfyiNT SELECT ON SALESREPS TO LARRY

GRANT SELECT, UPDATE ON ORDERS TO LARRY

Через несколько дней вице-президент по маркетингу Джордж Уоткинс предоставляет Ларри привилегии select и delete на таблицу orders и привилегию select на таблицу customers, используя такие инсгрукции;

GRANT SELECT, DELETE ON ORDERS TO LARRY

GRANT SELECT ON CUSTOMERS TO LARRY

Заметьте, что Ларри получил привилегии на таблицу orders из двух различных источников. Причем привилегию select на таблицу orders он получил из обоих источников. Несколькими днями позже Сэм отменяет привилегии, предоставленные недавно Ларри на таблицу orders;

REVOKE SELECT, UPDATE ON ORDERS FROM LARRY

После этого у Ларри остается привилегия select на таблицу salesreps, привилегии select и delete на таблицу orders и привилегия select на габлицу customers; но он теряет привилегию update на таблицу orders

Инструкция REVOKE и право предоставления привилегий

Когда вы даете кому-нибудь привилегии с правом последующего предоставления, а затем отменяете эти привилегии, то в большинстве СУБД автоматически отменяются все привилегии, которые являются производными от исходных Рассмотрим еще раз цепочку привилегий, представленных на рис. 15 6, идущую от вице-президента по сбыту Сэма Кларка к менеджеру лос-анджелесского офиса Ларри Фитчу, а затем к Сью Смит. Если теперь Сэм отменит привилегии Ларри на представление Westreps, то привилегии Сью также будут автоматически отменены

Ситуация становится более сложной, если привилегии предоставляются двумя или более пользователями, один из которых впоследствии отменяет привилегии Рассмотрим рис. 15.8. Он представляет собой предыдущий пример в слегка измененном виде. Здесь Ларри получает привилегию select с правом предоставления как от Сэма (вице-президента по сбыту), так и от Джорджа (вице-президента по маркетингу), а затем дает привилегии Сью. На этот раз, когда Сэм отменяет привилегии Ларри, остаются привилегии, предоставленные Джорджем, Привилегии Сью также остаются, поскольку они могут происходить от привилегий Джорджа



(Т) GRANT

WITH GRANT OPTION 0 срдТ

WITH GRANT OPTION

LARRY


Рис 75. S. Отмена привилегий, предоставленных двумя пользователями

Рассмотрим другой вариант этой цепочки привитегий (рис. 15.9), в котором изменен порядок событий. Здесь Ларри получает привилегию с правом предоставления от Сэма, дает эту привилегию Сью и после этого получает привилегию с правом предоставления от Джорджа. Когда на этот раз Сэм отменяет привилегии Ларри, результат будет другим и может отличаться на разных СУБД. Как и в случае, изображенном на рис. 15.8, у Ларри останется привилегия select на представление westreps, предоставленная Джорджем. Но в СУБД DB2 и SQL/DS Сью автоматически потеряет привилегию select. Почему? Потому что привилегия Сью явно происходит от привилегии, данной Ларри Сэмом и только что отмененной. Она не может быть производной от привилегии, предоставленной Ларри Джорджем, так как эта привилегия отсутствовала в тот момент, когда Ларри давал привилегию Сью.

0 GRANT

WITH GRANT OPTION (3J GRANT

WITH GRANT OPTION


LOiRRY

GEORGE 0 GRANT

Рис. 15.9. Отмена привилегий, предоставленных в другой последовательности



1 ... 121 122 123 [ 124 ] 125 126 127 ... 264

© 2006 - 2024 pmbk.ru. Генерация страницы: 0
При копировании материалов приветствуются ссылки.
Яндекс.Метрика