Гостевая
Форум
Разделы
Главная страница
Js скрипты
Php скрипты
Html шаблоны
Книги по Web дизайну
Статьи


Главная страница статей --> Советы по фотошопу, графике и хитрости в построении php кода

Единая аутентификация Windows NT/2000 и Oracle

Источник: realcoding.net

При использовании Windows NT/2000 как платформы для работы Oracle, и на стороне сервера и на стороне клиентов, имеется возможность использовать единую систему аутентификации для пользователей базы данных и операционной системы.

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

При включении такого механизма аутентификации, Oracle полностью полагается на операционную систему, которая согласно своим правилам, принимает или отвергает запросы удаленных клиентских машин на использование внутренних ресурсов. В Windows NT/2000 единый механизм аутентификации применяется повсеместно, для доступа к различным сервисам. Например, при работе Exchange Server или SQL Server Вам, скорее всего не придется вводить имя и пароль второй раз, после того как вы уже произвели аутентификацию при входе в Windows (все зависит от настроек). Oracle тоже может интегрироваться сWindows, используя единый механизм аутентификации. При подобной аутентификации, Oracle, используя несложные правила, пытается сопоставить имя пользователя Windows с зарегистрированным пользователем базы данных. Я не знаю другой операционной системы, кроме Windows, где бы возможно было использование подобного механизма аутентификации без привлечения программного обеспечения третьих фирм (с удовольствием сделаю коррекцию этого утверждения, если, кто ни будь, имеет другие сведения).

Для использования единой аутентификации, в поставке Oracle как сервера, так и клиента для Windows NT, есть специальный аутентификационный адаптер. Как на клиенте, так и на сервере этот адаптер активизируется при занесении в файл sqlnet.ora строки “SQLNET.AUTHENTICATION_SERVICES= (NTS)”. Во время инсталляции Oracle 8i подобная строка прописывается в этот файл автоматически.

Аутентификация администраторов


Решение имеет или не имеет право пользователь Windows произвести соединение с базой данных как SYSDBA, Oracle производит на основании проверки принадлежности этого пользователя в одну из предопределенных групп операционной системы:

- Группа ORA_DBA позволяет всем входящим в нее пользователям регистрироваться как SYSDBA на любом экземпляре (instance), работающем на данной машине (или любом экземпляре любой машины домена, если группа определена на уровне домена).

- Группа ORA_XXX_DBA (где XXX – имя экземпляра) позволяет подобную регистрацию только в экземпляре с именем XXX.

Если вышеприведенное условие соблюдено, то пользователь может произвести регистрацию как SYSDBA, введя следующее:

SQL>  connect / as sysdba

или

SQL>   connect /@SERVICE_NAME as sysdba

При инсталляции Oracle 8i, программа установки автоматически создает локальную группу с названием “ORA_DBA” и добавляет в нее текущего пользователя.

Аутентификация пользователей


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

Подобная ассоциация может производиться с или без использования доменного имени пользователя Windows.

Используется или нет имя домена, определяется значением регистровой переменной OSAUTH_PREFIX_DOMAIN. При установке этой переменной в значение TRUE производится учет доменного имени, в FALSE, соответственно нет. Эта переменная в регистре располагается по следующему адресу: HKEY_LOCAL_MACHINE\SOFTWARE\ORACLE\ HOMEID (где ID номер 0,1,2…)

Кроме этого при сопоставлении имен, учитывается значение параметра Oracle OS_AUTHEN_PREFIX (значение по умолчанию OPS$).

При попытке пользователя произвести соединение через SQL*Plus следующей строкой:

SQL> connect /

или

SQL> connect / @SERVICE_NAME

Oracle пытается найти пользователя базы данных с именем сформированным из значения параметра OS_AUTHENT_PREFIX, имени домена(если домен используется) и имени пользователя Windows. Например, имеем пользователя SCOTT из домена DOMAIN и значение переменной OS_AUTHENT_PREFIX равное “OS_”.

- Без учета домена Oracle будет искать пользователя базы данных с именем OS_SCOTT;

- С учетом домена, с именем OS_DOMAIN\SCOTT

При создании пользователя базы данных должна задаваться внешняя аутентификация. Например:

SQL> create user “OS_DOMAIN\SCOTT” identified externally;

Т.е. этот пользователь не может произвести соединение через стандартную процедуру аутентификации Oracle, по той простой причине, что не имеет пароля. Исключение из правила при использовании внешней аутентификации происходит только тогда, когда параметр OS_AUTHENT_PREFIX имеет значение по умолчанию (“OPS$”). В этом случае пользователь, может использовать внешнюю аутентификацию, даже если он был создан с обычным паролем.

SQL> create user SCOTT identified by TIGER;


В пакете установки для Windows, Oracle поставляет инструмент Oracle Administration Assistant for Windows NT, с помощью которого можно все перечисленные действия автоматизировать.

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

Важное замечание: При использовании подобной аутентификации Вам не нужно устанавливать параметр REMOTE_OS_ATHENT=TRUE. Более того Oracle всегда рекомендует воздержатся от включения этого параметра - потому как это создает огромную дыру в безопасности системы.



Похожие статьи:
- Защищаем Perl
- Работа с шаблонами, использование HTML-Template с CGI-скриптами
- Управление доступом к базам MySQL
- Практическое пособие по написанию слоганов для веб-сайтов
- Кроссбраузерный DHTML
- Partner Links: оптимизируй обмен ссылками
- Естественные ключи против искусственных ключей
- Советы по увеличению индекса цитирования
- Работа с Cookies на PHP
- Upload файлов, и все с этим связанное
- Гостевая книга на ASP.NET
- Отправка писем в правильной кодировке на PHP
- Почему mod_perl?


Оглавление | Обсудить на форуме | Главная страница сайта | Карта сайта |
[0.001]