Пользователи Oracle: управление и безопасность базы данных

Пользователи Oracle и безопасность базы данных OracleРазные люди вкладывают различный смысл в понятие безопасности базы данных. Однако важно помнить, что основная цель безопасности базы данных — предотвращение несанкционированного использования базы данных или ее компонентов. Безопасность базы данных зависит также от безопасности системы и сети, но эта статье посвящена в основном способам обеспечения надежной безопасности на уровне базы данных.

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

Вы ознакомитесь также с профилями Oracle и способами управления ими. Профили позволяют устанавливать ограничения на ресурсы, используемые каждым пользователем в базе данных, и осуществлять политику применения паролей для обеспечения безопасности. Диспетчер ресурсов Oracle (Oracle Resource Manager) позволяет распределять ограниченные ресурсы базы данных и сервера между группами пользователей в соответствии с планом использования ресурсов. 

Хотя управление доступом к базе данных посредством выдачи прав и полномочий достаточно распространено, следует подумать также о применении мощного средства детального контроля доступа Oracle, которое позволяет управлять доступом на уровне строк. Функция детального контроля доступа Oracle, называемая также виртуальной приватной базой данных, подробно рассматривается в этой статье.

В производственной базе данных всегда целесообразно проводить аудит ее использования. Аудиту можно подвергать изменения и в данных, и в событиях БД, таких как неудачные попытки регистрации в базе данных. Триггеры на основе системных событий могут обеспечить базу данных надежным уровнем безопасности, и в этой статье блога поясняется применение этих специальных триггеров. Кроме того, будет показано, как использовать детальные политики аудита.

В настоящее время в большинстве организаций шифрование является важным средством. Oracle предлагает несколько способов шифрования данных, в том числе специальные пакеты шифрования PL/SQL, возможность шифрования столбцов таблицы с помощью прозрачной функции шифрования и возможность шифрования всего табличного пространства. Все эти функции шифрования освещены в данной статье. Ниже кратко перечислены основные аспекты управления безопасностью базы данных Oracle.

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

 

Управление пользователями базы Oracle

Управление пользователями — достаточно сложная тема, поскольку приходится иметь дело не только с предоставлением пользователям прав на использование базы данных, но и с такими жизненно важными аспектами, как безопасность и управление ресурсами. Администратор баз данных создает пользователей в базе данных и устанавливает ограничение на их доступ к различным компонентам. Администратор БД ограничивает также физическое дисковое пространство и системные ресурсы, доступные для использования пользователями, в основном присваивая роли базы данных и устанавливая полномочия. Позже будет показано, как обеспечить, чтобы заданные по умолчанию пароли, связанные с различными пользователями базы данных, изменялись немедленно после создания новой базы данных.

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

 

Временное и заданное по умолчанию табличные пространства

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

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


Внимание! Если конкретное табличное пространство не назначено в качестве заданного по умолчанию, им станет табличное пространство System. Если пользователь создает очень большой объект в табличном пространстве System, он может занять весь его объем, препятствуя привилегированному пользователю SYS в создании в нем любых новых объектов, что приведет к останову базы данных. Именно по этой причине нужно всегда создавать заданное по умолчанию табличное пространство для каждого пользователя.


 

Создание нового пользователя

Для создания пользователя служит оператор CREATE USER. Рекомендуется каждому новому пользователю назначать как заданное по умолчанию временное, так и заданное по умолчанию постоянное табличное пространство. Если исходить из предположения, что оба эти табличных пространства уже созданы при создании базы данных, оператор CREATE USER может быть очень простым, как показано в следующем примере:

SQL> CREATE USER salapati IDENTIFIED BY sammyy1;
User created.
SQL>

Этот оператор создает нового пользователя salapati, который имеет пароль sammyy1. Пользователю не обязательно присваивать заданное по умолчанию временное или постоянное табличное пространство (при условии, что эти табличные пространства были созданы для базы данных при ее создании). Для установки заданного по умолчанию временного табличного пространства после создания базы данных можно использовать оператор ALTER TABLESPACE DEFAULT TEMPORARY TABLESPACE. Для выяснения текущих значений заданных по умолчанию табличных пространств следует запросить представление DATABASE_PROPERTIES.

Следующий запрос отображает заданное по умолчанию постоянное (DEFAULT_TABLESPACE) и временное (TEMPORARY_TABLESPACE) табличные пространства нового пользователя: 

SQL> SELECT default_tablespace, temporary_tablespace
2 FROM dba_users
3* WHERE username='SALAPATI';
DEFAULT_TABLESPACE   TEMPORARY_TABLESPACE
-------------------  -------------------------
USERS                TEMPTBS_01
SQL>

Однако новый пользователь не может подключиться к базе данных, поскольку он не обладает никакими полномочиями для этого. Вот что происходит, когда пользователь salapati пытается подключиться посредством интерфейса SQL*Plus: 

$ sqlplus salapati/sammyy1
SQL*Plus: Release 11.1.0.6.0 - Production on Fri Mar 21 11:55:38 2008
Copyright (c) 1982, 2007, Oracle. All rights reserved.ERROR:
Ora-01045: user SALAPATI lacks CREATE SESSION privilege; logon denied
пользователь SALAPATI не имеет полномочий CREATE SESSION; во входе отказано
Enter user-name:
Введите имя пользователя:

Чтобы пользователь salapati мог подключиться к базе и начать обмен данными с ней, ему нужно предоставить системные полномочия CREATE SESSION, как показано в следующем примере: 

SQL> GRANT CREATE SESSION TO salapati;
Grant succeeded.
SQL>

Если вы последовали рекомендациям Oracle и создали заданные по умолчанию временное и постоянное табличные пространства во время создания базы данных, любой новый пользователь сможет применять их, а не табличное пространство System, в качестве временного и постоянного табличных пространств по умолчанию. В любом случае, сразу после создания пользователя он не может создавать новые объекты, такие как таблицы и индексы. В следующем примере USERS — заданное по умолчанию постоянное табличное пространство базы данных, и при попытке пользователя создать таблицу происходит следующее: 

SQL> CONNECT salapati/sammyy1
Connected.
SQL> CREATE TABLE xyz (name VARCHAR2(30));
create table xyz (name varchar2(30))
*
ERROR at line 1:
ORA-01950: no privileges on tablespace 'USERS'
ORA-01950: отсутствие полномочий в табличном пространстве 'USERS'
SQL>

Предположим, что заданное по умолчанию постоянное табличное пространство USERS было назначено всем пользователям. Поскольку пользователь salapati не указал табличное пространство для создания новой таблицы xyz, Oracle пытается создать ее в заданном по умолчанию постоянном табличном пространстве, т.е. USERS. Однако пользователю не была предоставлена какая-либо квота в этом табличном пространстве. По умолчанию пользователям не предоставляются никакие квоты на использование дискового пространства в любых табличных пространствах. Поскольку табличное пространство USERS назначено пользователю, но квота в нем не выделена, пользователь не может создавать какие-либо объекты в USERS. Квоты табличных пространств нужно явно выделять пользователям.

Конкретные квоты табличных пространств принято присваивать во время создания пользователя. Вот как это делается: 

SQL> ALTER USER salapati
2 QUOTA 100M ON users;
User altered.
SQL>

Совет. Если не желаете, чтобы пользователь вообще создавал какие-либо объекты в базе данных, не предоставляйте ему квоту ни в одном из табличных пространств. Если существующий пользователь обладает конкретной квотой в табличном пространстве, с помощью оператора ALTER USER эту квоту можно установить равной 0. При использовании оператора ALTER USER для назначения нулевой квоты во всех табличных пространствах, любые уже созданные пользователем объекты останутся, но пользователь не сможет создавать новые объекты. Существующие объекты не смогут также увеличиваться в размерах, поскольку все квоты табличных пространств будут отозваны.


Как только новому пользователю предоставлена квота в табличном пространстве, он сможет создавать объекты базы данных, такие как таблицы и индексы. По умолчанию любые объекты, созданные пользователем, будут помещаться в заданное по умолчанию постоянное табличное пространство пользователя (в рассматриваемом примере это USERS). Однако пользователь может создавать объекты в любом табличном пространстве, если только обладает в нем квотой дискового пространства. Если требуется, чтобы пользователь имел неограниченные права использования во всех табличных пространствах, ему нужно выдать полномочия UNLIMITED TABLESPACE

SQL> GRANT UNLIMITED TABLESPACE TO salapati;
Grant succeeded.
SQL>

Если желаете, чтобы пользователь создавал собственные табличные пространства, это потребуется разрешить с помощью команды GRANT CREATE TABLESPACE TO имя_пользователя. Аналогично, нужно предоставить полномочия DROP TABLESPACE. Если впоследствии пользователь пожелает создать объекты в созданном им табличном пространстве, никаких квот в нем ему не понадобится. Индивидуальные квоты в дисковом пространстве, выделенные конкретному пользователю, можно просмотреть через представление DBA_TS_QUOTAS

SQL> SELECT tablespace_name, username, bytes FROM DBA_TS_QUOTAS;
TABLESPACE   USERNAME        BYTES
----------   ---------   ---------
SYSAUX       DMSYS          196608
SYSAUX       OLAPSYS      16252928
SYSAUX       WK_TEST      12582912
SYSAUX       SYSMAN       78577664
RMAN_TBSP    RMAN          8585216
SQL>

Как видите, четыре различных пользователя, являющиеся владельцами различных компонентов Oracle, обладают квотами в табличном пространстве Sysaux, а пользователь RMAN имеет квоту в табличном пространстве, созданном исключительно для использования диспетчером восстановления Recovery Manager.

Поскольку они не являются обязательными, можно создать базу данных без заданного по умолчанию временного или постоянного табличного пространства. В подобном случае оба табличных пространства можно назначать явно при создании нового пользователя. Квоту можно присваивать также в заданном по умолчанию постоянном табличном пространстве. Ниже приведен пример создания пользователя с явным указанием заданных по умолчанию табличных пространств (временного и постоянного). Конструкция GRANT QUOTA предоставляет пользователю 500 Мбайт дискового пространства в табличном пространстве USERS, что даст пользователю возможность создавать в нем объекты: 

SQL> CREATE USER salapati IDENTIFIED BY sammyy1
TEMPORARY TABLESPACE TEMPTBS01
DEFAULT TABLESPACE USERS
QUOTA 500M ON USERS;
User created.
SQL>

Если опустить конструкцию QUOTA, новый пользователь не сможет использовать какой-либо объем в табличном пространстве USERS, которое является для него пространством по умолчанию. Если заданное по умолчанию постоянное табличное пространство было создано, как рекомендуют в Oracle, конструкцию DEFAULT TABLESPACE можно опустить. В противном случае ее нужно указать — или же новому пользователю в качестве заданного по умолчанию будет присвоено табличное пространство System, что не очень хорошая идея, поскольку нежелательно, чтобы пользователи имели возможность создавать объекты в этом табличном пространстве.

 

Изменение пользователя

Оператор ALTER USER предназначен для изменения пользователя в базе данных. С его помощью можно выполнять следующие действия:

Ниже приведен пример того, как администратор БД (или сам пользователь) может использовать команду ALTER USER для изменения пароля пользователя:

SQL> SHOW USER
USER is "SALAPATI"
SQL> ALTER USER salapati IDENTIFIED BY sammyy1;
User altered.
SQL>

Только администратор БД или другой пользователь, которому были выданы полномочия ALTER USER, может изменять пароли с помощью оператора ALTER USER. Пользователи могут также изменять свои пароли с помощью команды PASSWORD в интерфейсе SQL*Plus, как показано в следующем примере: 

SQL> PASSWORD
Changing password for SALAPATI
Old password: *********
New password: *********
Retype new password: *********
Password changed
SQL>

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

 

Удаление пользователя

Для удаления пользователя служит оператор DROP USER:

SQL> DROP USER salapati;
User Dropped.
SQL> 

Этот оператор удалит только пользователя из базы данных, но все принадлежащие этому пользователю объекты останутся незатронутыми. Если другие объекты в базе данных зависят от данного пользователя, простую команду DROP USER нельзя будет использовать — потребуется применить оператор DROP USER...CASCADE, который удаляет пользователя, объекты схемы пользователя и любые зависимые объекты. Например: 

SQL> DROP USER salapati CASCADE;
User Dropped.
SQL>

Позже в моем блоге будет рассказано о новой корзине Oracle Recycle Bin, которая предохраняет базу данных от безвозвратного удаления таблицы при выполнении оператора DROP TABLE. Это позволяет при необходимости восстановить “удаленную” таблицу. Однако при удалении пользователя без применения корзины все таблицы и другие объекты в схеме этого пользователя будут безвозвратно удалены! Поэтому, если вы не уверены, потребуются ли объекты пользователя в будущем, но хотите лишить его доступа, просто оставьте пользователя и его схему без изменений, но запретите ему доступ к базе данных, воспользовавшись следующим оператором: 

SQL> REVOKE CREATE SESSION FROM salapati;
Revoke succeeded.
SQL>

Поскольку полномочия CREATE SESSION могут быть предоставлены пользователю посредством другой роли, такой, например, как CONNECT, в Oracle рекомендуют применять оператор ALTER USER имя_пользователя ACCOUNT LOCK, чтобы гарантировать блокирование пользователя от доступа в базу данных.

 

Создание и использование профилей пользователя

Мы уже создали нового пользователя, присвоили ему заданное по умолчанию и временное табличные пространства, а также предоставили полномочия на подключение к базе данных. Но каков предельный объем ресурсов базы данных, который может использовать этот пользователь? Что, если он нечаянно запустит SQL-программу, которая активно поглощает ресурсы ЦП и ставит систему буквально “на колени”?

Индивидуальные ограничения на использование ресурсов в Oracle можно устанавливать с помощью профилей. Профиль (profile) — это коллекция атрибутов, связанных с использованием ресурсов и паролей, которая может быть назначена пользователю. Несколько пользователей могут разделять один и тот же профиль, и в базе данных Oracle может существовать неограниченное количество профилей. Профили накладывают жесткие ограничения на потребление ресурсов различными пользователями в базе данных и помогают ограничивать число одновременно отрытых пользователем сеансов, их продолжительность и использование ЦП и других ресурсов. Вот пример профиля, названного miser (поскольку он ограничивает использование ресурсов минимальными значениями):

SQL> CREATE PROFILE miser
2 LIMIT
3 connect_time 120
4 failed_login_attempts 3
5 idle_time 60
6* sessions_per_user 2;
Profile created.
SQL>

При подключении пользователя, которому присвоен профиль miser, база данных разрешит поддержание соединения в течение минимум 120 секунд и осуществит выход пользователя из базы данных, если он будет бездействовать более 60 секунд. Одновременно пользователь может поддерживать не более двух открытых сеансов. Если три попытки регистрации пользователя окажутся неудачными, его учетные записи будут заблокированы на указанный период времени или до тех пор, пока администратор БД не разблокирует их вручную.


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


 

Параметры и предельные значения профиля

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

 

Параметры ресурсов

Основная причина использования параметров ресурсов — стремление предотвратить монополизацию ресурсов базы данных и сервера одним пользователем или группой пользователей. Наиболее важные параметры ресурсов, которые можно устанавливать в базе данных Oracle Database 11g, перечислены ниже.

      SQL> ALTER RESOURCE COST
      2 cpu_per_session 200
      3 connect_time 2;
      Resource cost altered.
      SQL> 

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


 

Параметры паролей пользователей

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

 

Профиль, заданный по умолчанию

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

SQL> SELECT profile FROM dba_users
WHERE username = 'SALAPATI'
PROFILE
-----------
DEFAULT

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

Результаты запроса таблицы DBA_PROFILES относительно атрибутов профиля default приведены в листинге 12.1.


 

SQL> SELECT DISTINCT resource_name, limit
2 FROM dba_profiles
3* WHERE profile='DEFAULT';
RESOURCE_NAME                    LIMIT
-------------------------------- ----------
PASSWORD_LOCK_TIME               1
IDLE_TIME                        UNLIMITED
CONNECT_TIME                     UNLIMITED
PASSWORD_GRACE_TIME              7
LOGICAL_READS_PER_SESSION        UNLIMITED
PRIVATE_SGA                      UNLIMITED
LOGICAL_READS_PER_CALL           UNLIMITED
SESSIONS_PER_USER                UNLIMITED
CPU_PER_SESSION                  UNLIMITED
FAILED_LOGIN_ATTEMPTS            10
PASSWORD_LIFE_TIME               180
PASSWORD_VERIFY_FUNCTION         NULL
PASSWORD_REUSE_TIME              UNLIMITED
PASSWORD_REUSE_MAX               UNLIMITED
COMPOSITE_LIMIT                  UNLIMITED
CPU_PER_CALL                     UNLIMITED
16 rows selected.
SQL>


Внимание! Если пользователю не назначен профиль, Oracle присваивает такому пользователю профиль, заданный по умолчанию. Поскольку заданный по умолчанию профиль использует значение UNLIMITED для нескольких параметров, назначение его пользователям может в итоге привести к возникновению проблем с использованием ресурсов.


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

 

Назначение профиля пользователю

Профиль можно назначить пользователю при его создании. Например:

SQL> CREATE USER salapati IDENTIFIED BY sammyy1
TEMPORARY TABLESPACE TEMPTBS01
DEFAULT TABLESPACE USERS
GRANT QUOTA 500M ON USERS;
PROFILE 'prod_user';
User created.
SQL> 

Профиль можно назначить пользователю в любое время с помощью оператора ALTER USER, как показано в следующем примере:

SQL> ALTER USER salapati
2 PROFILE test;
User altered.
SQL> 

Оператор ALTER USER можно использовать для установки начального профиля или для замены текущего профиля другим.

 

Изменение профиля пользователя

Профиль можно изменять с применением оператора ALTER PROFILE:

SQL> ALTER PROFILE test
2 LIMIT
3 sessions_per_user 4
4* failed_login_attempts 4;
Profile altered.
SQL> 

Приведенный оператор ALTER PROFILE ограничивает количество сеансов, которые может создать пользователь, а также максимальное число попыток регистрации (прежде чем учетная запись пользователя будет заблокирована) четырьмя.

 

Функция управления паролями пользователей Oracle

Предлагаемый Oracle сценарий utlpwdmg.sql (из каталога $ORACLE_HOME/rdbms/admin) можно использовать для реализации различных функций управления паролями, таких как установка применяемых по умолчанию ограничений ресурсов паролей. Этот сценарий позволяет создавать функцию проверки паролей verify_function_11g. Функция verify_function_11g помогает обеспечить в базе данных требуемый уровень сложности паролей и позволяет настраивать ее для обеспечения проверки заданной сложности паролей. Функция verify_function_11g позволяет реализовать следующие возможности по защите паролей.

Ниже показано, как с применением оператора ALTER PROFILE в сценарии utlpwdmg.sql вначале создать функцию verify_function_11g, а затем изменить профиль default, который поставляется с базой данных и автоматически назначается всем пользователям, не имеющим другого присвоенного профиля. 

ALTER PROFILE DEFAULT LIMITPASSWORD_LIFE_TIME 180
PASSWORD_GRACE_TIME 7
PASSWORD_REUSE_TIME UNLIMITED
PASSWORD_REUSE_MAX UNLIMITED
FAILED_LOGIN_ATTEMPTS 10
PASSWORD_LOCK_TIME 1
PASSWORD_VERIFY_FUNCTION verify_function_11G;

Как только функция verify_function_11g создана, как показано в этом примере, база данных будет автоматически выполнять ее каждый раз, когда администратор БД или пользователь создает или изменяет пароль. Функция обеспечивает соответствие паролей указанным ею требованиям. Разумеется, функцию можно изменять для реализации более строгих проверок паролей в базе данных.

 

Когда изменения профиля вступают в действие?

Если установленное по умолчанию значение false параметра инициализации RESOURCE_LIMIT не будет изменено, выполненные изменения профиля никогда не будут применены. Параметр RESOURCE_LIMIT определяет, действуют ли ограничения ресурсов в профилях базы данных. Поэтому необходимо установить этот параметр в true в файле init.ora и перезапустить базу данных, или же воспользоваться командой ALTER SYSTEM, как показано ниже:

SQL> ALTER SYSTEM SET resource_limit=true;
System altered.
SQL>

Совет. Чтобы ограничения ресурсов, установленные профилями, действовали, параметр инициализации RESOURCE_LIMIT должен быть установлен в true. В противном случае Oracle будет игнорировать ограничения, установленные в операторе CREATE PROFILE или ALTER PROFILE. Атрибуты профиля, связанные с паролями, не зависят от параметра RESOURCE_LIMIT — они автоматически активизируются при создании профиля.


Удаление профиля пользователя

Удаление профиля не представляет сложности. Например, профиль test можно удалить следующим образом:

SQL> DROP PROFILE test CASCADE;
Profile dropped.
SQL>
 

Профиль test назначен нескольким пользователям базы данных, и для его удаления у всех этих пользователей нужно указать ключевое слово CASCADE. Обратите внимание, что пользователям, которым был назначен профиль test, автоматически будет присвоен профиль, заданный по умолчанию.

 

Что происходит при достижении ограничений, установленных в профиле?

Когда пользователь сталкивается с ограничениями на уровне сеанса или вызова, Oracle выполняет откат выполняющегося оператора этого пользователя и возвращает сообщение об ошибке. При достижении предела на уровне вызова (такого как CPU_PER_CALL) сеанс пользователя остается без изменений, и остальные операторы, относящиеся к текущей транзакции, остаются действующими. При достижении предела на уровне сеанса пользователь не может выполнять никакие дальнейшие действия в данном сеансе.

 

Как определить оптимальные ограничения профиля?

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

Используя атрибут профиля IDLE_TIME, можно ограничить продолжительность временного интервала, в течение которого сеанс пользователя остается бездействующим. Однако применение пакета DBMS_RESOURCE_MANAGER может оказаться более эффективным способом управления временем бездействия подключения пользователя. Используя пакет "диспетчера ресурсов базы данных", можно установить максимальный предел времени бездействия сеанса, а также продолжительность временного интервала, в течение которого бездействующий сеанс может блокировать другие сеансы.

Постарайтесь собрать определенную информацию на основе тестовых выполнений тех или иных задач. При отсутствии надежных ретроспективных данных воспользуйтесь оператором AUDIT SESSION для сбора данных базовой линии для нескольких параметров, вроде времени подключения и количества логических чтений. Для сбора данных можно применять также OEM (Oracle Enterprise Manager — Диспетчер предприятия Oracle). Кроме того, могут пригодиться отзывы (или нарекания) самих пользователей по поводу программ, которые дают сбои из-за ограничений на использование ресурсов или требуют более длительного подключения к серверу базы данных.

 

Управление ресурсами

При наличии большого числа пользователей управление ресурсами становится важной задачей. Ресурсы сервера строго ограничены, и администратор должен располагать определенными средствами распределения скудных ресурсов между пользователями. Oracle предлагает мощный инструмент — Database Resource Manager (Диспетчер ресурсов базы данных), — который позволяет точно управлять использованием ресурсов базы данных.

Для управления использованием ресурсов в базе данных можно применять профили пользователей, описанные в предыдущем разделе, или Database Resource Manager. Профили пользователей эффективны при управлении использованием ресурсов отдельными пользователями, но специалисты Oracle предпочитают применять профили в основном только для управления паролями. Управлять использованием ресурсов в Oracle рекомендуют с помощью Database Resource Manager.

Вас заинтересует / Intresting for you:

Видеокурс по администрированию...
Видеокурс по администрированию... 10719 просмотров Илья Дергунов Mon, 14 May 2018, 05:08:47
Создание базы данных Oracle
Создание базы данных Oracle 34260 просмотров Александров Попков Wed, 14 Nov 2018, 12:44:39
Поддерживаемые Oracle типы дан...
Поддерживаемые Oracle типы дан... 9517 просмотров Валерий Павлюков Wed, 24 Oct 2018, 08:00:37
Обновление до Oracle Database ...
Обновление до Oracle Database ... 7827 просмотров Илья Дергунов Tue, 21 Nov 2017, 13:18:05
Печать
Войдите чтобы комментировать