Типы привилегий
Объектная и системная привилегии
Это те действия, которые может выполнять пользователь (вход в систему – минимальная привилегия). Привилегии могут меняться с течением времени: новые привилегии могут добавляться, старые – отменяться. Существует несколько типов привилегий, соответствующих определенным типам операций.
Объектная привилегия
Объектная привилегия означает то, что пользователь имеет привилегию выполнить данную команду только для определенного объекта базы данных. Привилегии должны различаться для различных объектов. Объектные привилегии связаны как с пользователями, так и с таблицами. Объектная привилегия дается отдельному пользователю для отдельной таблицы либо для представления.
Следует помнить, что пользователь, создавший таблицу, является ее владельцем. Это означает, что пользователь имеет все привилегии на таблицу и может назначать привилегии для работы с ней для других пользователей. Пользователь может назначить следующие объектные привилегии:
Объектная привилегия | Описание |
---|---|
SELECT | пользователь с этой привилегией может выполнять запросы для таблицы |
INSERT | пользователь с этой привилегией имеет право добавлять строки в таблицу |
UPDATE | пользователь с этой привилегией может изменять существующие значения в строках таблицы. Привилегия ограничивается множеством столбцов таблицы |
DELETE | пользователь с этой привилегией может удалить строки из таблицы |
ALTER | Позволяет изменять структуру только таблицы или последовательности, привилегии Alter на все другие объекты базы данных считаются системными |
INDEX | Позволяет создавать индекс для ранее описанной таблицы |
EXECUTE | Позволяет выполнять хранимую процедуру или функцию |
REFERENCES | Пользователь с этой привилегией может определить внешний ключ, который использует один или несколько столбцов таблицы в качестве родительского ключа. Можно ограничить привилегию указанием столбцов. (Внешний ключ, родительский ключ – когда поле таблицы ссылается на другое поле в другой таблице, оно называется внешним ключом (foreign key). Поле, на которое он ссылается, называется его родительским ключом (parent key). Поле ссылается на (refers to) или является ссылкой (references)) |
Системные привилегии
Привилегии, которые не определяются в терминах отдельных объектов, называют системными привилегиями (system privileges) или авторским правом на базу данных (database authorities). Системные привилегии включают в себя право создавать объекты базы данных.
Обычно принято различать три типа базовых систем привилегий, которые называют:
Тип привилегии | Описание |
---|---|
CONNECT | Предусматривает право входить в систему и создавать представления и синонимы (синоним – альтернативное имя таблицы), если речь идет об объектных привилегиях. Пользователь может работать с объектами, к которым он имеет привилегии по доступу |
RESOURCE | Предоставляет право создавать таблицы и индексы |
DBA | (Database Administrator) – разрешает пользователю выполнять действия администратора базы данных, т.е. распоряжаться ею как своей собственной. |
Имея привилегию DBA, пользователь может выполнять команду Select для любой таблицы и представления, создавать объекты для других пользователей, предоставлять другим пользователям различные привилегии, выполнять экспорт/импорт БД. Эту привилегию имеет пользователь (один или несколько) с функцией администрирования базы данных. Кроме этого, существует также специальный пользователь, называемый системным администратором, который обладает высшим авторским правом.