31018-1 (СУБД INFORMIX)

2016-07-31СтудИзба

Описание файла

Документ из архива "СУБД INFORMIX", который расположен в категории "". Всё это находится в предмете "информатика" из , которые можно найти в файловом архиве . Не смотря на прямую связь этого архива с , его также можно найти и в других разделах. Архив можно найти в разделе "рефераты, доклады и презентации", в предмете "информатика, программирование" в общих файлах.

Онлайн просмотр документа "31018-1"

Текст из документа "31018-1"

СУБД 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.

Привилегии 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

Привилегии в системном каталоге

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

Привилегии базы данных регистрируется в таблице sysusers, в который первичным ключом является идентификатор пользователя, а в другом столбце находится символ C (CONNECT), R (RESOURCE) или D (DBA), обозначающий уровень привилегий. Общедоступные привилегии отображены под именем пользователя public (в нижнем регистре).

Привилегии уровня таблицы находятся в таблице systabauth, в которой используется составной первичный ключ, включающий номер таблицы, идентификатор пользователя, предоставившего привилегии на таблицу и идентификатор пользователя, получившего их. В столбце tabauth привилегии закодированы в виде шестибуквенного списка следующим образом (дефис обозначает не предоставленную привилегию):

s – SELECT

u – UPDATE

- – * привилегия на столбцы

i – INSERT

d – DELETE

x – INDEX

a – ALTER

r – REFERENCES (обращение к заданной таблице в ограничениях целостности)

Таким образом, полный комплект привилегий выглядит как su-idxar.

Например, набор -u------ говорит, что пользователь обладает только привилегией UPDATE.

Если в третьей позиции присутствует звездочка, то это означает, что для данной таблицы и пользователя существуют еще какие-то привилегии уровня столбца. Конкретные привилегии регистрируются в таблице syscolauth. Ее первичный ключ составлен из номера таблицы, идентификатора пользователя, предоставившего привилегии, получившего привилегии, и номера столбца. Единственный атрибут – двухбуквенный список, показывающий тип привилегии: s-, -u или su.

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

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

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

При создании представления ядро БД проверяет наличие у пользователя всех привилегий, необходимых для выполнения оператора SELECT в определении представления. Если таких привилегий нет, представление не создается. Эта проверка не позволяет пользователю получить несанкционированный доступ к таблице путем создания представления для нее и обращения к представлению. После создания представления ядро БД предоставляет его создателю и владельцу, как минимум, привилегию SELECT для этого представления. Оно не становится автоматически общедоступным, как это происходит с таблицей. Ядро БД определяет определение представления и выясняет, является ли оно обновляемым. Если да, то создатель представления получает привилегии INSERT, DELETE и UPDATE для этого представления при наличии этих привилегий на порождающей таблице или представлении. Иными словами, если создаваемое представление является обновляемым, то ядро БД копирует привилегии INSERT, DELETE и UPDATE создателя представления и предоставляет их ему на новом представлении. Если для порождающей таблицы создатель представления располагает только привилегией INSERT, то он получит на представление только эту привилегию и т.д. Эта проверка не позволяет пользователям получить какие-либо привилегии кроме тех, которые у него уже есть.

Поскольку для представления нельзя выполнять операторы ALTER TABLE и CREATE INDEX, привилегии ALTER и INDEX никогда не распространяются на представления.

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

При попытке использовать представление, ядро БД проверяет лишь те привилегии, которые относятся лишь к самому представлению. Оно не проверяет права на доступ к определяющим его таблицам. Привилегии создателя представления уже отмечались ранее. Для других пользователей привилегии определяются создателем или тем, у кого есть привилегия WITH GRANT OPTION. Это означает, что можно создать таблицу и отменить ее общедоступность. Затем можно предоставить ограниченные привилегии на доступ к таблице через представления.

Ниже приводится синтаксис оператора GRANT:

GRANT список_привилегий_через_запятую ON объект

TO список_пользователей_через_запятую [WITH GRANT OPTION]

Директива WITH GRANT OPTION наделяет указанных пользователей особыми полномочиями – правом предоставления полномочий другим пользователям. Это означает, что для работы с данным объектом они могут наделять полномочиями других пользователей.

Работу с представлениями можно продемонстрировать на примерах с таблицей emp_data:

Свежие статьи
Популярно сейчас
Как Вы думаете, сколько людей до Вас делали точно такое же задание? 99% студентов выполняют точно такие же задания, как и их предшественники год назад. Найдите нужный учебный материал на СтудИзбе!
Ответы на популярные вопросы
Да! Наши авторы собирают и выкладывают те работы, которые сдаются в Вашем учебном заведении ежегодно и уже проверены преподавателями.
Да! У нас любой человек может выложить любую учебную работу и зарабатывать на её продажах! Но каждый учебный материал публикуется только после тщательной проверки администрацией.
Вернём деньги! А если быть более точными, то автору даётся немного времени на исправление, а если не исправит или выйдет время, то вернём деньги в полном объёме!
Да! На равне с готовыми студенческими работами у нас продаются услуги. Цены на услуги видны сразу, то есть Вам нужно только указать параметры и сразу можно оплачивать.
Отзывы студентов
Ставлю 10/10
Все нравится, очень удобный сайт, помогает в учебе. Кроме этого, можно заработать самому, выставляя готовые учебные материалы на продажу здесь. Рейтинги и отзывы на преподавателей очень помогают сориентироваться в начале нового семестра. Спасибо за такую функцию. Ставлю максимальную оценку.
Лучшая платформа для успешной сдачи сессии
Познакомился со СтудИзбой благодаря своему другу, очень нравится интерфейс, количество доступных файлов, цена, в общем, все прекрасно. Даже сам продаю какие-то свои работы.
Студизба ван лав ❤
Очень офигенный сайт для студентов. Много полезных учебных материалов. Пользуюсь студизбой с октября 2021 года. Серьёзных нареканий нет. Хотелось бы, что бы ввели подписочную модель и сделали материалы дешевле 300 рублей в рамках подписки бесплатными.
Отличный сайт
Лично меня всё устраивает - и покупка, и продажа; и цены, и возможность предпросмотра куска файла, и обилие бесплатных файлов (в подборках по авторам, читай, ВУЗам и факультетам). Есть определённые баги, но всё решаемо, да и администраторы реагируют в течение суток.
Маленький отзыв о большом помощнике!
Студизба спасает в те моменты, когда сроки горят, а работ накопилось достаточно. Довольно удобный сайт с простой навигацией и огромным количеством материалов.
Студ. Изба как крупнейший сборник работ для студентов
Тут дофига бывает всего полезного. Печально, что бывают предметы по которым даже одного бесплатного решения нет, но это скорее вопрос к студентам. В остальном всё здорово.
Спасательный островок
Если уже не успеваешь разобраться или застрял на каком-то задание поможет тебе быстро и недорого решить твою проблему.
Всё и так отлично
Всё очень удобно. Особенно круто, что есть система бонусов и можно выводить остатки денег. Очень много качественных бесплатных файлов.
Отзыв о системе "Студизба"
Отличная платформа для распространения работ, востребованных студентами. Хорошо налаженная и качественная работа сайта, огромная база заданий и аудитория.
Отличный помощник
Отличный сайт с кучей полезных файлов, позволяющий найти много методичек / учебников / отзывов о вузах и преподователях.
Отлично помогает студентам в любой момент для решения трудных и незамедлительных задач
Хотелось бы больше конкретной информации о преподавателях. А так в принципе хороший сайт, всегда им пользуюсь и ни разу не было желания прекратить. Хороший сайт для помощи студентам, удобный и приятный интерфейс. Из недостатков можно выделить только отсутствия небольшого количества файлов.
Спасибо за шикарный сайт
Великолепный сайт на котором студент за не большие деньги может найти помощь с дз, проектами курсовыми, лабораторными, а также узнать отзывы на преподавателей и бесплатно скачать пособия.
Популярные преподаватели
Добавляйте материалы
и зарабатывайте!
Продажи идут автоматически
5167
Авторов
на СтудИзбе
437
Средний доход
с одного платного файла
Обучение Подробнее