СУБД INFORMIX Администрирование и безопасность
Рефераты >> Программирование и компьютеры >> СУБД INFORMIX Администрирование и безопасность

Безопасность

В серверах баз данных фирмы INFORMIX можно ограничить или вовсе запретить пользователям доступ к данным. Доступ можно ограничить на следующих четырех уровнях:

1. В случае, если БД хранится в файлах операционной системы, ограничением доступа можно управлять с помощью средств ОС. Однако этот уровень недоступен при использовании сервера INFORMIX-OnLine. Это ядро само управляет собственным дисковым пространством и правила операционной системы здесь не применимы.

2. Можно использовать операторы GRANT и REVOKE, чтобы предоставить или запретить доступ к БД или отдельным таблицам, а также разрешать или запрещать проводить пользователями отдельных операций над БД.

3. Можно использовать оператор CREATE VIEW для создания ограничивающего или обновляемого представления. Ограничения могут быть горизонтальными (исключающие некоторые строки) или вертикальными (исключающие некоторые столбцы) или одновременно вертикальными и горизонтальными.

4. Допускается использование оператора GRANT совместно с оператором CREATE VIEW для достижения более полного контроля над частями таблицы и данными, которые пользователь может изменять.

Безопасность на уровне файлов

Ядра баз данных INFORMIX (за исключением INFORMIX-OnLine) хранят базы данных в файлах операционной системы. Файлы собраны в каталоге, который представляет базу данных в целом. Можно запретить доступ к базе данных, запретив доступ к каталогу базы данных средствами операционной системы.

Предоставление привилегий

Разрешение на использование базы данных называется привилегией. Например, разрешение на использование базы данных вообще называется привилегией CONNECT, тогда как разрешение на добавление строк в таблицу называется привилегией INSERT. Можно управлять доступом к базе данных, предоставляя привилегии пользователям или отменяя их.

Привилегии делятся на две группы: одна группа привилегий касается базы данных в целом, другая – отдельных таблиц.

Привилегии базы данных

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

Привилегия CONNECT

Привилегией самого нижнего уровня является привилегия CONNECT, которая предоставляет пользователю базовые возможности запрашивать и обновлять таблицы. Пользователь с этой привилегией может производить такие операции:

· Выполнять операторы SELECT, INSERT, UPDATE и DELETE при наличии необходимых привилегий уровня таблицы;

· Создавать представления при условии, что ему разрешено запрашивать таблицы, на которых основаны представления;

· Создавать временные таблицы и индексы на них. Для этого пользователь должен обладать привилегией CONNECT. Обычно, если БД не содержит конфиденциальной информации, сразу после создания базы данных выполняется операция GRANT CONNECT TO PUBLIC.

Привилегия RESOURCE

Данная привилегия предоставляет те же возможности, что и привилегия CONNECT, кроме того, пользователь с привилегией RESOURCE может выполнять следующие операции:

· Изменять определения существующих таблиц путем удаления или добавления определенных столбцов, индексов;

· Создавать новые постоянные таблицы и индексы к ним.

Привилегия администратора баз данных

На высшем уровне их трех уровней привилегий базы данных находятся привилегии администратора базы данных (АБД). Создатель базы данных автоматически становится ее администратором. Пользователь этого уровня доступа может осуществлять следующее:

· Вставлять, удалять или изменять строки в любой из таблиц системного каталога за исключением systables;

· Удалять или изменять любой объект независимо от того, кому он принадлежит;

· Создавать, таблицы, индексы и представления, которые будут принадлежать другим пользователям;

· Предоставлять привилегии базы данных, включая привилегию АБД.

Привилегии пользователей и другие общедоступные привилегии

Привилегии предоставляются отдельным пользователям по их именам, или всем пользователям – под именем PUBLIC. Все привилегии, предоставленные под именем PUBLIC, действуют как привилегии по умолчанию. Прежде, чем выполнить оператор, ядро базы данных определяет, располагает ли пользователь необходимыми привилегиями. Сначала ядро ищет привилегии, предоставленные именно данному пользователю. Если необходимые привилегии обнаружены, то они предоставляются данному пользователю. Если же пользователю такие привилегии не предоставлены, то сервер ищет их среди общедоступных. Если такие найдены, то ядро использует их. Таким образом, можно установить минимальный уровень привилегий для пользователей, предоставив привилегии PUBLIC. В конкретных случаях эти привилегии могут быть перекрыты путем предоставления пользователю более сильных привилегий.

Если привилегия CONNECT не делается общедоступной, то доступ к базе данных смогут получить только те пользователи, которые имеют этот уровень привилегий.

Права владения

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

Привилегии уровня таблицы

Существует шесть привилегий уровня таблицы, позволяющих передать пользователям, не являющихся владельцами таблицы, привилегии владельца. Четыре из них – SELECT, INSERT, UPDATE и DELETE – управляют доступом к содержимому таблицы. Привилегия INDEX управляет созданием индекса. Привилегия ALTER определяет возможность изменять определение таблицы. В ANSI-совместимых базах данных привилегии на таблицу сразу после ее создания имеет только владелец. В других базах данных ядро в процессе создания таблицы автоматически делает все табличные привилегии, за исключением привилегии ALTER, общедоступными. Это означает, что только что созданная таблица может быть доступна пользователю, который имеет привилегию CONNECT. Если это нежелательно, то после создания таблицы ее владелец должен отменить все привилегии, предоставленные PUBLIC в связи с этой таблицей.

Привилегия доступа

Четыре привилегии управляют тем, как пользователь может обращаться к таблице. Владелец таблицы может предоставлять или не предоставлять, независимо одна от другой, следующие привилегии:

· Привилегия SELECT позволяет делать выборку, в том числе во временные таблицы;

· Привилегия INSERT позволяет добавлять в таблицу новые строки;

· Привилегия UPDATE позволяет изменять существующие строки;

· Привилегия DELETE позволяет удалять строки.

Привилегия SELECT необходима для выборки содержимого таблицы, однако эта привилегия не является необходимой для обладания другими привилегиями. Пользователь может иметь привилегии INSERT или UPDATE, не имея при этом привилегии SELECT.


Страница: