Лабораторная работа №4. Указания к выполнению.
1. Получение информации об учетных записях.
Список всех учетных записей.
dba_users
Перечень полей:
username | Имя пользователя |
user_id | Идентификатор |
password | Не используется |
account_status | Состояние учетной записи
|
lock_date | Дата блокировки |
expiry_date | Дата истечения действия пароля учетной записи |
default_tablespace | Табличное пространство по умолчанию |
temporary_tablespace | Табличное пространство временных данных по умолчанию. |
created | Дата создания |
profile | Профиль свойств учетной записи |
Список учетных записей с паролями, установленными по умолчанию:
DBA_USERS_WITH_DEFPWD
Учетные записи, пароли которых хранятся в отдельном файле:
v$pwfile_users
2. Создание и изменение учетных записей
2.1 Создание пользователей
CREATE USER <имя> IDENTIFIED BY <пароль>
[DEFAULT TABLESPACE <табличное пространство>]
[TEMPORARY TABLESPACE <табличное пространство>]
[QUOTA <размер> | UNLIMITED ON <табличное пространство> [QUOTA… ] ]
[PASSWORD EXPIRE]
[ACCOUNT LOCK/UNLOCK];
Изменение пользователя:
ALTER USER <имя> … далее параметры аналогичные операции CREATE USER
3. Управление свойствами ученых записей
3.1 Профили
Профили определяют базовые свойства, применяемые к учетным записям, к которым они относятся. Имя профиля, назначаемого всем учетным записям по умолчанию – DEFAULT.
Информация о параметрах профилей представлена в представлении словаря данных:
dba_profiles:
profile – имя профиля
resource_name – название свойства
resource_type – категория свойтв
limit – значение.
Свойства, определяющие политику использования паролей:
failed_login_attempts | Максимальное число попыток неудачного ввода пароля перед блокировкой учетной записи |
password_grace_time | Количество дней, в течение которых пользователь будет предупреждаться о том, что срок действия его пароля истек.. |
password_life_time | Число дней по истечении которых пароль должен быть изменен. |
password_lock_time | Количество дней на которое учетная запись будет заблокирована, после достижения предела количества неудачных попыток аутентификации. |
password_reuse_max | Количество изменений пароля перед тем, как он может быть установлен снова. |
password_reuse_time | Число дней, которое должно пройти перед тем, как значение пароля будет возвращено. |
3.3 Привилегии SYSDBA и SYSOPER,
позволяют пользователю, обладающему ими и подключившемуся с указанием “as SYSDBA” или “as SYSOPER”:
SYSDBA:
- STARTUP и SHUTDOWN ALTER DATABASE: open, mount, back up, или изменять кодировку б. д. CREATE DATABASE DROP DATABASE CREATE SPFILE ALTER DATABASE ARCHIVELOG ALTER DATABASE RECOVER RESTRICTED SESSION ALTER DATABASE RECOVER подключаться как пользователь SYS
SYSOPER:
- STARTUP и SHUTDOWN CREATE SPFILE ALTER DATABASE OPEN/MOUNT/BACKUP ALTER DATABASE ARCHIVELOG ALTER DATABASE RECOVER (Только полное восстановление. Другие формы восстановления, такие как UNTIL TIME|CHANGE|CANCEL|CONTROLFILE требуют SYSDBA.) RESTRICTED SESSION Нет возможности просмотра любых данных
3.4 Файл паролей
Файл паролей предназначен для хранения паролей пользователей обладающих привилегиями SYSDBA, SYSOPER, SYSASM.
Расположение - <Oracle home>\database\pwd<oracle sid>.ora
Получить значения Oracle Home и Oracle Sid можно из реестра Windows, например, выполнив в консоли power shell команду
reg query HKLM\Software\Oracle /s | select-string "ORACLE_HOME"
и
reg query HKLM\Software\Oracle /s | select-string "ORACLE_SID"
Использование файла паролей определяется значением параметра инициализации REMOTE_LOGIN_PASSWORDFILE
Возможные значения
none: файл паролей не используется. Авторизация как sysdba, sysoper, sysasm разрешается только
пользователям, подлинность которых проверена на уровне операционной системы сервера. Т. е. можно подключаться как sysdba или sysoper из под пользователя операционной системы члена групп ora_dba/ora_oper.
exclusive: файл паролей используется и может содержать данные как пользователя SYS, так и других пользователей. Может использоваться только одной базой данных.
shared. Может использоваться несколькими базами данных.
Данный параметр является статическим и может изменять значение только после перезапуска экземляра.
4. Управление привилегиями
Предоставление и изъятие
- GRANT <привилегия> | ALL PRIVILEGES TO <получатель> [WITH ADMIN OPTION] REVOKE <привилегия> | ALL PRIVILEGES FROM <владелец>
Объектные привилегии
Предоставление:
GRANT <привилегия>| ALL [<имя столбца [,<имя столбца …> ]>] ON <схема>.<объект> TO <получатель> [WITH GRANT OPTION]
Изъятие:
- REVOKE <привилегия>| ALL [<имя столбца [,<имя столбца …> ]>] ON <схема>.<объект> FROM <владелец>
Представления словаря данных :
DBA_SYS_PRIVS, USER_SYS_PRIVS - системные привилегии всех пользователей/текущего пользователя.
DBA_TAB_PRIVS / USER_TAB_PRIVS - привилегии на все объекты /привилегии выданные текущему пользователю
Создание роли:
CREATE ROLE <имя роли> [NOT IDENTIFIED | IDENTIFIED BY <пароль>];
Предоставление роли пользователю –аналогично системным привилегиям.
Включение роли пользователем:
SET ROLE <роль> [IDENTIFIED BY <пароль>] [, <роль>… ] | ALL [EXCEPT <роль,…> ] | NONE;
Назначение роли по умолчанию:
ALTER USER <пользователь> DEFAULT ROLE <роль> [, <роль>… ] | ALL [EXCEPT <роль,…> ] | NONE;
Получение информации о ролях:
- DBA_ROLES – все роли, определенные в б. д. DBA_ROLE_PRIVS / USER_ROLE_PRIVS / ROLE_ROLE_PRIVS – роли выданные всем пользователям (ролям)/текущему пользователю/ ролям выданным текущему пользователю. SESSION_ROLES – роли включенные в текущем сеансе.
SESSION_PRIVS – привилегии доступные в текущем сеансе.
5. Аудит
Инициализационный параметр AUDIT_TRAIL:
- DB запись в б. д. OS запись в файлы операционной системы NONE аудит отключен (по умолчанию)
Включение и отключение аудита
- AUDIT <инструкция для команды> | <инструкция для объекта> [BY SESSION | BY ACCESS] [WHENEVER [NOT] SUCCESSFUL] NOAUDIT < инструкция для команды > | < инструкция для объекта > [BY SESSION | ACCESS]
Примеры:
- AUDIT SESSION BY TEST_USER; AUDIT INSERT, UPDATE, DELETE ON TAB1; AUDIT TABLE;
Получение записей:
- DBA_AUDIT_TRAIL – информация о всех действиях которые были запротоколированы DBA_AUDIT_SESSION – информация о запротоколированных сеансах DBA_AUDIT_OBJECT – запротоколированные действия об объектах
6. Детальный контроль сетевого доступа
Создание списка доступа:
begin
dbms_network_acl_admin. create_acl(acl => '<имя списка>.xml',
description => '<комментарий>',
principal => '<пользователь>',
is_grant => true,
privilege => '<привилегия>');
end;
/
Добавление привилегии в список доступа
begin
dbms_network_acl_admin. add_privilege (
acl => '<имя списка>.xml',
principal => '<пользователь>',
is_grant => true,
privilege => '<привилегия>');
end;
/
Для доступа к страницам сайтов по http достаточно установить привилегии connect и resolve.
Связывание сетевого ресурса со списком доступа:
begin
dbms_network_acl_admin. assign_acl (
acl => '<имя списка>.xml',
host => '<адрес ресурса>',
lower_port => 80,
upper_port => null);
end;
/
Обратные операции
Открепление ресурса от списка доступа:
BEGIN
DBMS_NETWORK_ACL_ADMIN. UNASSIGN_ACL(
host => '<адрес ресурса>',
lower_port => 80);
END;
Удаление привилегии:
BEGIN
DBMS_NETWORK_ACL_ADMIN. DELETE_PRIVILEGE(
acl => '<имя списка>.xml',
principal => '<пользователь>)
END;
Уничтожение списка доступа:
BEGIN
DBMS_NETWORK_ACL_ADMIN. DROP_ACL(
acl => '<имя списка>.xml');
END;


