Календарь на Май 2024 года: calendar2008.ru/2024/may/
Навигация
Главная »  Sql 

Создаем пользователя с аутнетификацией на уровне ОС и парольной аутентификацией


Источник: all-oracle
Рекомендовано для:
  • Oracle Database 8i
  • Oracle Database 9i R1
  • Oracle Database 9i R2
  • Oracle Database 10g R1
  • Oracle Database 10g R2
  • Oracle Database 11g R1
  • Oracle Database 11g R2
 
В этой статье расскажу о создании пользователя, который аутентифицируется на уровне операционной системы и имеет парольную аутентификацию.

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

Параметр REMOTE_OS_AUTHENT может принимать значения типа BOOLEAN, FALSE - значение по умолчанию, которое может быть изменено командой ALTER SYSTEM. Этот параметр доступен начиная с Oracle версии 7. Начиная с 11g (11.1.0.6) считается устаревшим, и присутствует только для обратной совместимости.

OS_AUTHENT_PREFIX определяет префикс, который Oracle использует для аутентификации пользователей, пытающихся подключиться к серверу. Oracle пристыкоавывает значение этого параметра перед именем пользователя операционной системы и пароля. При запросе подключения Oracle сравнивает имя пользователя с префиксом с именем пользователя в базе данных Oracle. По умолчанию значение параметра OPS$, для обратной совместимости с предыдущими версиями. Вы можете задать его значение пустым, таким образом префикс убираетсяЮ и имена операционной системы и Oracle совпадают.

Следующий пример иллюстрирует как можно подключиться используя одну учетную запись с паролем и без пароля.

Важно: Этот пример носит учебный характер, настоятельно не рекоммендуется повторять подобное на промышленных серверах.

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

SQL> show parameter os_authent NAME                                 TYPE        VALUE ------------------------------------ ----------- ------------------------------ os_authent_prefix                    STRING      OPS$ remote_os_authent                    BOOLEAN     FALSE SQL>
REMOTE_OS_AUTHENT может быть выставлено в TRUE командой ALTER SYSTEM, но не вступит в силу до тех пор, пока экземпляр не будет перезапущен.

SQL> ALTER SYSTEM SET REMOTE_OS_AUTHENT=TRUE SCOPE=SPFILE; System altered.
Проверяем:

SQL> show parameter os_authent NAME                                 TYPE        VALUE ------------------------------------ ----------- ------------------------------ os_authent_prefix                    STRING      OPS$ remote_os_authent                    BOOLEAN     TRUE SQL>
Теперь создадим пользователя (схему) используя обычный метод, т.е. identified by вместо identified externally.

SQL> CREATE USER OPS$ALL_ORACLE IDENTIFIED BY MYPASSWORD; User created. SQL> GRANT CONNECT TO OPS$ALL_ORACLE; Grant succeeded
Подключаемся как пользователь операционной системы, вам будет позволено подключиться к базе данных без пароля, используя аутентификацию операционной системы.

$ sqlplus /@test
SQL*Plus: Release 10.2.0.1.0 - Production on Tue Jan 12 10:23:00 2010 Copyright (c) 1982, 2005, Oracle.  All rights reserved. Connected to:
Oracle Database 10g Release 10.2.0.1.0 - 64bit Production
SQL>

Проверяем текущего пользователя:

SQL> show user USER is "OPS$ALL_ORACLE"
Теперь проверяем подключение с паролем:

SQL> connect ops$all_oracle/mypassword@test Connected. SQL> show user USER is "OPS$ALL_ORACLE"


 

 Как обязать СУБД применять к запросам конкретные приемлемые планы.
 Блокировки Oracle при неиндексированных внешних ключах.
 Объекты в Oracle - это очень просто.
 Аналитические функции в Oracle (Часть 2).
 Выводимые таблицы с хранимым результатом. Часть 1.


Главная »  Sql 

© 2024 Team.Furia.Ru.
Частичное копирование материалов разрешено.