Студопедия

Главная страница Случайная страница

Разделы сайта

АвтомобилиАстрономияБиологияГеографияДом и садДругие языкиДругоеИнформатикаИсторияКультураЛитератураЛогикаМатематикаМедицинаМеталлургияМеханикаОбразованиеОхрана трудаПедагогикаПолитикаПравоПсихологияРелигияРиторикаСоциологияСпортСтроительствоТехнологияТуризмФизикаФилософияФинансыХимияЧерчениеЭкологияЭкономикаЭлектроника






Управление доступом к данным






 

Основными задачами в обеспечении безопасности в БД Oracle являются:

 

- Предотвращение несанкционированного доступа в БД;

- Предотвращение несанкционированного доступа к объектам БД;

- Отслеживание (аудит) деятельности пользователей в БД.

 

Каждый пользователь (user) БД может быть связан с одноименной схемой (schema) данных. Это происходит в случае, когда пользователь становится владельцем некоторых объектов БД (объекты создаются о его имени).

Различают системную безопасность в БД и безопасность данных.

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

- проверка имен и паролей пользователей;

- контроль места для хранения объектов пользоватлей в табличных пространствах;

- установка и контроль использования ресурсов пользователями

- и др.

 

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

- Определение пользователей имеющих доступ к различным объектам в БД;

- Определение типов операций, которые пользователи могут продить над объектами;

- Отслеживание изменений данных пользователями;

Шифрование данных для предотвращения несанкционированного доступа

И др.

 

Сервер Oracle обеспечивает доступ к данным на основе привилегий, которые устанавливаются пользователями-администраторами для других пользователей.

СУБД Oracle 10gуправляет безопасностью в БД используя следующие возможности:

 

- Пользователи и схемы БД;

- Привилегии;

- Роли;

- Параметры хранения и квоты;

- Профили и ограничения ресурсов;

- Аудит деятельности пользователей;

- Детальный аудит.

 

 

Пользователи БД и схемы

 

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

Каждому пользователю сопоставлен ряд свойств, определяющих его возможности в БД:

 

· Действия (выдаваемые через привилегии и роли), которые способен выполнять пользователь в БД;

· Квоты на использование табличных пространств;

· Ограничение на использование аппаратных ресурсов сервера пользовательскими сессиями;

Пользователи БД создаются с помощью команды CREATE USER.

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

 

CREATE USER SCOTT

IDENTIFIED BY TIGER

DEFAULT TABLESPACE USERS

TEMPORARY TABLESPACE TEMP

QUOTA UNLIMITED ON USERS

PROFILE DEFAULT

ACCOUNT UNLOCK;

 

В составе команды CREATE USER может использоваться фраза DEFAULT TABLESPACE для определения табличного пространства (ТП) по умолчанию. Пользователю Oracle также должна быть назначена квота, которая определяет, сколько места он может использовать в ТП.

СУБД Oracle 10gпозволяет настраивать параметры использования дискового пространства для пользователей через использование квот на табличные пространства и через назначение каждому пользователю ТП по умолчанию (default tablespace) и ТП для временных операций и объектов (temporary tablespace).

Если заданное по умолчанию ТП не определено, пользователю будет назначено табличное пространство SYSTEM в этом качестве, что очень не оптимально. Когда пользователь создает какой-либо объект, он будет создан в ТП по умолчанию, если не будет указано другое ТП. На это ТП у пользователя должна быть ненулевая квота, т.е. объем дискового пространства, которое пользователь может занимать под свои объекты. Пользователь не может хранить объектов, занимающих в сумме объем больше, чем отведенная ему квота в каком-то ТП.

Во временном табличном пространстве хранятся промежуточные результаты сортировок, не помещающихся в памяти, а также временные таблицы.

Для изменения параметров пользователя используется команда ALTER USER. С ее помощью можно изменить пароль, заданное по умолчанию ТП, временное ТП и квоты использования места в ТП.

Для удаления пользователя из базы данных используется команда DROP USER, которая удаляет запись пользователя из словаря данных Oracle. Если пользователь Oracle владеет какими-либо объектами базы данных, можно либо удалить каждый из объектов перед использованием команды DROP USER, либо использовать в DROP USER опцию CASCADE для автоматического уничтожения всех объектов при удалении учётной записи пользователя.

 

 

Привилегии

 

Привилегия – в общем случае, право выполнять какое-либо SQL-выражение. Например, привилегия присоединяться к БД (create session), создавать таблицу в своей схеме (create table), выбирать строки из не принадлежащих пользователю таблиц (select any table) и др.

Привилегии в СУБД Oracle 10gделятся на две категории:

 

· Системные привилегии;

· Объектные привилегии.

 

Системные привилегии

 

Системные привилегии позволяют пользователям выполнять некоторые действия над каким-то типом объектов в целом. Например, привилегия на создание табличного пространства или привилегия на удаление строк из любой таблицы БД являются системными. Почти всем системным привилегиям соответствует некоторая SQL-команда. Большое число системных привилегий доступны только администраторам.

После создания учётной записи пользователя Oracle она не может использоваться, пока пользователь не получит, по меньшей мере одну системную привилегию. Системная привилегия CREATE SESSION позволяет пользователю создавать сесию в БД Oracle. Это – необходимая системная привилегия, которую должна иметь учётная запись пользователя, ибо без неё нельзя осуществить присоединение к БД.

 

 

Объектные привилегии

 

Объектные привилегии позволяют пользователям выполнять некоторые действия над конкретными объектами в БД. Например, выборка или удаление строк из таблицы EMP является объектной привилегией.

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

Привилегии могут быть даны пользователю напрямую (команда GRANT < привилегия > …), либо посредством роли, представляющей собой именованную группу системных и объектных привилегий, объединенных по какому-то общему принципу. Использование ролей значительно упрощает настройку привилегий для пользователей. Достаточно описать роль, скажем, для разработчиков, наполнить ее привилегиями (роли могут включать в себя другие роли) и дать эту роль пользователю одной командой GRANT.

 

Сопоставление пользователю системных и объектных привилегий, а также ролей осуществляется командой GRANT.

 

Например,

 

GRANT CREATE SESSION TO hr;

GRANT SELECT ON SCOTT.EMP TO public;

GRANT CONNECT, RESORCE TO myuser WITH ADMIN OPTION;

GRANT UNLIMITED TABLESPACE TO SCOTT;

 

 

Профили и ограничения ресурсов

 

Каждому пользователю в СУБД Oracle 10gсопоставлен некоторый профиль, описывающий ряд ограничений на использование ресурсов сервера и использование паролей пользователями. Каждому пользователю можно сопоставить некоторый профиль. По умолчанию в СУБД Oracle 10gсуществует профиль DEFAULT, не содержащий никаких ограничений. Чтобы профили «заработали», необходимо установить в БД параметр инициализации RESOURCE_LIMIT в TRUE (значение по умолчанию FALSE).

Профили создаются с помощью команды CREATE PROFILE. В описании профиля указываются 2 группы ограничений (limits), на использование ресурсов сервра и на использование паролей.

 

Ограничения ресурсов сервера:

 

SESSIONS_PER_USER – число сессий, одновременно открытых с использованием одной учетной записи пользователя.

CPU_PER_SESSION – ограничение использования времени процессора сессией пользователя, высчитывается по специальной формуле.

CPU_PER_CALL – ограничение на использование процессора на одну SQL-операцию, указывается в сотых долях секунды.

CONNECT_TIME – максильмальная продолжительность сессии в минутах, по истечении которого соединение разрывается.

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

LOGICAL_READS_PER_SESSION – ограничение на число блоков БД, считанных из памяти и с диска в течение работы сессии.

LOGICAL_READS_PER_CALL – ограничение на число блоков БД, считанных из памяти и диска во время выполнения SQL-выражения в рамках сессии.

PRIVATE_SGA – максимальный объем приватной области сессии в разделяемом пуле, в байтах (работает только в режиме OSS).

COMPOSITE_LIMIT – общая стоимость ресурсов, используемых сессией, измеряемая в специальных единицах (service units).

 

Ограничения на использование паролей:

 

FAILED_LOGIN_ATTEMPTS – число неудачных попыток входа, после которого учетная запись пользователя будет заблокирована.

PASSWORD_LIFE_TIME – время действия пароля в днях, после чего необходимо будет обязательно сменить пароль.

PASSWORD_REUSE_TIME – время в днях, после которого можно устанавливать ранее использовавшийся пароль. Если указывается это ограничение, то ограничение PASSWORD_REUSE_MAX должно быть выставлено в UNLIMITED.

PASSWORD_REUSE_MAX – число изменений пароля, после которого можно устанавливать ранее использовавшийся пароль. Если указывается это ограничение, то ограничение PASSWORD_REUSE_TIME должно быть выставлено в UNLIMITED.

PASSWORD_LOCK_TIME – время в днях, на которое блокируется учетная запись после блокирования после срабатывания FAILED_LOGIN_ATTEMPTS.

PASSWORD_GRACE_TIME – за сколько дней до истечения срока действия пароля начнет выдаваться приглашение о смене пароля.

PASSWORD_VERIFY_FUNCTION – функция проверки пароля. Существует возможность написать на PL/SQL функцию (ее параметры есть в документации), проверяющую параметры вводимого пароля. Если функция вернет FALSE, необходимо будет ввести другой пароль. Если не нужно использовать проверку пароля, указывается NULL.

 

Например,

 

CREATE PROFILE accounting_profile LIMIT SESSIONS_PER_USER 5 CONNECT_TIME 600 IDLE_TIME 120 FAILED_LOGIN_ATTEMPTS 5 PASSWORD_LIFE_TIME 60 PASSWORD_REUSE_TIME 999 PASSWORD_REUSE_MAX UNLIMITED PASSWORD_LOCK_TIME 1/24 PASSWORD_GRACE_TIME 10;

 

 

Работу с аудитом см. в главе «Аудит».







© 2023 :: MyLektsii.ru :: Мои Лекции
Все материалы представленные на сайте исключительно с целью ознакомления читателями и не преследуют коммерческих целей или нарушение авторских прав.
Копирование текстов разрешено только с указанием индексируемой ссылки на источник.