Как мы сформулировали выше, в широком понимании привилегия - это разрешение на выполнение конкретной операции над конкретным объектом. Однако, объекты, на которые распространяются привилегии имеют сложную структуру
Привилегии базы данных - включают в себя действия над базой данных в целом, в том числе привилегии:
CONNECT - разрешение на доступ к базе данных;
BINDADD - разрешение на создание новых пакетов в базе данных;
CREATETAB - разрешение на создание новых таблиц в базе данных.
Привилегии таблиц и представлений - включают в себя разрешение на действия над определенными таблицами / представлениями, в том числе привилегии:
CONTROL - привилегия владельца, включает в себя все другие привилегии для таблицы / представления, а также разрешения удалять ее и давать / забирать привилегии для данной таблицы / представления другим пользователям / группам. Создатель таблицы автоматически получает для нее привилегию CONTROL, создатель представления получает привилегию CONTROL только в том случае, если он имеет эту привилегию для всех таблиц, входящих в определение представления. Привилегия CONTROL может быть дана / отобрана пользователем с полномочиями SYSADM или DBADM (это справедливо и для всех объектных привилегий, описанных ниже).
ALL - все привилегии, перечисленные ниже.
ALTER - разрешение на изменение таблицы (добавление столбцов, добавление / изменение / уничтожение ограничений целостности, создание триггеров для таблицы). Однако, для выполнения таких изменений, которые затрагивают другие таблицы / представления, пользователь должен иметь также соответствующие привилегии по отношению к этим другим таблицам / представлениям.
DELETE - разрешение на удаление строк из таблицы / представления.
INDEX (только таблица) - разрешение на создание индекса к таблице.
INSERT - разрешение на вставку строк в таблицу / представление и выполнение утилиты IMPORT.
REFERENCES (только таблица) - разрешение на создание внешних ключей, ссылающихся на данную таблицу. Эта привилегия может быть ограничена выбранными столбцами.
SELECT - разрешение на выборку строк из таблицы / представления, создание представления на базе данной таблицы / представления таблицы и выполнение утилиты EXPORT.
UPDATE - разрешение на изменение значений в столбцах таблицы / представления. Эта привилегия может быть ограничена выбранными столбцами.
Язык SQL предусматривает права:
SELECT – читать таблицу;
INSERT – добавлять данные;
UPDATE – изменять данные таблицы;
DELETE – удалять данные из таблицы;
REFERENCES – определять первичный ключ.
Назначение прав осуществляется командой GRANT, а лишение прав – REVOKE.
Примеры:
GRANT SELECT ON STUDENT TO IVANOVA;
(дать права Ивановой на редактирование таблицы Студент)
REVOKE INSERT, DELETE ON STUDENT FROM PETROV;
(забрать права у Петрова на добавление и удаление записей в таблице Студент)
Вопрос 27. Охарактеризуйте системы совместного использования файлов. Прокомментируйте архитектуру "файл-сервер". Интерпретируйте целесообразность её использования
При наличии компьютерной сети открывается возможность хранить и использовать в многопользовательском режиме централизованные БД, размещаемые на одном компьютере – сервере сети. В этом случае каждый пользователь своего ПК получает доступ к общей для всех пользователей централизованной БД. Существуют различные концепции сетевой обработки данных.
Рассмотрим архитектуру с совместным использованием файлов, которая была разработана до клиент/серверной архитектуры и во многих отношениях является достаточно упрощенной.
Почти во всех системах с совместным использованием файлов применяются локальные сети. Для этой архитектуры характерен коллективный доступ к общей БД на сервере, который является файловым сервером. Файловый сервер содержит файлы, необходимые для работы приложений и самой СУБД. Он обеспечивает функционирование той части сетевой версии СУБД, которая осуществляет управление данными в БД. Однако пользовательские приложения и сама сетевая СУБД размещены и функционируют на отдельных рабочих станциях и обращаются к файловому серверу по мере необходимости.