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

Предоплата всего

Подписываем
Если у вас возникли сложности с курсовой, контрольной, дипломной, рефератом, отчетом по практике, научно-исследовательской и любой другой работой - мы готовы помочь.
Предоплата всего
Подписываем
ЛАБОРАТОРНАЯ РАБОТА №5
«УПРАВЛЕНИЕ ПОЛЬЗОВАТЕЛЯМИ БАЗЫ ДАННЫХ, СЕССИЯМИ И ИСПОЛЬЗОВАНИЕМ СИСТЕМНЫХ РЕСУРСОВ»
Ознакомиться с последовательностью шагов администратора БД для создания и управления пользователями БД и контроля использования системных ресурсов.
Перед выполнением лабораторной работы необходимо изучить материалы лекций по данной дисциплине и литературу.
СОЗДАНИЕ И УПРАВЛЕНИЕ УЧЕТНЫМИ ЗАПИСЯМИ
Одной из обязанностей DBA является управление учетными записями пользователей. Следует различать понятия пользователь и учетная запись. Пользователь человек, у которого есть учетная запись, посредством которой определяются его полномочия и разрешения в пределах базы данных. В дальнейшем понятия пользователя и учетной записи будут тождественны, но всегда стоит помнить различие между ними.
Для подключения к базе данных у пользователя должна быть учетная запись. Параметры учетной записи, права и привилегии определяют возможности пользователя в пределах базы данных. Для управления учетными записями используются три предложения на языке SQL, это CREATE USER для создания учетной записи, и ALTER USER для изменения существующей учетной записи и DROP USER для удаления.
Атрибуты учетной записи
Учетная запись имеет набор атрибутов, определяемых на стадии создания. Эти атрибуты:
Имя пользователя
Имя пользователя в пределах базы данных должно быть уникальным. Длина не должна превышать 30 символов. Имя может состоять из латинских букв, цифр, знака доллар ($) и знака подчеркивания (_). Имя пользователя не может быть зарезервированным словом. Если требуется создать пользователя с какими-либо спецсимволами в имени, то для этого необходимо заключить имя в двойные кавычки. Ниже это будет показано.
До версии Oracle Database 11g регистр имени не учитывался, и оно автоматически переводилось в верхний регистр. Начиная с 11 версии, появилась возможность использования регистрозависимых учетных записей. После того как учетная запись создана, изменить ее имя нельзя. Для изменения придется создать новую, с требуемым именем и удалить старую.
В случае удаления учетной записи, вместе с ней удаляются и все объекты, принадлежащие этому пользователю.
Синтаксис команды create user
Пример команды создания пользователя:
CREATE USER ALL_ORACLE IDENTIFIED BY parol;
CREATE USER “ALL_ORACLE%” IDENTIFIED BY parol;
Ключевое слово IDENTIFIED BY указывает пароль пользователя и метод аутентификации пользователя парольный.
Синтаксис команды alter user
proxy_clause
db_user_proxy
Синтаксис команды drop user
Метод аутентификации
Различаются несколько методов аутентификации пользователей в Oracle: парольная, внешняя и глобальная.
Парольная аутентификация
При попытке пользователя подключится к базе данных с использованием парольной аутентификации, база данных проверят имя пользователя и пароль на совпадение с данными, сохранёнными в словаре данных.
В случае совпадения пользователь соединяется с БД, в противном случае ему отказывается в доступе.
Парольная аутентификация является наиболее распространенной при авторизации пользователей. Пароль пользователя хранится в словаре данных в зашифрованном виде.
Внешняя аутентификация
При внешней аутентификации, при попытке пользователя подключится к базе данных, она проверяет учетную запись пользователя, и доверяет операционной системе. Т.е. если аутентификация пользователя в операционной системе прошла успешно, то база данных позволяет ему создать соединение.
Для пользователей, авторизуемых операционной системой, база данных не хранит пароли и не проверяет их корректность.
Когда в Oracle появилась такая возможность (в Oracle 6), такие учетные записи имели префикс OPS$. Имена таких пользователей можно настраивать, указав OS_AUTHENT_PREFIX при инициализации или в SPFILE файле. Например, создадим пользователя ALL_ORACLE_EXT:
CREATE USER OPS$ALL_ORACLE_EXT IDENTIFIED EXTERNALLY;
Ключевое слово IDENTIFIED EXTERNALLY указывает базе данных на то, что учетная запись авторизуется внешне.
Часто учетные записи с внешней аутентификацией используются для исполнения административных скриптов, которые могут быть прочитаны посторонними людьми.
Табличное пространство по умолчанию и ограничения
Каждому пользователю назначается табличное пространство по умолчанию. В нем пользователь хранит свои объекты. Указать табличное пространство по умолчанию можно либо при создании, либо при модификации учетной записи:
CREATE USER ALL_ORACLE IDENTIFIED BY qwerty DEFAULT TABLESPACE USERS;
или
ALTER USER ALL_ORACLE DEFAULT TABLESPACE USERS;
Для изменения табличного пространства по умолчанию в базе данных используется предложение ALTER DATABASE:
ALTER DATABASE DEFAULT TABLESPACE users;
В случае создания объектов пользователем, если для него явно не указано табличное пространство по умолчанию, то будет использоваться табличное пространство, определенное по умолчанию для базы данных.
После создания базы данных никогда не оставляйте по умолчанию табличное пространство SYSTEM. Либо смените во время создания, либо после создания базы данных укажите другое табличное пространство по умолчанию.
Квота на табличное пространство это объем пространства, который может использовать пользователь. В пределах указанных ограничений он может создавать объекты, хранить данные и т.д. Как только предел будет достигнут, пользователь не сможет ничего сохранить. Изменить квоту можно в любое время. Ниже показаны примеры назначения квоты на табличные пространства для пользователя ALL_ORACLE:
ALTER USER ALL_ORACLE QUOTA 100M ON SYSTEM;
ALTER USER ALL_ORACLE QUOTA UNLIMITED ON USERS;
ALTER USER ALL_ORACLE QUOTA UNLIMITED ON EXAMPLE;
Временное табличное пространство
Каждому пользователю назначается временное табличное пространство, в котором база данных хранит временные сегменты. Временные сегменты создаются во время операций: ORDER BY, GROUP BY, SELECT DISTINCT, MERGE JOIN или CREATE INDEX.
Так же временные сегменты используются при использовании временных таблиц. База данных создает и удаляет временные сегменты прозрачно для пользователя. Для использования табличного пространства как временного, требуется указать тип табличного пространства TEMPORARY.
Если вы явно не указали временное табличное пространство для пользователя во время создания, база данных присвоит временное табличное пространство, определенное по умолчанию для базы данных, пользователю. Для указания временного табличного пространства пользователю используется предложение TEMPORARY TABLESPACE:
CREATE USER ALL_ORACLE IDENTIFIED BY qwerty
DEFAULT TABLESPACE USERS
TEMPORARY TABLESPACE TEMP;
Или в предложении ALTER USER:
ALTER USER ALL_ORACLE
TEMPORARY TABLESPACE TEMP;
Для изменения временного табличного пространства в базе данных используется конструкция ALTER DATABASE:
ALTER DATABASE DEFAULT TEMPORARY TABLESPACE temp;
Назначение профиля пользователю
В дополнение к временному табличному пространству и табличному пространству по умолчанию, пользователю назначается профиль. Профиль содержит ограничения на использование ресурсов и правила управления паролем.
Профиль по умолчанию так и называется default. Для явного назначения профиля пользователю в предложение CREATE USER или ALTER USER добавляется ключевое слово PROFILE и указывается имя профиля. Например:
CREATE USER ALL_ORACLE IDENTIFIED BY qwerty
DEFAULT TABLESPACE USERS
TEMPORARY TABLESPACE TEMP
PROFILE resource_profile;
или
ALTER USER ALL_ORACLE
PROFILE resource_profile;
Статусы учетной записи
Для блокировки и разблокировки учетной записи используются команды:
ALTER USER username ACCOUNT LOCK;
ALTER USER username ACCOUNT UNLOCK;
Чтобы заставить пользователя сменить пароль используйте команду:
ALTER USER username PASSWORD EXPIRE;
Управление учетными записями средствами EM
Все вышеописанные действия с учетными записями можно выполнить с использованием графической оболочки Oracle Enterprise Manager. Для получения списка пользователей в EM переходим на закладку Administration, раздел Users&Privileges, в нем выбираем Users. В результате получим список пользователей базы данных:
Для создания нового пользователя нажимаем кнопку Create, и в появившемся окне заполняем поля. Для уменьшения вероятности ошибки, табличные пространства, профиль пользователя и метод аутентификации выбираются из списка.
После заполнения необходимых полей, нажав на кнопку Show SQL, вы увидите, что EM сформировал обычную SQL команду на создание пользователя. Ее можно скопировать и выполнить в любом SQL редакторе. После нажатия кнопки OK, учетная запись пользователя будет создана.
После создания учетной записи пользователя и переведя её в режим редактирования можно назначить квоты на табличные пространства, если этого не было сделано при создании, на закладке Quotas:
УПРАВЛЕНИЕ ПРОФИЛЯМИ
Синтаксис команды create profile
resource_parameter
password_parameter
Синтаксис команды alter profile
Управление профилями средствами EM
Для получения списка профилей в EM переходим на закладку Administration, раздел Users&Privileges, в нем выбираем Profile. В результате получим список профилей:
Для создания нового профиля нажимаем кнопку Create, и в появившемся окне заполняем поля, которые делятся на 2 группы: общие (General) и управление паролями (Password). Для уменьшения вероятности ошибки, значения полей выбираются из списка.
УДАЛЕНИЕ СЕАНСА ПОЛЬЗОВАТЕЛЯ
В некоторых ситуациях требуется принудительно завершить пользовательский сеанс. Например, требуется выполнить какие либо административные работы на сервере.
При завершении сеанса, транзакции этого сеанса откатываются и все ресурсы (такие как, блокировки и области памяти) освобождаются и становятся доступными для других сеансов.
Удаление сеанса пользователя необходимо, если:
В качестве альтернативы для удаления сеансов пользователей при остановке базы данных используются режимы IMMEDIATE или TRANSACTIONAL.
Завершение текущего сеанса осуществляется с использованием SQL предложения ALTER SYSTEM KILL SESSION.
Команда ALTER SYSTEM KILL SESSION выполняет следующие действия
Идентификация сеанса, который требуется завершить
Для идентификации сеанса, который требуется завершить, указывается номер индекса и серийный номер. Для идентификации индекса (SID) и серийного номера выполняется запрос к представлению V$SESSION.
Следующий запрос выбирает все сеансы пользователя TEST:
SELECT SID, SERIAL#
FROM V$SESSION
WHERE USERNAME = 'TEST';
SID SERIAL# STATUS
----- --------- --------
7 15 ACTIVE
12 63 INACTIVE
Сеанс со статусом ACTIVE это сеанс, выполняющий SQL инструкции и обращающийся к серверу Oracle. Сеанс со статусом INACTIVE если не выполняется инструкция SQL или нет обращений к серверу.
Завершение активных сеансов
Если пользователь выполняет SQL инструкции, обращается к серверу Oracle, т.е. его сеанс имеет статус ACTIVE, и его сеанс принудительно завершен, то пользователь немедленно получит сообщение об ошибке:
ORA-00028: your session has been killed
Если после получения сообщения об ошибке пользователь пытается сохранить какие-либо данные или выполняет SQL предложение, то Oracle вернет ошибку:
ORA-01012: not logged on
Иногда активный сеанс не может быть прерван, например, выполняется откат транзакции или идут операции ввода/вывода в сети. В этом случае сеанс держит все ресурсы до своего завершения. Сеанс, выполняющий предложение ALTER SYSTEM, перед завершением ожидает 60 секунд, и затем завершается. Если сеанс не завершается по истечении 60 секунд, то пользователь, инициирующий завершение такого сеанса, получает сообщение о том, что сеанс имеет статус KILLED.
Завершение неактивных сеансов
Если сеанс, имеющий статус INACTIVE, прерывается, сообщение об ошибке (ORA-00028: your session has been killed) возвращается пользователю только при попытке использовать разорванный сеанс.
Как только неактивный сеанс прекращен, его STATUS в представлении V$SESSION принимает значение KILLED.
Для прекращения неактивного сеанса делается выборка из представления V$SESSION для определения SID и номера сеанса, затем сеанс прерывается.
SELECT SID, SERIAL#, STATUS, SERVER
FROM V$SESSION
WHERE USERNAME = 'TEST';
SID SERIAL# STATUS SERVER
----- -------- --------- ---------
7 15 INACTIVE DEDICATED
12 63 INACTIVE DEDICATED
2 rows selected.
ALTER SYSTEM KILL SESSION '7,15';
Statement processed.
Управление сессиями средствами EM
Для получения списка сессий в EM переходим на закладку Perfomance, раздел Additional Monitoring Links (нижней части страницы), в нем выбираем Search Sessions.
При просмотре списка сессий возможно задание фильтра.
Для просмотра свойств сессий кликнете на значении её SID.
В последующих пунктах лабораторной работы табличное пространство SYSTEM "разгружается" от временных и других сегментов, не относящихся к словарю данных базы данных
СОДЕРЖАНИЕ ОТЧЕТА