Лабораторная работа №4. Указания к выполнению.

1. Получение информации об учетных записях.

Список всех учетных записей.

dba_users

Перечень полей:


username

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

user_id

Идентификатор

password

Не используется

account_status

Состояние учетной записи

    OPEN EXPIRED EXPIRED(GRACE) LOCKED(TIMED) LOCKED EXPIRED & LOCKED(TIMED) EXPIRED(GRACE) & LOCKED(TIMED) EXPIRED & LOCKED EXPIRED(GRACE) & LOCKED

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;