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

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


revoke

Различия

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

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

Both sides previous revision Предыдущая версия
Следущая версия
Предыдущая версия
revoke [2013/04/18 16:12]
193.105.11.73
revoke [2014/12/27 07:42]
109.195.129.114 [Описание]
Строка 7: Строка 7:
 ===== Формат ===== ===== Формат =====
 <​code>​ <​code>​
-REVOKE [GRANT OPTION FOR]{ +REVOKE ​
-{ALL [PRIVILEGES] | SELECT ​DELETE | INSERT +  ​[GRANT OPTION FOR] <​privileges>​ 
-    | UPDATE [(col [, col ...])]+  ​ON ​[TABLE{tablename ​viewname}  
-    ON [TABLE] ​{tablename ​viewname+  FROM {  <​object_list>​  
-    FROM {<object> | <userlist>}+    ​<​user_list>​ 
 +    | GROUP Unix_group}  
 +  | EXECUTE ​ON PROCEDURE procname 
 +  FROM  <​object_list>​ 
 +    ​<​user_list>​ 
 +    | GROUP Unix_group}  
 +    ​| [ADMIN OPTION FOR] <​role_grantee_list> ​FROM {PUBLIC |  
 +    ​<role_grantee_list>}  
 +} [{GRANTED BY AS} [USER] grantor] 
 +| ALL ON ALL FROM <user_list>;
  
-  };+<​privileges>​ ::= ALL [PRIVILEGES] | <​privilege_list>​
  
-<object> = PROCEDURE procname ​TRIGGER trigname ​VIEW viewname +<privilege_list::
-  | [USERusername ​PUBLIC ​[, <object>]+SELECT 
 +DELETE 
 +INSERT 
 +UPDATE ​[(col [,col …])] 
 +REFERENCES [(col [,col …])] 
 +[, <privilege_list]
  
-<userlist> = [USER] username [, [USER] username ​...]+<object_list::= { 
 +PROCEDURE procname 
 +| TRIGGER trigname 
 +| VIEW viewname 
 +| PUBLIC 
 +} [, <​object_list>​ …] 
 + 
 +<​user_list>​ ::= { 
 +[USER] username 
 +| [ROLE] rolename 
 +| Unix_user 
 +} [, <​user_list>​ …] 
 + 
 +<​role_granted>​ ::= rolename [, rolename …] 
 + 
 +<​role_grantee_list>​ ::= [USER] username [, [USER] username ​ …]
 </​code>​ </​code>​
 +
 ^ Аргумент ^ Описание ^ ^ Аргумент ^ Описание ^
-|GRANT OPTION FOR |Удаляет полномочие предоставлять привилегии, перечисленные в инструкции REVOKE, ​для пользователей <​userlist>​. Не может ​быть ​использовано с <​object>​.| +|tablename|Имя таблицы, у которой должна быть отозвана ​привилегия. | 
-|col |Столбец, для которого предоставленные привилегии ​применяются. | +|viewname|Имя ​представления, у которого ​должна быть отозвана привилегия. | 
-|tablename ​|Имя ​существующей таблицы, ​для ​которой предоставленные привилегии применяются. | +|procname|Имя хранимой процедуры, для которой должна быть отозвана ​привилегия EXECUTE или у которой ​должны быть отозваны привилегии.| 
-|viewname ​|Имя ​существующего вида, для которого ​предоставленные привилегии ​применяются. | +|trigname|Имя ​триггера.| 
-|<​object> ​|Имя пользователя или существующего объекта базы данных, чьи ​привилегии ​будут удалены. | +|col|Столбец таблицы, ​у которого должна быть отозвана ​привилегия. | 
-|<​userlist>​ |Список пользователей, ​чьи привилегии будут удалены.|+|username|Имя ​пользователя, у которого отзываются ​привилегии ​или у которого отнимается ​роль.| 
 +|rolename|Имя ​роли.| 
 +|Unix_group|Имя группы ​пользователей в операционных системах семейства UNIX.| 
 +|grantor|Пользователь от имени, ​которого отзываются ​привилегии.| 
 +===== Описание ===== 
 +Оператор  REVOKE ​ отменяет ​ привилегии ​ для  ​пользователей, ​ ​ролей,​  
 +хранимых ​процедур,​ триггеров и представлений выданные оператором GRANT.
  
 +У таблиц можно отобрать следующие привилегии:​
 +^ Привилегия ^ Описание ^
 +|ALL |Объединяет привилегии SELECT, INSERT, UPDATE, DELETE и REFERENCES. Отменяет сразу все привилегии для таблицы или представления|
 +|SELECT |Отменяет привилегию на чтение из таблицы или представления|
 +|DELETE |Отменяет привилегии на удаление записи из таблицы или представления|
 +|INSERT |Отменяет привилегию на добавление записи в таблицу или представление|
 +|UPDATE |Отменяет привилегию на изменение записи в таблице или представлении|
 +|REFERENCES |Отменяет возможность ссылаться на указанные столбцы внешним ключом|
  
-===== Описание ​===== +У хранимых процедур можно отобрать привилегию EXECUTE. Она позволяет выполнять хранимые процедуры и делать выборку данных из процедур выбора (с помощью оператора SELECT). 
-REVOKE удаляет привилегии доступа к объектам базы данных пользователей или других объектов базы данных. ​Привилегии ​это операции,​ для которых пользователь имеет полномочия.+ 
 +В предложении FROM указывается список пользователей,​ ролей и объектов базы данных ​(процедур, триггеров и представлений) у которых будут отняты перечисленные привилегии. Необязательные предложения USER и ROLE позволяют уточнить,​ у кого именно выдается привилегия. Если ключевое слово USER или ​ROLE  не указано,​ то сервер проверяет,​ существует ли роль с данным именем,​ если таковой не существует,​ то привилегии отбираются ​у пользователя. Если привилегия отбирается у объекта базы данных, то необходимо обязательно указывать тип объекта. 
 + 
 +Только пользователь,​ который назначил привилегию, может удалить ее. Если привилегии были назначены специальному пользователю PUBLIC, то отменять привилегии необходимо для пользователя PUBLIC. Специальный пользователь PUBLIC ​используетсякогда необходимо предоставить привилегии сразу всем пользователям. Однако не следует рассматривать PUBLIC как группу ​пользователей. 
 + 
 +Необязательное предложение GRANT OPTION FOR отменяет для соответствующего ​пользователя или роли право предоставления другим пользователям или ролям привилегии к таблицам,​ представлениям, триггерам,​ хранимым процедурам.
  
-Следующая таблица определяет SQL привилегии:​ +Другое назначение оператора REVOKE ​в отборе назначенных группе пользователей ролей оператором GRANTВ этом случае после ​предложения ​REVOKE следует список ролей, которые будут отозваны ​у списка пользователей, указанных после предложения FROM.
-^ Привилегия ^ Удаляет привилегию ​пользователя для... ^ +
-|ALL |Выполнять SELECT, DELETE, INSERT, UPDATE и EXECUTE.| +
-|SELECT |Получать строки из таблицы или вида.+
-|DELETE |Устранять ​строки из таблицы или вида.| +
-|INSERT |Сохранять новые ​строки в таблицу или вид.| +
-|UPDATE |Изменять текущие значения ​в одном или большем количестве столбцов в таблице или виде. Может быть ​ограниченно определенным подмножеством столбцов.| +
-|EXECUTE |Выполнять сохраненные процедуры.| +
-|GRANT OPTION FOR |удаляет, для ​пользователь перечисленных ​справа, возможность предоставлять (GRANT) ​привилегии ​другим пользователям|+
  
-:!: Следующие ограничения должны быть отмечены для REVOKE:+Необязательное предложение ADMIN OPTION FOR отменяет ранее предоставленную административную опцию (право на передачу предоставленной пользователю роли другим) из грантополучателей,​ не отменяя прав на роль. В одном операторе могут ​быть ​обработаны несколько ролей и/или грантополучателей.
  
-* Только пользователь, который предоставил привилегию, может отменить эту привилегию.+При предоставлении прав в базе данных в качестве лица, предоставившего эти права, обычно записывается текущий  ​пользователь. Используя предложение GRANTED BY можно ​предоставлять ​права от имени другого пользователя. При использовании оператора REVOKE после GRANTED BY права будут удалены только в том случае, если они были зарегистрированы от удаляющего ​пользователя. Для облегчения миграции из некоторых других реляционных СУБД нестандартное предложение AS поддерживается как синоним оператора GRANTED BY.
  
-* Конкретному пользователю могут быть назначены те же привилегии на объекты ​базы данных ​любым количеством других ​пользователей. REVOKE ​исполненный пользователем удаляет только те привилегии, которые назначенные этим конкретным пользователем.+Предложение GRANTED BY может использовать
 +  * Владелец базы данных
 +  * SYSDBA; 
 +  * Любой пользователь, имеющий права на роль RDB$ADMIN и указавший ее при соединении с базой данных; 
 +  * При использовании флага AUTO ADMIN MAPPING - любой администратор операционной системы Windows (при ​условии использования сервером доверенной авторизации - trusted authentication),​ даже без указания роли.
  
-* Привилегии, предоставленные всем пользователям с помощью PUBLIC, могут быть удалены только удалением привилегий для PUBLIC+Даже ​владелец роли не может использовать 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