Субд informIX. Администрирование и безопасность 


Мы поможем в написании ваших работ!



ЗНАЕТЕ ЛИ ВЫ?

Субд 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 может выполнять следующие операции:

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

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

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

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

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

Существует шесть привилегий уровня таблицы, позволяющих передать пользователям, не являющихся владельцами таблицы, привилегии владельца. Четыре из них – 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

Для отдельных сотрудников отдела кадров и менеджеров выполняется оператор типа:

GRANT SELECT ON emp_data TO andrew_p, michael_d

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

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

GRANT список_привилегий_через_запятую [(список_атрибутов через_запятую)]

ON выражение TO список_пользователей_через_запятую

 Для менеджеров, которые должны вводить некоторые сведения о служащих, необходимо выполнить оператор типа:

GRANT SELECT, UPDATE, INSERT, DELETE (salary, hired) ON emp_data TO alex_v, nataly_d

Этот оператор позволяет получить доступ к данным о зарплате и дате приема на роботу служащих. Для некоторых пользователей из отдела кадров, которые должны составлять технические данные о сотрудниках, нужно выполнить оператор типа:

GRANT SELECT, UPDATE, INSERT, DELETE (emp_num,emp_name,id-code) ON emp_data TO nataly_d

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

При создании представления ядро БД проверяет привилегии пользователя на соответствующие таблицы и представления. При использовании же представлений проверяются только привилегии на само представление.

Организация хранения данных

Сервер INFORMIX-OnLine может хранить данные на диске двумя способами. Первый способ – это хранение данных в файловой системе ОС. Второй способ – хранение данных на “сыром” дисковом пространстве. В последнем случае сервер INFORMIX-OnLine сам управляет вводом-выводом данных.

Единицы хранения данных

Сервер INFORMIX-OnLine использует следующие физические единицы хранения информации: chunk, page, blobpage, extent.

Логические единицы хранения данных связаны с управлением БД. К логическим единицам относятся: dbspace, blobspace, database, table, tblspace.

В дополнение к этому существуют следующие единицы хранения информации о физической и логической целостности данных: logical log, physical log, reserved pages.

Фрагмент диска chunk – это максимальная физическая единица хранения информации сервером INFORMIX-OnLine. Фрагмент может быть файлом операционной системы или специальным символьным устройством системы. В первом случае данные размещаются в обычном файле и записью на диск управляет ОС. В этом случае INFORMIX-OnLine не гарантирует, что записанные данные реально попадут на диск, так как данные могут быть помещены в дисковую кэш-память ОС. Во втором случае сервер гарантирует, что те данные, которые должны попасть на диск, будут записаны. Кроме этого, заметно выше производительность системы ввода-вывода. Однако не каждая операционная система позволяет организовать chunk на “сыром” диске. INFORMIX-OnLine поддерживает размер chunk до 2 GB. Максимальное количество chunk’ов – 2048.

Страница page – это единица информации, которой сервер INFORMIX-OnLine обменивается с устройством хранения данных для доступа к БД. Размер страницы варьируется. Обычно это 2 или 4 КБ. Фрагмент диска содержит определенное количество страниц. Страница не может выходить за пределы chunk’а.

Blobpage – единица дискового пространства, которой INFORMIX-OnLine манипулирует для хранения данных типа BYTE и TEXT. Размер blobpage задается администратором и может варьироваться.

Когда создается таблица, INFORMIX-OnLine выделяет фиксированное число страниц для хранения данных. Когда выделенное пространство исчерпывается, сервер выделяет дополнительное место. Физическая единица данных, которая используется для этих целей, называется extent. При создании таблицы задаются initial extent siz e и next extent size. Первый – первоначальный объем под таблицу (в килобайтах). Второй – величина прироста объема таблицы в килобайтах.

Extent всегда хранится в пределах одного chunk’а и не может перекрывать его границы. В случае, когда INFORMIX-OnLine не может выделить достаточно пространства в текущем фрагменте, он ищет его в другом фрагменте.

Базовой логической единицей хранения информации сервером INFORMIX-OnLine является пространство БД (dbspace). Пространство БД отображает физическое пространство на логическое пространство хранения данных. Обычно одному dbspace соответствует один chunk, хотя одному dbspace может соответствовать несколько фрагментов.

Зеркалирование

Зеркалирование позволяет резервировать фрагмент диска точно такого же размера фрагментом. Запись в первичный chunk порождает запись в резервный chunk. В случае сбоя первичного фрагмента сервер INFORMIX-OnLine переключается на резервный автоматически, при этом работа пользователя не прерывается.

Технология резервирования позволяет администратору восстанавливать данные в первичном фрагменте параллельно с работой пользователя с вторичным фрагментом.

За возможность зеркалирования придется платить дополнительным дисковым пространством.

В случае, когда незеркалированный chunk выходит из строя, INFORMIX-OnLine не может добраться к данным из него и будет возвращать ошибку при обращении к этому фрагменту. Если из строя вышел незеркалированный фрагмент, который хранит logical log, physical log или root dbspace, сервер немедленно переходит в режим off-line, т.е. прекращает работу.

Сервер делает запись в оба фрагмента параллельно и читает из обоих разные части (split read) для минимизации времени ввода-вывода.

Когда создается зеркалированный chunk, INFORMIX-OnLine копирует данные из первичного во вторичный. Такой процесс называется восстановлением (recovery). Зеркалирование начинает работать сразу после завершения процесса восстановления.

Архивирование данных

Система восстановления INFORMIX-OnLine позволяет архивировать данные и восстанавливать их в случае порчи.

Уровни архива

Нет смысла каждый раз архивировать все данные INFORMIX-OnLine. Поддерживаются три типа добавочного архивирования:

Level-0 – архивируются все страницы;

Level-1 – архивируются все изменения с момента последнего архива нулевого уровня;

Level-2 – архивируются все изменения с момента последнего архива первого уровня.

Экспорт-импорт данных

Миграция данных, т.е. перенос базы данных или ее частей может понадобиться по следующим причинам:

Для переноса разработанной системы заказчику;

Для переноса на другую аппаратную платформу;

Для распространения пользователям;

Для переноса данных между INFORMIX-SE и INFORMIX-OnLine.

Модификация схемы БД

Утилита dbschema создает файл с SQL-операторами, необходимыми для воспроизведения указанной БД, таблицы и других объектов БД (например, триггера). После создания файла со схемой БД, этот файл можно вручную отредактировать с целью изменения некоторых характеристик БД или таблицы (или еще чего-нибудь). Можно изменить следующие характеристики:

Права доступа;

Владельца объекта (таблица, индекс, представление);

Режим блокировки;

Размеры начального и последующих extent’ов.

Dbspace, где хранятся таблицы.

Системная БД sysmaster

INFORMIX-OnLine Dynamic Server создает и поддерживает БД sysmaster. Эта база данных содержит информацию о самом сервере. Sysmaster состоит из следующих таблиц:

Таблицы SMI

Таблицы интерфейса системного мониторинга (SMI) содержат информацию о состоянии сервера INFORMIX-OnLine. Можно обращаться к этим таблицам для определения “узких мест” в обработке информации, определения использования ресурсов, отслеживания активности сессий или сервера БД, и т.п.

Таблицы каталога ON-Archive

Эти таблицы содержат информацию о запросах, наборах томов, наборов сохранения.

INFORMIX-OnLine создает БД sysmaster автоматически при инициализации дискового пространства. Нельзя удалить эту БД или таблицы в ней, а также нельзя изменить состояние протоколирования БД.

Можно, как пользователь informix, создавать хранимые процедуры и триггеры в этой БД. Но INFORMIX-OnLine не будет исполнять созданные пользователем в sysmaster триггеры.

Описание таблиц SMI

Интерфейс системного мониторинга состоит из некоторого числа таблиц и псевдотаблиц, которые автоматически поддерживаются INFORMIX-OnLine и не сбрасываются на диск во время работы.

Таблицы SMI содержат следующую информацию:

Аудитинг

Обращение к дискам

Информация о пользователях

Статус протоколирования баз данных

Таблицы

Chunk’и

Ввод-вывод chunk’ов

Пространства БД

Блокировки

Extent’ы

Системная информация

Любой пользователь может запрашивать информацию из любой таблицы sysmaster за исключением таблиц sysadinfo и sysaudit. Последние две таблицы может просматривать только пользователь informix.

Триггеры по изменению в SMI-таблицах никогда не выполняются, т.к. INFORMIX-OnLine производит изменения в SMI-таблицах не с помощью SQL-выражений.

Ниже приведен список используемых SMI-таблиц:

 

sysaudinfo Конфигурационная информация аудитинга
sysaudit Маски событий аудитинга
syschkio Статистика ввода-вывода для chunk’ов
syschunks Информация о chunk’ах
sysdatabases Информация о базах данных
sysdbspaces Информация о пространствах БД
sysdri Информация по репликации данных
sysextents Информация о размещении extent’ов
syslocks Информация об активных блокировках
syslogs Информация о файлах логического протокола
sysprofile Системная информация
sysptprof Информация по таблицам
syssesprof Подсчет действий пользователей
syssessions Описание каждого пользовательского соединения
sysseswts Время ожидания пользователем каждого из нескольких объектов
systabnames Описание каждой таблицы, управляемой INFORMIX-OnLine

СУБД INFORMIX. Администрирование и безопасность

 

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

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

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

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

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

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



Поделиться:


Последнее изменение этой страницы: 2020-03-26; просмотров: 211; Нарушение авторского права страницы; Мы поможем в написании вашей работы!

infopedia.su Все материалы представленные на сайте исключительно с целью ознакомления читателями и не преследуют коммерческих целей или нарушение авторских прав. Обратная связь - 3.147.73.147 (0.046 с.)