Реферат: СУБД INFORMIX
Если привилегия CONNECT не делается общедоступной, то доступ к базе данных смогут получить только те пользователи, которые имеют этот уровень привилегий.
Права владения
База данных, так же, как и каждая таблица, представление или индекс и синоним этой базы имеет своего владельца. Обычно владельцем БД является тот, кто его создал, хотя администратор базы данных может создавать объекты, которые становятся принадлежащими другим пользователям. Владелец объекта имеет на него все права и может изменить или удалить объект без каких-то дополнительных привилегий. Привилегии нужны только для пользователей, которые не являются владельцами объекта.
Привилегии уровня таблицы
Существует шесть привилегий уровня таблицы, позволяющих передать пользователям, не являющихся владельцами таблицы, привилегии владельца. Четыре из них – SELECT, INSERT, UPDATE и DELETE – управляют доступом к содержимому таблицы. Привилегия INDEX управляет созданием индекса. Привилегия ALTER определяет возможность изменять определение таблицы. В ANSI-совместимых базах данных привилегии на таблицу сразу после ее создания имеет только владелец. В других базах данных ядро в процессе создания таблицы автоматически делает все табличные привилегии, за исключением привилегии ALTER, общедоступными. Это означает, что только что созданная таблица может быть доступна пользователю, который имеет привилегию CONNECT. Если это нежелательно, то после создания таблицы ее владелец должен отменить все привилегии, предоставленные PUBLIC в связи с этой таблицей.
Привилегия доступа
Четыре привилегии управляют тем, как пользователь может обращаться к таблице. Владелец таблицы может предоставлять или не предоставлять, независимо одна от другой, следующие привилегии:
Привилегия SELECT позволяет делать выборку, в том числе во временные таблицы;
Привилегия INSERT позволяет добавлять в таблицу новые строки;
Привилегия UPDATE позволяет изменять существующие строки;
Привилегия DELETE позволяет удалять строки.
Привилегия SELECT необходима для выборки содержимого таблицы, однако эта привилегия не является необходимой для обладания другими привилегиями. Пользователь может иметь привилегии INSERT или UPDATE, не имея при этом привилегии SELECT.
Привилегии INDEX и ALTER
Привилегия INDEX позволяет создавать и изменять индексы в таблицах. Эта привилегия, так же, как и привилегии SELECT, INSERT, UPDATE, DELETE, становится общедоступной после создания таблицы. Можно предоставить привилегию INDEX всем пользователям, но смогут пользоваться ею только те пользователи, кто имеет привилегию RESOURCE уровня базы данных. Таким образом, хотя привилегия INDEX предоставляется автоматически (кроме ANSI-совместиых баз данных), пользователи, обладающие только привилегией уровня базы данных CONNECT не смогут воспользоваться привилегией INDEX. Это имеет смысл, когда индексные файлы занимают много места на диске.
Привилегия ALTER позволяет пользователю использовать оператор ALTER TABLE, включая возможность добавлять и удалять столбцы и т.д. Следует предоставлять данную привилегия только тем пользователям, которые хорошо понимают модель базы данных и достаточно квалифицированы, чтобы использовать эту привилегию очень аккуратно.
Привилегии уровня столбца
Можно детализировать привилегии SELECT и UPDATE именами определенных столбцов. Это позволит более тонко разграничить доступ пользователей к таблице: можно позволять пользователю видеть или обновлять только определенные столбцы.
Например:
CREATE TABLE emp_data
(
emp_num integer,
emp_name char(20),
hired date,
id-code char (10),
salary decimal(4,2)
)
Поскольку таблица содержит конфиденциальные данные, то сразу после ее создания следует выполнить оператор REVOKE, который запрещает доступ к данным:
REVOKE ALL ON emp_data FROM PUBLIC
Для отдельных сотрудников отдела кадров и менеджеров выполняется оператор типа: