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 предлагает следующие группы операторных параметров:
Аудит объектов Помимо системных операций, выполняемых над объектами, аудиту можно подвергать операции 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 Все авторские права принадлежат авторам лекционных материалов. Обратная связь с нами...
|