История развития баз данных. Основные понятия и определения. Архитектура базы данных. Физическая и логическая независимость, страница 25

Объект – имя таблицы или представления. Стандарт ANSI не предусматривает, но некоторые реализации SQL позволяют указывать здесь список таблиц или представлений.

Список_пользователей – список пользователей, имя которым назначаются привелегии запятую. Здесь указываются идентификаторы, которые назначаются пользователем. Каждый пользователь может иметь собственный идентификатор или несколько пользователей имеют один идентификатор.

WITHGRANTOPTIONпользователь получает право назначать привилегии другим пользователям.

Пользователь, получивший право доступа к таблице другого пользователя, должен в своих запросах обозначать её как идентификатор_владельца.имя_таблицы.

Пример:

Пусть пользователь Иванов использует следующую команду:

GRANT SELECT, UPDATE ON план_работыTO ПетровWITH GRANT OPTION;

Теперь для просмотра таблицы Петров должен использовать следующий запрос:

SELECT * FROM Иванов.план_работы

Далее, Петров может назначить полномочия другим членам группы:

GRANT SELECT ON Иванов.план_работыTO Сидоров;

Эта команда не меняет владельца таблицы и Сидоров для просмотра таблицы должен использовать эту же команду.

Пользователь может быть лишён права назначать привилегии с помощью команды:

REVOKE список_привилегий ON объект

FROM список_пользователей

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

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

Привилегии, которые не определяются в терминах отдельных объектов, называются системными привилегиями или авторским правом на базу данных. Эти привилегии не стандартизированы и существуют различные подходы к их применению.

Обычно различают следующие виды системных привилегий:

  1. CONNECT – право входа в систему и право создания представлений и синонимов.
  2. RESOURCE – право создавать базовые таблицы.
  3. DBA – привилегия «суперпользователя» (администратора).

Назначение и лишение привилегий осуществляется по команде GRANT или REVOKE.

Пример 1:

Регистрация пользователя в системе.

GRANT CINNECT TO Федоров

PASSWORD пароль_1;

Пример 2:

Удаление пользователя из системы.

REVOKE CINNECT FROM Федоров;

При этом, следует предварительно удалить все объекты, которые он создавал.

4. Определение синонимов объектов. Понятие транзакций. Управление параллелизмом.

Указывать имена таблиц не принадлежащих пользователю в формате идентификатор_влдельца.имя_таблицы не всегда является удобным. Эту проблему решает аппарат назначения синонимов объекту. Для таблицы или представления могут быть определены дополнительные имена (синонимы) по следующей команде:

CREATE [PUBLIC] SINONYM

синоним FROM объект;

Здесь синоним – дополнительное имя, объект – это таблица или представление и PUBLIC определяет общедоступный синоним. Его может создавать только владелец таблицы или администратор базы данных.

Пример:

Пусть пользователь Петров вводит следующую команду:

CREATESINONYM План_Иванова

FOR  Иванов.План_работы;

После этого он может использовать следующую команду:

SELECT * FROM План_Иванова;

При этом, следует отметить, что определение общедоступных синонимов не делает таблицу общедоступной, т.е. привиелегии всё равно нужно назначать по команде GRANT.

Синонимы можно уничтожить по следующей команде:

DROP SINONYM синоним;