Объект – имя таблицы или представления. Стандарт ANSI не предусматривает, но некоторые реализации SQL позволяют указывать здесь список таблиц или представлений.
Список_пользователей – список пользователей, имя которым назначаются привелегии запятую. Здесь указываются идентификаторы, которые назначаются пользователем. Каждый пользователь может иметь собственный идентификатор или несколько пользователей имеют один идентификатор.
WITHGRANTOPTION – пользователь получает право назначать привилегии другим пользователям.
Пользователь, получивший право доступа к таблице другого пользователя, должен в своих запросах обозначать её как идентификатор_владельца.имя_таблицы.
Пример:
Пусть пользователь Иванов использует следующую команду:
GRANT SELECT, UPDATE ON план_работыTO ПетровWITH GRANT OPTION;
Теперь для просмотра таблицы Петров должен использовать следующий запрос:
SELECT * FROM Иванов.план_работы
Далее, Петров может назначить полномочия другим членам группы:
GRANT SELECT ON Иванов.план_работыTO Сидоров;
Эта команда не меняет владельца таблицы и Сидоров для просмотра таблицы должен использовать эту же команду.
Пользователь может быть лишён права назначать привилегии с помощью команды:
REVOKE список_привилегий ON объект
FROM список_пользователей
При этом, возникает вопрос, кто может лишать привилегий. И если пользователь лишился привилегий, то лишаются привилегий и пользователи, получившие их от него. Во всех системах, как правило, применяется каскадный приём, т.е. если пользователь лишился привилегий, то другие пользователи, получившие привилегии от него, также лишаются этих привилегий.
Перейдём к системным привилегиям. Во всех системах существуют права пользователей, не привязанные к определённым объектам базы данных. Например, стандарт ANSI не ограничивает право создавать таблицы. Но, это область привилегий нельзя оставлять без внимания.
Привилегии, которые не определяются в терминах отдельных объектов, называются системными привилегиями или авторским правом на базу данных. Эти привилегии не стандартизированы и существуют различные подходы к их применению.
Обычно различают следующие виды системных привилегий:
Назначение и лишение привилегий осуществляется по команде 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 синоним;
Уважаемый посетитель!
Чтобы распечатать файл, скачайте его (в формате Word).
Ссылка на скачивание - внизу страницы.