МЕНЮ


Фестивали и конкурсы
Семинары
Издания
О МОДНТ
Приглашения
Поздравляем

НАУЧНЫЕ РАБОТЫ


  • Инновационный менеджмент
  • Инвестиции
  • ИГП
  • Земельное право
  • Журналистика
  • Жилищное право
  • Радиоэлектроника
  • Психология
  • Программирование и комп-ры
  • Предпринимательство
  • Право
  • Политология
  • Полиграфия
  • Педагогика
  • Оккультизм и уфология
  • Начертательная геометрия
  • Бухучет управленчучет
  • Биология
  • Бизнес-план
  • Безопасность жизнедеятельности
  • Банковское дело
  • АХД экпред финансы предприятий
  • Аудит
  • Ветеринария
  • Валютные отношения
  • Бухгалтерский учет и аудит
  • Ботаника и сельское хозяйство
  • Биржевое дело
  • Банковское дело
  • Астрономия
  • Архитектура
  • Арбитражный процесс
  • Безопасность жизнедеятельности
  • Административное право
  • Авиация и космонавтика
  • Кулинария
  • Наука и техника
  • Криминология
  • Криминалистика
  • Косметология
  • Коммуникации и связь
  • Кибернетика
  • Исторические личности
  • Информатика
  • Инвестиции
  • по Зоология
  • Журналистика
  • Карта сайта
  • СУБД INFORMIX Администрирование и безопасность

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

    Доклад на тему

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

    по предмету “Корпоративные базы данных”

    студента V-го курса ФКН МСУ

    Прохорова Андрея Виталиевича

    Киев, 1998

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

    В серверах баз данных фирмы 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:

    CREATE TABLE emp_data

    (

    emp_num integer,

    emp_name char(20),

    hired date,

    id-code char (10),

    salary decimal(4,2)

    )

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

    REVOKE ALL ON emp_data FROM PUBLIC

    Теперь создадим несколько представлений для разных категорий

    пользователей. Для тех, кто может иметь доступ по чтению из

    неконфиденциальных столбцов, создадим такое представление:

    CREATE VIEW emp_data AS

    SELECT emp_num, emp_name FROM emp_data

    Пользователи, получившие привилегию SELECT для данного

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

    обновления. Для работников отдела кадров создадим следующее

    представление:

    CREATE VIEW enter_data AS

    SELECT emp_num,emp_name,id-code,salary FROM emp_data

    Этим пользователям необходимо предоставить привилегии INSERT и

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

    представления имеет привилегии на вставку как для таблицы так и для

    представления, можно предоставить привилегии INSERT и UPDATE на

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

    GRANT SELECT, INSERT, UPDATE ON enter_data TO olga_s, helena_m

    Для некоторых пользователей, которые могут вводить или изменять

    некоторые данные о сотрудниках, создадим еще одно представление:

    CREATE VIEW enter_upd AS

    SELECT emp_num,emp_name,id-code FROM emp_data

    Это представление отличается от предыдущего тем, что в последнем

    не показываются данные о зарплате сотрудников. Наконец, пусть

    менеджерам необходим доступ по чтению и редактированию всех данных о

    работниках фирмы:

    CREATE VIEW all_data AS

    SELECT * FROM emp_data

    Теперь можно дать менеджерам все привилегии:

    GRANT SELECT, UPDATE, INSERT, DELETE ON emp_data TO alex_v

    Администрирование сервера INFORMIX-OnLine

    Внедрение в информационную систему сервера INFORMIX-OnLine Dynamic

    Server требует решения множества вопросов, которые влияют на

    производительность системы в целом. Необходимо решить вопросы, где

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

    защитить данные. OnLine Server позволяет настроить систему на

    оптимальную производительность. Для этого необходимо понимать

    Страницы: 1, 2


    Приглашения

    09.12.2013 - 16.12.2013

    Международный конкурс хореографического искусства в рамках Международного фестиваля искусств «РОЖДЕСТВЕНСКАЯ АНДОРРА»

    09.12.2013 - 16.12.2013

    Международный конкурс хорового искусства в АНДОРРЕ «РОЖДЕСТВЕНСКАЯ АНДОРРА»




    Copyright © 2012 г.
    При использовании материалов - ссылка на сайт обязательна.