Иллюстрированный самоучитель по SQL для начинающих

Обеспечение безопасности базы данных

"Публика"

В сетевой терминологии словом "public" обозначают всех пользователей, не имеющих специальных полномочий администратора или владельцев объектов, и кому эти привилегированные пользователи специально не предоставили права доступа. Если привилегированный пользователь предоставляет некоторые права доступа PUBLIC, их получают все пользователи системы.

В большинстве установленных баз данных пользовательские полномочия представляют собой иерархическую структуру. В этой структуре полномочия администратора находятся на самом высоком уровне, а полномочия рядовых пользователей – на самом низком. Пример иерархической структуры полномочий приведен на рис. 13.1.

Иллюстрированный самоучитель по SQL для начинающих › Обеспечение безопасности базы данных
Рис. 13.1. Иерархическая структура полномочий доступа

Предоставление полномочий пользователям

В силу своего положения администратор базы данных имеет все полномочия на все ее объекты. Но, в конце концов, владелец объекта имеет на него все полномочия, а база данных сама является объектом. Ни у кого из пользователей не будет полномочий, относящихся к какому-либо объекту, если только их ему специально не предоставит тот, у которого эти полномочия уже есть (а также право их передавать). Предоставлять полномочия кому-либо другому вы можете с помощью оператора GRANT (предоставить). У этого оператора следующий синтаксис:

GRANT СПИСОК-ПОЛНОМОЧИЙ
ON объект
ТО список-пользователей
[WITH GRANT OPTION];

Предложение WITH GRANT OPTION означает "предоставляющий полномочия"; список полномочий в операторе GRANT определяется следующим образом:

ПОЛНОМОЧИЯ [, ПОЛНОМОЧИЯ]…

…или:

ALL PRIVILEGES

В свою очередь, вот как здесь определяются полномочия:

SELECT
| DELETE
| INSERT [(имя-столбца[, имя-столбца]…) ]
| UPDATE [(имя-столбца[, имя-столбца]…)]
|REFERENCES [(имя-столбца[, имя-столбца]…)]
| USAGE
| UNDER
| TRIGGER
| EXECUTE
Если Вы заметили ошибку, выделите, пожалуйста, необходимый текст и нажмите CTRL + Enter, чтобы сообщить об этом редактору.