Инструменты пользователя

Инструменты сайта


revoke

Различия

Здесь показаны различия между двумя версиями данной страницы.

Ссылка на это сравнение

Both sides previous revision Предыдущая версия
revoke [2014/12/27 07:06]
109.195.129.114 [Формат]
revoke [2014/12/27 07:42] (текущий)
109.195.129.114 [Описание]
Строка 61: Строка 61:
 |grantor|Пользователь от имени, которого отзываются привилегии.| |grantor|Пользователь от имени, которого отзываются привилегии.|
 ===== Описание ===== ===== Описание =====
-REVOKE удаляет привилегии доступа к объектам базы данных ​пользователей ​или других объектов ​базы данных. Привилегии это ​операции, для которых пользователь имеет полномочия.+Оператор ​ REVOKE ​ отменяет ​ привилегии ​ для  ​пользователей,  ролей,  
 +хранимых процедур, ​триггеров и представлений выданные оператором ​GRANT.
  
-Следующая ​таблица определяет SQL привилегии:​ +У таблиц ​можно отобрать следующие привилегии:​ 
-^ Привилегия ^ Удаляет привилегию пользователя для... ^ +^ Привилегия ^ Описание ^ 
-|ALL |Выполнять SELECT, DELETE, INSERT, UPDATE ​и EXECUTE.+|ALL |Объединяет привилегии SELECT, INSERT, UPDATE, DELETE и REFERENCES. Отменяет сразу все привилегии ​для ​таблицы или ​представления
-|SELECT |Получать строки из таблицы или ​вида.+|SELECT |Отменяет привилегию на чтение ​из таблицы или ​представления
-|DELETE |Устранять строки из таблицы или ​вида.+|DELETE |Отменяет привилегии на удаление записи из таблицы или ​представления
-|INSERT |Сохранять новые строки в таблицу или вид.+|INSERT |Отменяет привилегию ​на добавление записи в таблицу или ​представление
-|UPDATE |Изменять текущие значения в одном или большем количестве столбцов ​в таблице или ​виде. Может быть ограниченно определенным подмножеством ​столбцов.| +|UPDATE |Отменяет привилегию на изменение ​записи в таблице или представлении| 
-|EXECUTE |Выполнять сохраненные процедуры.| +|REFERENCES |Отменяет возможность ссылаться на указанные ​столбцы ​внешним ключом|
-|GRANT OPTION FOR |удаляет, для пользователь перечисленных справа, возможность предоставлять (GRANT) привилегии другим пользователям|+
  
-:!: Следующие ​ограничения должны быть отмечены для REVOKE:+У хранимых процедур можно отобрать привилегию EXECUTE. Она позволяет выполнять хранимые процедуры и делать выборку данных из процедур выбора (с помощью оператора SELECT).
  
-* Только пользователькоторый предоставил привилегию,​ может отменить эту привилегию.+В предложении FROM указывается список пользователейролей и объектов базы данных (процедур, триггеров и представлений) у которых будут отняты перечисленные ​привилегии. Необязательные предложения USER и ROLE позволяют уточнитьу кого именно выдается привилегия. Если ключевое слово USER или ROLE  не указано, ​то сервер проверяет,​ существует ли роль с данным именем, если таковой не существует, то привилегии отбираются у пользователя. Если привилегия отбирается у объекта базы данных,​ то необходимо обязательно указывать тип объекта.
  
-* Конкретному пользователю могут быть назначены те же привилегии ​на объекты базы данных любым количеством других пользователей. REVOKE ​исполненный пользователем удаляет только те привилегии, которые назначенные этим конкретным ​пользователем.+Только пользователь, который назначил привилегию,​ может удалить ​ее. Если ​привилегии были назначены специальному пользователю PUBLIC, ​то отменять привилегии необходимо для ​пользователя PUBLIC. Специальный пользователь PUBLIC используется, когда необходимо предоставить ​привилегии ​сразу всем пользователям. Однако ​не следует рассматривать PUBLIC ​как группу ​пользователей.
  
-* Привилегии, ​предоставленные всем пользователям с помощью PUBLIC, могут быть удалены только удалением привилегий для ​PUBLIC+Необязательное предложение GRANT OPTION FOR отменяет для соответствующего пользователя ​или роли ​право предоставления другим пользователям ​или ролям привилегии к таблицам,​ представлениям, триггерам,​ хранимым процедурам.
  
 +Другое назначение оператора REVOKE в отборе назначенных группе пользователей ролей оператором GRANT. В этом случае после предложения REVOKE следует список ролей, которые будут отозваны у списка пользователей,​ указанных после предложения FROM.
 +
 +Необязательное предложение ADMIN OPTION FOR отменяет ранее предоставленную административную опцию (право на передачу предоставленной пользователю роли другим) из грантополучателей,​ не отменяя прав на роль. В одном операторе могут быть обработаны несколько ролей и/или грантополучателей.
 +
 +При предоставлении прав в базе данных в качестве лица, предоставившего эти права, обычно записывается текущий ​ пользователь. Используя предложение GRANTED BY можно предоставлять права от имени другого пользователя. При использовании оператора REVOKE после GRANTED BY права будут удалены только в том случае,​ если они были зарегистрированы от удаляющего пользователя. Для облегчения миграции из некоторых других реляционных СУБД нестандартное предложение AS поддерживается как синоним оператора GRANTED BY.
 +
 +Предложение GRANTED BY может использовать:​
 +  * Владелец базы данных;​
 +  * SYSDBA;
 +  * Любой пользователь,​ имеющий права на роль RDB$ADMIN и указавший ее при соединении с базой данных;​
 +  * При использовании флага AUTO ADMIN MAPPING - любой администратор операционной системы Windows (при условии использования сервером доверенной авторизации - trusted authentication),​ даже без указания роли.
 +
 +Даже владелец роли не может использовать GRANTED BY, если он не находится в вышеупомянутом списке.
 +
 +Если после ключевого слова REVOKE указано предложение ALL ON ALL, то это позволяет отменить все привилегии (включая роли) на всех объектах от одного или более пользователей и/или ролей. Это - быстрый способ "​очистить" ​
 +(отобрать) права, когда пользователю должен быть заблокирован доступ к базе данных.
 +//
 +Примечания://​
 +  * Когда оператор REVOKE ALL ON ALL вызывается привилегированным пользователем ​ (владельцем ​ базы ​ данных,​ SYSDBA или любым пользователем,​ у которого CURRENT_ROLE - RDB$ADMIN), удаляются все права независимо от того, кто их  предоставил. В противном случае удаляются только права, предоставленные текущим пользователем;​
 +  * Не поддерживается предложение GRANTED BY;
 +  * Этот оператор не удаляет флаг пользователя,​ давшего права на хранимые процедуры,​ триггеры или представлений (права на такие объекты конечно удаляются).
 ===== Пример ===== ===== Пример =====
 Следующая инструкция отнимает привилегию SELECT на таблицу от пользователя:​ Следующая инструкция отнимает привилегию SELECT на таблицу от пользователя:​
revoke.txt · Последние изменения: 2014/12/27 07:42 — 109.195.129.114