История развития баз данных. Основные понятия и определения. Архитектура базы данных. Физическая и логическая независимость, страница 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 синоним;