Предоставление полномочий пользователям
Предоставление полномочий пользователям
В силу своего положения администратор базы данных имеет все полномочия на все ее объекты. Но, в конце концов, владелец объекта имеет на него все полномочия, а база данных сама является объектом. Ни у кого из пользователей не будет полномочий, относящихся к какому-либо объекту, если только их ему специально не предоставит тот, у которого эти полномочия уже есть (а также право их передавать). Предоставлять полномочия кому-либо другому вы можете с помощью оператора GRANT (предоставить). У этого оператора следующий синтаксис:
GRANT СПИСОК-ПОЛНОМОЧИЙ
ON объект
ТО список-пользователей
[WITH GRANT OPTION] ;
Предложение WITH GRANT OPTION означает "предоставляющий полномочия"; список полномочий в операторе GRANT определяется следующим образом:
ПОЛНОМОЧИЯ [ , ПОЛНОМОЧИЯ] . . .
или
ALL PRIVILEGES
В свою очередь, вот как здесь определяются полномочия:
SELECT
| DELETE
| INSERT [(имя-столбца[, имя-столбца] . ..) ]
| UPDATE [(имя-столбца[, имя-столбца]...)]
|REFERENCES [(имя-столбца[, имя-столбца] ...)]
| USAGE
| UNDER
| TRIGGER
| EXECUTE
А объект в операторе GRANT определяется таким способом:
[TABLE] <имя таблицы>
|DOMAIN <имя домена>
| COLLATION <имя сопоставления>
| CHARACTER SET <имя символьного набора>
|TRANSLATION <имя трансляции>
| ТУРЕ <схематмчески обозначенный определенный пользователем тип>
|SEQUENCE <имя генератора последовательности спецификатор указателя шаблона>
И наконец, список пользователей в операторе определяется следующим образом:
регистрационное-имя [, регистрационное-имя]...
| PUBLIC
Указанный синтаксис применяется к представлению точно так же, как и к таблице. Полномочия SELECT, DELETE, INSERT, UPDATE и REFERENCES относятся только к таблицам и представлениям. А полномочие USAGE имеет отношение к доменам, наборам символов, сопоставлениям и трансляциям. В последующих разделах приведены различные примеры использования оператора GRANT.