Подключение и управление пользователями в Oracle

Подключение и управление пользователями OracleОдна из основных задач администратора БД Oracle - установка и поддержание возможности подключения между базой данных, действующей на сервере, и сообществом пользователей. В традиционной модели клиент-сервер пользователи подключаются к базам данных на отдельных серверах посредством клиента. Эта модель все еще применяется во многих организациях для выполнения производственных функций. Однако в настоящее время модели подключения на основе веб-технологий значительно чаще используются в качестве средств подключения к базам данных. Компания Oracle называет свой набор решений по обеспечению возможности подключения (которые охватывают возможность подключения, управляемость и вопросы сетевой безопасности) службами Oracle Net (ранее они назывались службами SQL Net) Services.

В этой статье и ряде следующих мы рассмотрим использование Oracle Net — компонента Oracle Net Services для создания и поддержания подключений между клиентами и базами данных. Мы рассмотрим также инсталляцию программного обеспечения клиента Oracle Client. Также будет показано, как использовать новый клиент Oracle Instant Client (Мгновенный клиент Oracle), который позволяет подключаться к базе данных Oracle без применения файлов конфигурации сети.

Oracle Database 11g предлагает несколько методов подключения серверов баз данных к конечным пользователям. Для небольших наборов пользователей можно использовать файл tnsnames.ora, который представляет собой локальный файл, содержащий сведения о подключении. Новый упрощенный метод подключения позволяет клиентам подключаться к базам данных без применения каких-либо файлов конфигурации. Наиболее сложный метод подключения, предоставляемый Oracle — метод именования каталогов, который использует LDAP-совместимую службу Oracle Internet Directory (OID). Помимо поддержания возможностей подключения к базе данных, OID можно использовать для управления параметрами обеспечения безопасности и других целей. Кроме того, существует внешний метод именования, который для конфигурирования клиентских подключений к базе данных Oracle использует внешние службы именования, такие как Network Information Service (Сетевая информационная служба).

В этой статье будет представлен также краткий обзор интерфейса JDBC (Java Database Connectivity — средство организации доступа Java-приложений к базам данных). Вы узнаете, как подключаться к базе данных Oracle из Java-программ, и ознакомитесь с небольшим примером, который иллюстрирует основные концепции JDBC Oracle.

 

Сетевые средства Oracle и возможности подключения к базам данных

После создания базы данных и различных ее объектов, а также загрузки необходимых данных следующей серьезной задачей, которую потребуется выполнить, будет установка подключения между сервером БД и пользователями, которые будут ею пользоваться. Oracle Net Services (Сетевые службы Oracle) — набор служб, которые делают это возможным. Компоненты Oracle Net Services должны существовать как на клиенте, так и на сервере, и, как правило, они используют сетевой протокол TCP/IP для установки сетевых подключений между клиентами и сервером базы данных.

Конфигурирование Oracle Net Services выполняется с применением нескольких важных функциональных возможностей, призванных облегчить жизнь администраторам БД.

  • Прозрачность размещения. Клиентам не обязательно знать сетевое размещение или какую-то иную требующую особых полномочий информацию о службах базы данных, поскольку всю информацию, необходимую для создания подключений к БД, можно поддерживать в централизованном хранилище. Пользователям предоставляется только имя базы данных, и подключение является полностью прозрачным для них.
  • Централизованное конфигурирование. Для крупных систем централизованные средства установки и обслуживания подключений имеют огромный смысл. LDAP-совместимый сервер каталогов, поддерживаемый Oracle, предоставляет очень эффективное централизованное хранилище для удовлетворения всех сетевых нужд. Сведения о сети, аутентификации и другая информация, связанная с безопасностью, сохраняется в централизованном месте, к которому затем пользователи обращаются за этой информацией. Обслуживание при этом чрезвычайно просто, поскольку независимо от количества клиентов приходится поддерживать только централизованную информацию.
  • Масштабируемость. Для улучшения масштабируемости Oracle предоставляет специализированную архитектуру под названием архитектуры разделяемого сервера. Эта архитектура позволяет нескольким пользователям через процесс диспетчера совместно использовать один и тот же процесс подключения. Небольшое количество подключений к серверу позволяет работать в системе большому количеству конечных пользователей, что увеличивает масштабируемость системы. Кроме того, Oracle предлагает средство Connection Manager (Диспетчер подключений), которое обеспечивает мультиплексирование подключений, когда несколько подключений обслуживаются одновременно.

Сравнение архитектур разделяемого сервера и выделенного сервера


Архитектуру подключения можно определить так, чтобы сервер Oracle запускал отдельный процесс сервера для каждого клиентского подключения, либо чтобы несколько клиентов совместно использовали единственный процесс сервера. Отдельные процессы сервера используют выделенные подключения между каждым клиентом и сервером Oracle, и именно поэтому такая архитектура получила название архитектуры выделенного сервера. Архитектура разделяемого сервера — термин, обозначающий архитектуру, при которой несколько процессов пользователей используют одно и то же подключение к серверу Oracle для выполнения своей работы.

Архитектура разделяемого сервера

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

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

Диспетчер подключений Oracle (Oracle Connection Manager) можно использовать для настройки мультиплексирования сеансов, которое подразумевает объединение в пул нескольких клиентских сеансов по сети в местоположение разделяемого сервера.

Архитектура выделенного сервера

Процессы выделенного сервера не подразумевают никакого совместного использования ресурсов клиентами. Каждому клиенту присваивается подключение к выделенному серверу. Прослушивающий процесс Oracle будет запускать процесс выделенного сервера при каждом запросе на подключение со стороны клиентского процесса. Прослушивающий процесс передает адрес протокола выделенного сервера клиенту; затем клиент использует его для непосредственного подключения к серверу базы данных. Подключение к прослушивающему процессу разрывается, как только он передает адрес выделенного сервера клиенту.

В этой статье рассмотрена только более часто используемая архитектура выделенного сервера. Для ознакомления с установкой конфигурации разделяемого сервера обратитесь к руководству по организации сетей Oracle, Net Services Administrator’s Guide (Руководство администратора сетевых служб).


 

Концепции сетевого обмена: работа сетевых средств Oracle

Когда требуется открыть сеанс базы данных с клиента — будь то традиционный клиент или клиент на основе браузера — нужно подключиться к базе данных по сети. Предположим, что по существующей сети устанавливается подключение настольного компьютера к базе данных Oracle, расположенной на сервере UNIX в другой части города. Для этого требуется метод установки соединения между настольным компьютером и базой данных Oracle (предполагающий использование специализированного программного обеспечения), какой-либо интерфейс для проведения сеанса (в данном примере им будет SQL*Plus) и какой-нибудь способ обмена данными со стандартными сетевыми протоколами, такими как TCP/IP.

Для облегчения конфигурирования и управления сетевыми подключениями Oracle предлагает набор служб Oracle Net Services, представляющий собой комплект компонентов, которые предоставляют решения для обеспечения возможности подключения в распределенных гетерогенных компьютерных средах. Набор Oracle Net Services состоит из служб Oracle Net (Сеть Oracle), Oracle Net Listener (Служба прослушивания сети Oracle), Oracle Connection Manager (Диспетчер подключений Oracle), Oracle Net Configuration Assistant (Помощник по конфигурированию сети Oracle) и Oracle Net Manager (Диспетчер сети Oracle). Программное обеспечение Oracle Net Services устанавливается автоматически в процессе инсталляции программного обеспечения Oracle Database Server (Сервер баз данных Oracle) или Oracle Client (Клиент Oracle).

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

  • Oracle Network Foundation Layer (Базовый сетевой уровень Oracle). Отвечает за установку и поддержание подключения между клиентским приложением и сервером, а также за обмен сообщениями между ними
  • Oracle Protocol Support (Поддержка протокола Oracle). Отвечает за отображение функциональности TNS (Transparent Network Substrate — Прозрачная сетевая среда) на стандартные промышленные протоколы, используемые при подключениях.

Все серверы, содержащие базу данных Oracle, выполняют также службу Oracle Net Listener, слушатель сети Oracle (обычно называемый просто слушателем), основная функция которой — прослушивание запросов клиентов на вход в базу данных Oracle. Убедившись, что служба клиента обладает соответствующей информацией базы данных (протоколом, портом и именем экземпляра), слушатель передает запрос клиента базе данных. База данных позволит клиенту выполнить вход, если, конечно, подлинность его имени пользователя и пароля подтверждаются. Как только слушатель передаст запрос пользователя базе данных, клиент и БД окажутся в непосредственном контакте, не требующем никакой помощи со стороны службы прослушивания.

Oracle предлагает ряд утилит, построенных на основе графического интерфейса пользователя, которые призваны облегчить конфигурирование подключений к базам данных. В число этих утилит входит Oracle Connection Manager (Диспетчер подключений Oracle), Oracle Net Manager (Диспетчер сети Oracle) и Oracle Net Configuration Assistant (Помощник по конфигурированию сети Oracle). Названные программные средства могут помочь в удовлетворении всех потребностей, связанных с работой в сети. По завершении прочтения этой статьи просто щелкните на пиктограммах этих программ и начните экспериментировать с тестовыми подключениями.

 

Процесс подключения веб-приложения к Oracle

Чтобы подключиться через Интернет к базе данных Oracle, веб-браузер на клиентском компьютере связывается с веб-сервером и выдает запрос на подключение посредством протокола HTTP. Веб-сервер передает запрос приложению, которое обрабатывает его и связывается с сервером базы данных Oracle посредством службы Oracle Net (сконфигурированной как на сервере базы данных, так и на компьютере клиента). В последующих разделах статьи мы рассмотрим ряд важных терминов, играющих исключительно важную роль в сетевой организации Oracle.

Имена экземпляров базы данных

Как вы уже знаете, экземпляр Oracle состоит из области SGA и набора процессов Oracle. Имя экземпляра базы данных указывается в файле инициализации (init.ora) в виде параметра INSTANCE_NAME. Когда речь идет о системном идентификаторе (SID) Oracle, подразумевается просто экземпляр Oracle.

Обычно каждая база данных может иметь только один связанный с ней экземпляр. Однако в конфигурации Oracle RAC (Real Application Clusters — Кластеры реальных приложений) одна база данных может быть связана с несколькими экземплярами.

Глобальные имена баз данных

Глобальное имя базы данных уникальным образом идентифицирует базу данных Oracle и имеет формат имя_базы_данных.домен_базы_данных — например, sales.us.acme.com. В этом примере глобального имени базы данных sales — имя базы данных, а us.acme.com — домен базы данных. Поскольку никакие две базы данных в одном домене не могут иметь одинаковые имена, каждое глобальное имя базы данных уникально.

Имена служб базы данных

С логической точки зрения для клиента база данных выглядит просто службой. Службы и базы данных связаны между собой отношениями типа “многие ко многим”, поскольку база данных может быть представлена одной или более службами, каждая из которых предназначена для своего набора клиентов, а служба может охватывать более одного экземпляра базы данных. В системе каждая база данных идентифицируется по ее имени службы, для указания которого служит параметр инициализации SERVICE_NAMES. По умолчанию значение имени службы устанавливается соответствующим глобальному имени базы данных.

Обратите внимание, что база данных может адресоваться более чем по одному имени службы. Это может быть реализовано, если нужно, чтобы различные наборы клиентов по-разному адресовались к базе данных для удовлетворения их конкретных потребностей. Например, для одной и той же базы данных можно создать два имени служб наподобие следующих: 

sales.us.acme.com
finance.us.acme.com

Продавцы будут использовать имя службы sales.us.acme.com, а сотрудники бухгалтерии и финансового отдела — имя службы finance.us.acme.com.

Дескрипторы соединений

Чтобы подключиться к любой службе базы данных в мире со своего настольного компьютера, необходимо предоставить два информационных элемента:

  • имя службы базы данных;
  • местоположение адреса.

Термин дескриптор соединения в Oracle используют для обозначения объединенной спецификации двух обязательных компонентов подключения к базе данных: имени службы базы данных и ее адреса. Часть адреса дескриптора соединения содержит три компонента: коммуникационный протокол, используемый для соединения, имя хоста и номер порта.

Знание коммуникационного протокола облегчает согласование сетевых протоколов, что позволяет установить соединение. Стандартным протоколом является TCP/IP или TCP/IP с SSL (Secure Sockets Layer — уровень защищенных сокетов). На серверах UNIX стандартный номер порта для подключений Oracle — 1521 или 1526. На компьютерах Windows по умолчанию используется порт 1521. Поскольку любой хост не может содержать более одной базы данных с одним и тем же именем службы, имя службы базы данных Oracle и имя хоста будут уникальным образом идентифицировать любую базу данных в мире. Ниже приведен пример типичного дескриптора соединения: 

(DESCRIPTION
(ADDRESS=(PROTOCOL=tcp) (HOST=sales-server) (PORT=1521))
(CONNECT_DATA=
(SERVICE_NAME=sales.us.acme.com)))

В этом дескрипторе соединения строка ADDRESS указывает, что протокол TCP будет использоваться для сетевого обмена данными. HOST определяет сервер UNIX (или Windows), на котором процесс прослушивания Oracle прослушивает запросы на подключение в конкретном порту: 1521. Часть ADDRESS дескриптора соединения называют также адресом протокола.

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

Идентификаторы соединений

Идентификатор соединения тесно связан с дескриптором соединения. Дескриптор соединения можно использовать в качестве идентификатора соединения или же можно просто отобразить имя службы базы данных на дескриптор соединения. Например, такое имя службы, как sales, можно отобразить на дескриптор соединения, приведенный в предыдущем разделе статьи. Ниже показан пример, демонстрирующий отображение идентификатора соединения sales

sales=
(DESCRIPTION
(ADDRESS=(PROTOCOL=tcp) (HOST=sales-server) (PORT=1521))
(CONNECT_DATA=
(SERVICE_NAME=sales.us.acme.com)))

Строки соединений

Подключение к базе данных выполняется путем указания строки соединения. Строка соединения содержит сочетание имени пользователя и пароля и идентификатор соединения. Один из наиболее часто используемых идентификаторов соединения — имя сетевой службы, которое представляет собой простое имя службы базы данных.

Следующий пример демонстрирует строку соединения, которая использует полный дескриптор подключения в качестве идентификатора соединения: 

CONNECT scott/tiger@(DESCRIPTION=
(ADDRESS=(PROTOCOL=tcp)
(HOST=sales_server1)
(PORT=1521))
(CONNECT_DATA=(SERVICE_NAME=sales.us.acme.com)))

К этой же базе данных можно подключиться значительно проще, используя идентификатор соединения sales

CONNECT scott/tiger@sales

Оба приведенных примера установят соединение с базой данных sales, но вторая строка соединения (использующая идентификатор соединения sales) явно значительно проще.


Использование инструментальных средств Oracle Net Services


Oracle Net предоставляет несколько графических интерфейсов пользователей и утилит командной строки, позволяющих конфигурировать соединения между клиентами и службами базы данных. Вероятно, наиболее часто придется пользоваться утилитой командной строки lsnrctl, которая помогает управлять службой Oracle Net Listener. Ниже перечислены наиболее важные средства с графическим интерфейсом пользователя, которые помогают в управлении службами Oracle Net Services.

  • Oracle Net Configuration Assistant (Помощник по конфигурированию сети Oracle), или NCA. В основном это средство применяют для конфигурирования сетевых компонентов во время установки, и оно позволяет выбрать одну из доступных опций (они рассмотрены позднее в этой статье) для конфигурирования характеристик подключения клиента. Простой в использовании графический интерфейс позволяет быстро конфигурировать подключения клиентов в соответствии с любым выбранным методом именования. В системах UNIX/Linux NCA можно запустить, запуская файл netca из каталога $ORACLE_HOME/bin. В среде Windows для этого потребуется выбрать команду меню StartProgramsOracle-HOME_NAMEConfiguration and Migration ToolsNet Configuration Assistant (ПускПрограммыИмя домашнего каталога OracleСредства конфигурирования и переносаПомощник по конфигурированию сети).
  • Oracle Net Manager (Диспетчер сети Oracle). Инструмент Oracle Net Manager может выполняться на клиентах и серверах, и он позволяет конфигурировать различные методы именования и слушателей. С помощью этого средства можно конфигурировать дескрипторы соединений в локальных файлах tnsnames.ora или в централизованном OID, а также легко добавлять и изменять методы подключения. Чтобы запустить Oracle Net Manager с консоли Oracle Enterprise Manager, выберите команду меню ToolsService ManagementOracle Net Manager (СервисУправление службамиДиспетчер сети Oracle). Чтобы запустить его в качестве самостоятельного приложения в среде UNIX, запустите файл netmgr из каталога $ORACLE_HOME/bin. В среде Windows для этого потребуется выбрать команду меню StartProgramsOracle-HOME_NAMEConfiguration and Migration ToolsNet Manager (ПускПрограммыИмя домашнего каталога OracleСредства конфигурирования и переносаДиспетчер сети).
  • Oracle Enterprise Manager (Диспетчер предприятия Oracle). В Oracle Database 11g OEM может выполнять все, что выполняет Oracle Net Manager, но для нескольких домашних каталогов Oracle, размещенных в нескольких файловых системах. Кроме того, используя OEM, записи именования каталогов можно экспортировать в файл tnsnames.ora.
  • Oracle Directory Manager (Диспетчер каталогов Oracle). Это мощное средство позволяет создавать различные и домены и контексты, необходимые для использования OID. С его помощью можно также управлять политикой использования паролей и решать многие более сложные задачи обеспечения безопасности Oracle. В системах UNIX/Linux OID можно запустить, запуская файл oidadmin из каталога $ORACLE_HOME/bin. В среде Windows для этого потребуется выбрать команду меню StartProgramsOracle-HOME_NAMEIntegrated Management ToolsOracle Directory Manager (ПускПрограммыИмя домашнего каталога OracleВстроенные средства управленияДиспетчер каталогов Oracle).

 

Установка соединения Oracle

Чтобы подключиться к базе данных Oracle через сеть, вначале нужно установить сетевое соединение между клиентом и сервером. На компьютере, с которого выполняется подключение, должно быть установлено программное обеспечение клиента Oracle (Oracle Client) либо сервера баз данных Oracle (Oracle Database Server). Инсталляция программного обеспечения Oracle Client рассматривается в следующем разделе.

Чтобы успешно установить соединение, понадобится выполнить следующие действия.

  1. Убедитесь, что сервер базы данных установлен, а экземпляр Oracle запущен.
  2. Удостоверьтесь, что программное обеспечение клиента Oracle Client установлено на клиентском компьютере.
  3. Проверьте, что сервер базы данных и клиент действуют в одной сети. Выполните эту проверку, с помощью команды ping
C:\> ping prod1
Pinging prod1.netbsa.org [172.14.152.1] with 32 bytes of data:
Reply from 172.14.152.1: bytes=32 time

Результат выполнения команды ping показывает, что соединение успешно установлено. Если соединение не может быть установлено, отобразится сообщение о просроченном запросе на подключение, а количество отправленных пакетов данных в статистике команды ping будет больше количества полученных пакетов.

  1. Протокол TCP/IP должен быть установлен и на сервере, и на клиенте. При установке программного обеспечения сервера и клиента Oracle эти протоколы устанавливаются в форме программного компонента Oracle Net.
  2. Убедитесь, что служба Oracle Net Listener запущена на сервере и прослушивает соответствующий порт на предмет входящих запросов на подключение.
  3. Сконфигурируйте клиента для подключения к базе данных. К базе данных Oracle можно подключиться одним из четырех доступных методов: локальное именование, простое именование подключения, именование каталога и внешнее именование. Эти методы рассматриваются далее в этой статье.
  4. Подключитесь к базе данных с помощью интерфейса SQL*Plus или программного средства от независимого разработчика. Например, с помощью SQL*Plus к базе данных можно подключиться, указывая сочетание имени пользователя и пароля вместе с именем базы данных:
C:\> sqlplus system/sammyy1@orcl
SQL*Plus: Release 11.1.0.6.0 - Production on Thu Mar 20 09:25:27 2008
Copyright (c) 1982, 2007, Oracle. All rights reserved.
Connected to:
Oracle Database 11g Enterprise Edition Release 11.1.0.6.0 - Production
With the Partitioning, OLAP, Data Mining and Real Application Testing options
SQL>

В последующих статьях мы подробнее рассмотрим программное обеспечение Oracle Client, слушателя и методы именования.

Вас заинтересует / Intresting for you:

Oracle и непроцедурный доступ ...
Oracle и непроцедурный доступ ... 8511 просмотров Antoni Tue, 21 Nov 2017, 13:32:50
Видеокурс по администрированию...
Видеокурс по администрированию... 10719 просмотров Илья Дергунов Mon, 14 May 2018, 05:08:47
Обновление до Oracle Database ...
Обновление до Oracle Database ... 7829 просмотров Илья Дергунов Tue, 21 Nov 2017, 13:18:05
Пользователи Oracle: управлени...
Пользователи Oracle: управлени... 17522 просмотров Дэн Tue, 21 Nov 2017, 13:18:05
Войдите чтобы комментировать