Главная | Обратная связь | Поможем написать вашу работу!
МегаЛекции

TO список_ролей/список_пользователей/PUBLIC




[WITH GRANT OPTION]

В ORACLE существуют следующие привилегии объектного уровня:

· SELECT позволяет другому пользователю выполнить запрос на выборку к данным указанной таблицы или представления.

· INSERT позволяет вставлять строки в таблицу (возможно, используя для этих целей обновляемое представление) с помощью команды INSERT.

· UPDATE позволяет обновлять строки в таблице (обновляемом представлении) вне зависимости от того, были ли эти строки созданы этим пользователем или нет.

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

· EXECUTE даёт возможность пользователю, владеющему хранимым кодом базы данных (процедурами, функциями или пакетами), позволить другому пользователю ORACLE вызывать его процедурные объекты.

· ALTER даёт возможность пользователю ORACLE изменить определение заданной таблицы или последовательности. Не следует путать с системной привилегией ALTER TABLE, которая дает возможность изменять структуру любой таблицы в своей схеме.

· INDEX позволяет пользователю создавать индексы на указанную таблицу, владельцем которой он не является. Владелец эту привилегию имеет по умолчанию.

В конце оператора grant привилегии объектного уровня может быть определена фраза with grant option, которая позволяет пользователю, получившему эту привилегию, передать её другому пользователю ORACLE.

 

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

Grant create session to user2

Grant select, insert on marks to user2

Grant select on students to user2

GRANT EXECUTE ON change_phone TO user2

Аудит действий пользователей

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

Однако Oracle предоставляет дополнительнительную возможность всестороннего аудита всех операций, происходящих в базе данных, - команду AUDIT. Информация аудита записывается либо в специальную таблицу в схеме SYS (SYS.AUD$), либо (в зависимости от применяемой системы) в журнал аудита операционной системы.

Разрешается проводить аудит операций трех разных типов:

· попыток регистрации в базе данных (аудит подключений)

· обращения к определенным объектам (аудит объектов)

· определенных операций с базой данных (аудит действий).

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

Аудит подключений

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

Audit session

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

audit session whenever successful

audit session whenever not successful

Если записи аудита хранятся в таблице SYS.AUD$, их можно просмотреть через представление словаря данных DBA_AUDIT_SESSION этой таблицы.

Для запрещения аудита сеанса применяется команда noaudit

Noaudit session

 

Аудит операций

Любая команда DDL, оказывающая воздействие на некоторый объект базы данных, например на таблицу, представление или индекс, может быть подвергнута аудиту. При этом нетрудно сгруппировать операции create, alter и drop, воздействующие на объекты. Группирование команд снижает объем административной работы, необходимой для установки и поддержки параметров аудита.

Так, для аудита всех команд, воздействующих на роли, нужно ввести команду

Audit role

Чтобы отменить заданную установку, следует ввести

Noaudit role

Существуют группы аудита SQL-команд. Каждую группу можно применять для аудита всех SQL-команд, входящих в нее. Например, с помощью команды audit role, приведенной выше, будет осуществляться аудит команд create role, alter role и drop role.

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

 

CONNECT аудит всех случаев регистрации в ORACLE и отсоединения от ORACLE
DBA аудит команд, для выполнения которых необходимы полномочия администратора базы данных
RESOURCE аудит операций создания и удаления таблиц, кластеров, представлений, индексов, табличных областей, типов и синонимов
ALL аудит всех этих команд

 

 

Аудит объектов

Помимо системных операций, выполняемых над объектами, аудиту можно подвергать операции select, insert, update и delete, выполняемые над конкретными таблицами.

Конструкция, добавляемая для аудита объектов, - by session (на сеанс) или by access (по доступу). Она определяет, нужно ли вносить запись аудита однажды для каждого сеанса или каждый раз при обращении к объекту. Например, если пользователь выполнил над одной и той же таблицей четыре различных оператора update, результатом аудита по доступу будет внесение четырех записей аудита – по одной на каждое обращение к таблице. Однако если в той же самой ситуации применить конструкцию by session, то будет внесена только одна запись аудита.

Поэтому аудит по доступу может намного увеличить частоту внесения записей аудита. Он используется достаточно редко и, как правило, для измерения числа отдельных операций, выполняемых в течение определенного временного интервала; после завершения тестирования следует установить для аудита состояние by session.

Ниже рассмотрены примеры использования рассмотренных способов аудита. В первой команде производится аудит всех команд insert, выполняемых над таблицей students, находящейся в схеме user1. Во второй команде аудиту подвергается каждая команда, воздействующая на таблицу marks. В третьей команде осуществляется аудит операций delete, выполняемых над таблицей subjects в течение сеанса:

audit insert on use1.students

audit all on user1.marks

audit delete on user1.subjects by session

Поделиться:





Воспользуйтесь поиском по сайту:



©2015 - 2024 megalektsii.ru Все авторские права принадлежат авторам лекционных материалов. Обратная связь с нами...