• Главная
  • Карта сайта
Не найдено

Аутентифікація засобами Windows на сервері Oracle

  1. Підтвердження ідентичності користувачів баз даних за допомогою призначених для користувача імен і паролів...
  2. Windows-аутентифікація на сервері без групи
  3. Аутентифікація віддалених клієнтів Windows
  4. знайома модель
  5. Програма SQL * Plus для управління Oracle
Підтвердження ідентичності користувачів баз даних за допомогою призначених для користувача імен і паролів Windows

Паролі, необхідні для доступу до баз даних Oracle, зазвичай зберігаються на серверах бази даних. Адміністраторів баз даних такий порядок цілком влаштовує, проте є у нього і свої недоліки. Якщо користувач, скажімо, забув пароль і виникла необхідність його поміняти, без адміністратора ніяк не обійтися. Або інший приклад: синхронізацію паролів Windows і паролів баз даних Oracle можна здійснювати тільки вручну. А ось в системі Microsoft SQL Server вбудована функція захисту дозволяє забезпечувати безпечний доступ до бази даних за допомогою імен користувачів і паролів Windows. І коли користувачам потрібно встановлювати заново свої паролі, адміністратор SQL Server може доручити виконання цього завдання співробітникам служби підтримки.

Існує можливість налаштовувати сервери баз даних таким чином, щоб вони використовували засоби аутентифікації операційної системи (за термінологією Oracle - кошти зовнішньої аутентифікації), аналогічні вбудованої функції аутентифікації SQL Server. Але перш ніж приступити до використання засобів аутентифікації Windows при наданні доступу до бази даних Oracle, слід розібратися, які наслідки матимуть ці дії з точки зору безпеки даних. Треба сказати, що деталі авторизації користувачів Oracle, зареєстрованих на сервері Oracle, істотно відрізняються від деталей авторизації користувачів Oracle, зареєстрованих на віддалених клієнтів, тому в даній статті я розглядаю обидва сценарії.

Windows-аутентифікація групи на сервері бази даних

При установці Oracle на сервері Windows система створює групу Windows ORA_DBA і автоматично включає в цю групу обліковий запис Windows, що використовувалася в ході установки Oracle. Потім адміністратор бази даних може включити в цю групу інших користувачів Windows, яким потрібен повний набір привілеїв адміністратора бази даних Oracle. Але потрібно діяти обережно: що входять до групи ORA_DBA локальні і доменні користувачі Windows не зобов'язані пред'являти призначені для користувача імена і паролі Oracle. У властивості Description групи ORA_DBA вказується, що члени групи можуть створювати з'єднання з базою даних Oracle в якості адміністраторів бази даних без пред'явлення паролів.

Для того щоб база даних Oracle сприймала користувачів групи ORA_DBA як пройшли процедуру аутентифікації, необхідно належним чином налаштувати файл sqlnet.ora, показаний на екрані 1 . У системах Oracle9i і Oracle8i даний файл розміщується в папці \% ORACLE_HOME% etworkadmin folder, де% ORACLE_HOME% означає маршрут, який використовується при установці серверних компонентів Oracle. Модифікуючи файл sqlnet.ora, адміністратор може вказувати, яким чином будуть встановлюватися з'єднання з сервером Oracle.

Параметр NAMES.DIRECTORY_PATH файлу sqlnet.ora визначає методи, використовувані клієнтами Oracle для вирішення псевдоніма рядки з'єднання. Наприклад, коли у вікні командного рядка я вводжу символи

sqlplus / @ test9

утиліта SQL * Plus намагається вирішити псевдонім test9 за допомогою записів NAMES.DIRECTORY_PATH в файлі sqlnet.ora. Опис кошти SQL * Plus, а також інформація про те, як його можна отримати, міститься в урізанні «Програма SQL * Plus для управління Oracle» . Відповідно до інструкцій представленого на екрані 1 еталонного файлу sqlnet.ora, клієнт спочатку намагається вирішити ім'я Oracle за допомогою текстового файлу tnsnames.ora, який розміщується або локально, або на загальному мережному ресурсі. Якщо у файлі tnsnames.ora даного імені немає, клієнт намагається вирішити його через сервер Oracle Names (в даний час Oracle рекомендує замість серверів Oracle Names використовувати протокол LDAP - Lightweight Directory Access Protocol). Якщо ж і цей метод не дає результату, клієнт намагається вирішити дане ім'я за допомогою методу дозволу імені головної машини, такого як DNS або Network Information Service (NIS).

Параметр SQLNET.AUTHENTICATION_SERVICES файлу sqlnet.ora вказує, яку службу аутентифікації повинна застосовувати база даних Oracle в разі, якщо користувач намагається встановити з'єднання з сервером Oracle. За замовчуванням системи Oracle9i і Oracle8i активізують службу аутентифікації Windows при наявності наступної настройки:

SQLNET.AUTHENTICATION_SERVICES = (NTS)

В системі Windows NT аутентифікація завжди здійснюється за допомогою диспетчера NT LAN Manager (NTLM). Що ж стосується систем Windows Server 2003, Windows XP і Windows 2000, то в тих випадках, коли клієнтська машина Oracle знаходиться в домені Windows 2003 або Windows 2000, застосовується механізм аутентифікації Kerberos; в інших випадках використовується аутентифікація NTLM. Стандартну установку, що передбачає аутентифікацію тільки засобами Windows, не можна задіяти при роботі з додатками, в яких застосовується стандартний метод аутентифікації Oracle. І треба сказати, що в прикладних програмах багатьох незалежних постачальників при підключенні до систем Oracle застосовуються стандартні імена користувачів і паролі Oracle. Щоб мати можливість користуватися засобами аутентифікації як Oracle, так і Windows, потрібно внести в зазначений нижче параметр служби аутентифікації серверного файлу sqlnet.ora наступні зміни:

SQLNET.AUTHENTICATION_SERVICES = (NONE, NTS)

Будь-які зміни методів аутентифікації можуть обернутися втратою з'єднання. Для виявлення подібних збоїв щоразу відбувається шляхом зміни параметру служби аутентифікації насамперед слід виконати за допомогою утиліти SQL * Plus базовий тест засобів підключення до мережі, а потім перевірити клієнтські програми Oracle.

Група ORA_DBA - це група Windows, тому сервер бази даних Oracle звертається до неї лише в тих випадках, коли служба SQLNET.AUTHENTICATION_SERVICES виконує процедуру аутентифікації засобами Windows. Наприклад, якщо активізовані засоби аутентифікації Windows і у вікні командного рядка вводиться

set oracle_sid = test9 sqlplus «/ as sysdba»

я можу створити привілейоване з'єднання SYSDBA без пред'явлення призначеного для користувача імені і пароля Oracle.

Значення ORACLE_SID, представлене в нашому прикладі в першому командному рядку (воно дорівнює test9), надає альтернативний варіант рядка з'єднання з базою даних, який файл sqlplus.exe буде використовувати для підключення до примірника бази даних Oracle. У другій командному рядку вказуються облікові дані для аутентифікації. Подвійні лапки необхідні для того, щоб програма SQL * Plus сприймала всю рядок з'єднання, включаючи пробіли, як один параметр командного рядка. Синтаксична конструкція as sysdba вказує на те, що клієнт хотів би підключитися до бази даних Oracle як зареєстрований в системі Windows користувач з привілеями SYSDBA. Коли я ввів обидві ці команди на своїй клієнтській машині Oracle, система повернула результати, представлені на екрані 2 . Якщо при встановленні з'єднання користувача з привілеями SYSDBA програмі SQL * Plus будуть пред'явлені ім'я користувача і пароль Oracle, SQL * Plus просто проігнорує ці дані. І така реакція не буде порушенням правил безпеки, оскільки сервер Oracle виконав процедуру аутентифікації не по обліковим даним Oracle, а за даними Windows.

Членство в групі ORA_DBA забезпечує користувачеві SYSDBA права доступу до всіх зберігаються на сервері екземплярів Oracle, тому що Windows-група ORA_DBA володіє роллю Oracle SYSDBA. Роль SYSDBA еквівалентна ролі системного адміністратора (systems administrator, sa) в системі SQL Server. Щоб надавати права доступу з більшим ступенем деталізації, можна створити окремі групи загального формату ORA_SID_DBA, де SID - це набраний прописними буквами ідентифікатор Oracle SID, який забезпечує користувачу SYSDBA права доступу ні до певним баз даних, а до конкретних серверів. Так, у наведеному прикладі значенням ідентифікатора SID є test9, а це значить, що ви можете створити групу з ім'ям ORA_TEST9_DBA. І тепер всі користувачі Windows, які будуть включені в групу ORA_TEST9_DBA, але не увійдуть до групи ORA_DBA, матимуть права доступу SYSDBA тільки до примірника бази даних Oracle TEST9.

Подібним же чином можна управляти членством користувачів в групах ORA_OPER і ORA_SID_OPER, які відповідають використовуваної в Oracle ролі SYSOPER, щоб надавати привілеї SYSOPER тим чи іншим користувачам Windows. SYSOPER має обмеженою підмножиною привілеїв користувача SYSDBA; аналогічний обсяг привілеїв надається ролі db_backupoperator в системі SQL Server.

Отже, для виконання аутентифікації засобами Windows з привілейованої авторизацією (т. Е. З правами SYSDBA, SYSOPER), що забезпечує доступ до Oracle, потрібно виконати наступні операції.

  1. Переконайтеся в існуванні або створіть відповідні групи Windows (такі, як ORA_DBA, ORA_SID_DBA, ORA_OPER, ORA_SID_OPER), необхідні для забезпечення необхідного рівня доступу до сервера бази даних Oracle.
  2. Введіть користувачів до відповідних груп.
  3. Подбайте про те, щоб служба SQLNET.AUTHENTICATION_SERVICES застосовувала засоби Windows (наприклад, NTS) для аутентифікації як клієнтів, так і серверів.

В системі Oracle передбачений графічний інтерфейс (див. екран 3 ), Призначений для додавання користувачів в групи ORA_DBA і ORA_OPER. Якщо таких груп немає, їх можна створити засобами графічного інтерфейсу користувача. Для звернення до інтерфейсу необхідно натиснути кнопку Start і в списку, вибрати елементи All Programs, Oracle - OraHome92, Configuration and Migration Tools, Oracle Administration Assistant for Windows NT. Щоб додати користувача в Windows-групу ORA_OPER, слід натиснути правою клавішею миші на вузлі OS Database Operators - Computer і в контекстному меню вибрати пункт Add / Remove. Коли на екрані з'явиться діалогове вікно OS Database Operators, потрібно вибрати потрібний домен, потім користувача, далі клацнути на кнопці Add і, нарешті, на кнопці OK. Система створить групу ORA_OPER, якщо раніше її не було, і включить в неї зазначених користувачів.

До речі, при виконанні аутентифікації засобами Windows потрібно мати на увазі таку обставину: якщо коли-небудь в майбутньому буде потрібно відтворити файл паролів Oracle (в папці \% ORACLE_HOME% database), зверніться до документації Oracle і перевірте значення настройки REMOTE_LOGIN_PASSWORD в файлі init.ora. Як вказується в керівництві Oracle9i Database Administrator? S Guide, значення REMOTE_LOGIN_PASSWORD визначає, як функціонує система аутентифікації Oracle, що в свою чергу може вплинути на функціональність таких програм, що використовують механізм аутентифікації Oracle.

Windows-аутентифікація на сервері без групи

А що якщо адміністратор бази даних, зареєстрований на сервері бази даних, хоче отримати при підключенні до Oracle менший обсяг повноважень, ніж це передбачено для користувача SYSDBA? Скорочення обсягу власних прав - це раціональний підхід, що дозволяє звести до мінімуму шкоду, яка може бути завдана у разі помилкових дій адміністратора. В рамках нашого прикладу припустимо, що користувач Windows WinUser в домені PENTON зареєструвався на сервері Windows, де встановлено програмне забезпечення Oracle. Зверніть увагу на те, що при стандартній установці користувач Windows, який підключився до системи як користувач SYSDBA, не може створювати з'єднання з меншим обсягом повноважень. Так, якщо я наберу рядок

sqlplus /

система поверне результати, показані на екрані 4 . Причина збою в тому, що клієнт вже не буде намагатися підключитися до бази даних Oracle в якості члена Windows-групи ORA_DBA. В результаті обсяг повноважень користувача Windows вже не співвідноситься автоматично з роллю Oracle через його членство в групі Windows і, отже, користувач не отримує авторизації в системі Oracle. Ми не використовуємо членство в групах для аутентифікації користувача, тому обліковий запис користувача Windows, WinUser, передається в систему Oracle і проходить авторизацію засобами Oracle. Але Oracle надає користувачеві Windows певний обсяг повноважень лише в тому випадку, якщо даному користувачеві відповідає користувач Oracle. У нашому прикладі повністю певне доменне ім'я користувача (Fully Qualified Domain Name, FQDN) - PENTONWinUser. Щоб цей користувач Windows міг пройти авторизацію в базі даних Oracle, ми повинні створити користувача Oracle PENTONWinUser. Коли користувачеві Windows відповідає користувач Oracle, обсяг повноважень, наданих даному користувачеві Windows, відповідає обсягу повноважень певного користувача Oracle. При створенні користувача Oracle необхідно, щоб ім'я FQDN складалося тільки з великих літер і було укладено в подвійні лапки, як у наведеному нижче прикладі. За допомогою SQL * Plus або іншого клієнтського інструменту ми можемо підключитися до бази даних Oracle з повноваженнями SYSDBA і виконати наступні команди:

create user «PENTONWINUSER» identified externally; grant create session to «PENTONWINUSER»;

В системі Oracle передбачений параметр, який впливає на те, як Oracle встановлює відповідність між ім'ям користувача Windows і ім'ям користувача Oracle. Він застосовується в ситуаціях, коли членство користувача в групах Windows не вказується. У ранніх версіях Oracle використовувався префікс OPS $, який ставився перед ім'ям користувача Oracle, що застосовується в зовнішній аутентифікації. Імена користувачів в Oracle можуть складатися не більше ніж з 30 знаків, тому застосування префікса OPS $, по суті, обмежувало довжину імені користувача до решти 26 знаків. Щоб не довелося використовувати префікс OPS $, що містить параметри бази даних Oracle, файл init.ora (який зберігається в папці \% ORACLE_HOME% database) повинен містити наступну настройку (вона створюється за замовчуванням при установці систем Oracle9i і Oracle8i):

os_authent_prefix = «»

Цей параметр використовується для забезпечення зворотної сумісності. Oracle не рекомендує додавати до імен префікси, тому і використовується наведений вище стандартний «порожній» параметр. Щоб система почала застосовувати змінений параметр OS_AUTHENT_PREFIX, необхідно зупинити і знову ініціювати екземпляр бази даних Oracle.

Після того як користувач Windows отримав відповідне ім'я користувача Oracle, система Windows може перевірити ідентичність даного користувача, і той може встановити з'єднання з базою даних Oracle. Аналогічні прийоми використовуються для аутентифікації віддалених клієнтів.

Аутентифікація віддалених клієнтів Windows

Треба відзначити, що аутентификацией клієнтів Windows, які використовують засоби аутентифікації Windows для доступу до функціонуючому в тій же мережі віддаленого сервера Oracle, операційна система цього сервера не займається. Процедура аутентифікації таких користувачів виконується операційними системами клієнтів. Щоб активізувати засоби дистанційного аутентифікації, потрібно в файл init.ora для даного екземпляра бази даних додати вказану нижче запис, після чого зупинити і знову запустити базу даних:

REMOTE_OS_AUTHENT = TRUE

У Oracle не рекомендується вдаватися до дистанційної аутентифікації, оскільки вона не забезпечує захисту від спуфинга облікових даних користувачів. Припустимо, наприклад, що в домені PENTON є легітимний користувач Windows з ім'ям WinUser. Далі на тому ж сервері ми за допомогою наведеної нижче синтаксичної конструкції створюємо користувача Oracle і активізуємо засоби дистанційного аутентифікації:

create user «PENTONWINUSER» identified externally; grant create session to «PENTONWINUSER»;

Тепер уявіть собі, що може статися, якщо до мережі підключиться хакерська машина з ім'ям PENTON. Зловмисник може створити на своїй машині локального користувача Windows з ім'ям WinUser, і цей користувач буде проходити процедуру аутентифікації під ім'ям PENTONWinUser. Далі ім'я даного користувача може бути передано на сервер Oracle як PENTONWinUser. Сервер Oracle не зможе відрізнити доменне ім'я PENTON від імені PENTON, присвоєного хакерської машині, тому, виконуючи процедуру дистанційній аутентифікації, він підтвердить повноваження машини зловмисника. За уявленнями сервера Oracle, PENTONWinUser відноситься до категорії користувачів, тому він наділяє цього користувача всім обсягом повноважень, що належать PENTONWinUser. Якщо доступ до мережі можуть отримувати сторонні клієнтські машини, це означає, що засоби дистанційного аутентифікації Windows відкривають середу баз даних для несанкціонованого доступу.

знайома модель

Виконувана засобами Windows аутентифікація користувачів на серверах баз даних Oracle легко реалізується і забезпечує зручний доступ для уповноважених користувачів, зареєстрованих на сервері баз даних. Оскільки система Windows передбачає управління паролями, аутентифікація засобами Windows будується відповідно до моделі, добре відомої мережевим і системним адміністраторам. Однак потрібно пам'ятати, що такий механізм аутентифікації не підходить для віддалених користувачів, бо він не виключає можливості несанкціонованого доступу до даних.

Джон Пол Кук ( [email protected] ) - проектувальник баз даних та інформаційних систем в Х'юстоні, Техас. Має ряд сертифікатів Microsoft і Oracle. Консультує великі компанії по SQL Server, Oracle і .NET Framework.

Програма SQL * Plus для управління Oracle

SQL * Plus - утиліта, що дозволяє формувати запити, модифікувати об'єкти бази даних Oracle і маніпулювати ними, а також виконувати операції з обслуговування баз даних. SQL * Plus інсталюється за умовчанням при установці сервера Oracle. По набору функцій версія програми з командним рядком нагадує утиліту Osql системи SQL Server. Для запуску цієї версії SQL * Plus необхідно ввести у вікні командного рядка:

sqlplus

Версія інструменту з графічнім інтерфейсом розміщується среди других програм групи Oracle Application Development. Так, якщо в мережі каталог Oracle Home (т. Е. Каталог, в який встановлюється Oracle за допомогою програми Oracle Universal Installer) називається OraHome92, для доступу до нього необхідно в меню Start послідовно вибрати елементи All Programs, Oracle - OraHome92, Application Development і SQL Plus. Для установки SQL * Plus на клієнті можна використовувати комплект Oracle 9i Release 2, який можна завантажити на Web-сайті Oracle Technology Network за адресою http://technet.oracle.com/software/products/ oracle9i / index.html .

Як вказується в керівництві Oracle9i Database Administrator?
Провайдеры:
  • 08.09.2015

    Batyevka.NET предоставляет услуги доступа к сети Интернет на территории Соломенского района г. Киева.Наша миссия —... 
    Читать полностью

  • 08.09.2015
    IPNET

    Компания IPNET — это крупнейший оператор и технологический лидер на рынке телекоммуникаций Киева. Мы предоставляем... 
    Читать полностью

  • 08.09.2015
    Boryspil.Net

    Интернет-провайдер «Boryspil.net» начал свою работу в 2008 году и на данный момент является одним из крупнейших поставщиков... 
    Читать полностью

  • 08.09.2015
    4OKNET

    Наша компания работает в сфере телекоммуникационных услуг, а именно — предоставлении доступа в сеть интернет.Уже... 
    Читать полностью

  • 08.09.2015
    Телегруп

    ДП «Телегруп-Украина» – IT-компания с 15-летним опытом работы на рынке телекоммуникационных услуг, а также официальный... 
    Читать полностью

  • 08.09.2015
    Софтлинк

    Высокая скоростьМы являемся участником Украинского центра обмена трафиком (UA — IX) с включением 10 Гбит / сек... 
    Читать полностью