Tns name oracle что это
Tns name oracle что это
(ADDRESS = (PROTOCOL = TCP) (HOST = aria.us.oracle.com)(PORT = 1521))
(ORACLE SID = ora816)
Теперь, когда клиентскому ПО известно, куда подключаться, оно открывает соединение через сокет TCP/IP к порту 1521 машины aria.us.oracle.com. Если администратор базы данных соответствующего сервера настроил службу Net8 и запустил процесс прослушивания, это подключение может быть принято. В сетевой среде на сервере работает процесс TNS Listener. Это процесс прослушивания, обеспечивающий физическое подключение к базе данных. Получив запрос на подключение, он проверяет его, используя собственные файлы конфигурации, и либо отвечает отказом (например, не существует запрашиваемой базы данных или IP-адрес подключающегося содержится в списке тех, кому не разрешено подключение к хосту), либо обеспечивает подключение клиента.
ляется на него, и тем самым обеспечивается физическое подключение. В случае ОС UNIX это можно представить следующей схемой:
В режиме MTS процесс прослушивания работает иначе. Ему известно, какие процессы-диспетчеры работают в составе экземпляра. При получении запроса на подключение процесс прослушивания выбирает процесс-диспетчер из пула доступных диспетчеров. Затем он посылает клиенту информацию, позволяющую подключиться к процессу-диспетчеру. Это необходимо, поскольку процесс прослушивания работает на известном порту соответствующего хоста, а вот диспетчеры будут принимать подключения через произвольно выделенные порты. Процессу прослушивания известны эти выделенные порты, поэтому он автоматически выбирает свободный диспетчер. Затем клиент отключается от процесса прослушивания и подключается непосредственно к диспетчеру. В результате устанавливается физическое соединение с СУБД. Графически это можно представить так:
Итак, обзор архитектуры Oracle закончен. Мы описали, что такое экземпляр Oracle, что такое база данных и как можно подключиться к базе данных через выделенный и разделяемый сервер. На следующей схеме показано взаимодействие с сервером Oracle клиента, подключенного к разделяемому серверу, и клиента, работающего с выделенным серверным процессом. Один экземпляр Oracle может поддерживать оба типа подключений одновременно:
Теперь подробно рассмотрим процессы, образующие сервер, их назначение и взаимодействие друг с другом, а также содержимое области SGA и назначение ее компонентов. Но начнем мы с описания различных типов файлов, которые сервер Oracle использует для управления данными.
В состав базы данных и экземпляра входит шесть типов файлов. С экземпляром связаны файлы параметров. По этим файлам экземпляр при запуске определяет свои характеристики, например размер структур в памяти и местонахождение управляющих файлов.
Базу данных образуют следующие файлы.
Файл1 данн1х. Собственно данные (в этих файлах хранятся таблицы, индексы и
все остальные сегменты).
Файл1 журнала повторного в1полнения. Журналы транзакций.
Управляющие файл1. Определяют местонахождение файлов данных и содержат другую необходимую информацию о состоянии базы данных.
Временн1е файл1. Используются при сортировке больших объемов данных и для хранения временных объектов.
Файл1 паролей. Используются для аутентификации пользователей, выполняющих
администрирование удаленно, по сети. Мы не будем их подробно рассматривать.
Наиболее важны первые два типа файлов, поскольку именно в них хранятся накопленные данные. В случае потери остальных файлов хранящиеся данные не пострадают. Если будут потеряны файлы журнала повторного выполнения, некоторые данные могут быть потеряны. Если же будут потеряны файлы данных и все их резервные копии, данные, безусловно, будут потеряны навсегда.
Теперь давайте детально рассмотрим все типы файлов и их содержимое.
6 Local Naming Parameters in the tnsnames.ora File
This chapter provides a complete listing of the tnsnames.ora file configuration parameters. This chapter contains the following topics:
Overview of Local Naming Parameters
The tnsnames.ora file is a configuration file that contains network service name s mapped to connect descriptor s for the local naming method, or net service names mapped to listener protocol addresses.
A net service name is an alias mapped to a database network address contained in a connect descriptor. A connect descriptor contains the location of the listener through a protocol address and the service name of the database to which to connect. Clients and database servers (that are clients of other database servers) use the net service name when making a connection with an application.
By default, the tnsnames.ora file is located in the ORACLE_HOME/network/admin directory. Oracle Net will check the other directories for the configuration file. For example, the order checking the tnsnames.ora file is as follows:
The directory specified by the TNS_ADMIN environment variable. If the file is not found in the directory specified, then it is assumed that the file does not exist.
If the TNS_ADMIN environment variable is not set, then Oracle Net checks the ORACLE_HOME/network/admin directory.
On Microsoft Windows, the TNS_ADMIN environment variable is used if it is set in the environment of the process. If the TNS_ADMIN environment variable is not defined in the environment, or the process is a service which does not have an environment, then Microsoft Windows scans the registry for a TNS_ADMIN parameter.
Oracle operating system-specific documentation
General Syntax of tnsnames.ora
The basic syntax for a tnsnames.ora file is shown in Example 6-1.
Example 6-1 Basic Format of tnsnames.ora File
In the preceding example, DESCRIPTION contains the connect descriptor, ADDRESS contains the protocol address, and CONNECT_DATA contains the database service identification information.
Multiple Descriptions in tnsnames.ora
A tnsnames.ora file can contain net service names with one or more connect descriptors. Each connect descriptor can contain one or more protocol addresses. Example 6-2 shows two connect descriptors with multiple addresses. DESCRIPTION_LIST defines a list of connect descriptors.
Example 6-2 Net Service Name with Multiple Connect Descriptors in tnsnames.ora
Oracle Net Manager does not support the creation of multiple connect descriptors for a net service name when using Oracle Connection Manager.
Multiple Address Lists in tnsnames.ora
Example 6-3 Multiple Address Lists in tnsnames.ora
Oracle Net Manager supports only the creation of one protocol address list for a connect descriptor.
Oracle Net Services supports the IFILE parameter in the tnsnames.ora file, with up to three levels of nesting. The parameter is added manually to the file. The following is an example of the syntax:
Refer to Oracle Database Reference for additional information.
Connect-Time Failover and Client Load Balancing with Oracle Connection Managers
Example 6-4 illustrates failover of multiple Oracle Connection Manager protocol addresses.
Example 6-4 Multiple Oracle Connection Manager Addresses in tnsnames.ora
In Example 6-4, the syntax does the following:
The client is instructed to connect to the protocol address of the first Oracle Connection Manager, as indicated by:
The first Oracle Connection Manager is instructed to connect to the first protocol address of another Oracle Connection Manager. If the first protocol address fails, then it tries the second protocol address. This sequence is specified with the following configuration:
Oracle Connection Manager connects to the database service using the following protocol address:
Example 6-5 illustrates client load balancing among two Oracle Connection Managers and two protocol addresses:
Example 6-5 Client Load Balancing in tnsnames.ora
In Example 6-5, the syntax does the following:
Connect Descriptor Descriptions
Each connect descriptor is contained within the DESCRIPTION parameter. Multiple connect descriptors are characterized by the DESCRIPTION_LIST parameter. These parameters are described in this section.
DESCRIPTION
To specify a container for a connect descriptor.
When using more than one DESCRIPTION parameter, put the parameters under the DESCRIPTION_LIST parameter.
DESCRIPTION_LIST
To define a list of connect descriptors for a particular net service name.
Protocol Address Section
The protocol address section of the tnsnames.ora file specifies the protocol addresses of the listener. If there is only one listener protocol address, then use the ADDRESS parameter. If there is more than one address, then use the ADDRESS_LIST parameter.
ADDRESS
To define a single listener protocol address.
Put this parameter under either the ADDRESS_LIST parameter or the DESCRIPTION parameter.
Chapter 4, «Protocol Address Configuration» for descriptions of the correct parameters to use for each protocol
ADDRESS_LIST
To define a list of protocol addresses.
If there is only one listener protocol address, then ADDRESS_LIST is not necessary.
Put this parameter under either the DESCRIPTION parameter or the DESCRIPTION_LIST parameter.
Optional Parameters for Address Lists
For multiple addresses, the following parameters are available:
ENABLE
To allow the caller to detect a terminated remote server, typically it takes 2 hours or more to notice.
Although the preceding example has multiple addresses, the ADDRESS_LIST parameter was not used. This is because the ADDRESS_LIST parameter is not mandatory.
FAILOVER
To enable or disable connect-time failover for multiple protocol addresses.
Put this parameter under the DESCRIPTION_LIST parameter, the DESCRIPTION parameter, or the ADDRESS_LIST parameter.
LOAD_BALANCE
To enable or disable client load balancing for multiple protocol addresses.
Put this parameter under the DESCRIPTION_LIST parameter, the DESCRIPTION parameter, or the ADDRESS_LIST parameter.
on for DESCRIPTION_LIST
RECV_BUF_SIZE
To specify, in bytes, the buffer space for receive operations of sessions.
This parameter is supported by the TCP/IP, TCP/IP with SSL, and SDP protocols.
Put this parameter under the DESCRIPTION parameter or at the end of the protocol address.
Setting this parameter in the connect descriptor for a client overrides the RECV_BUF_SIZE parameter at the client-side sqlnet.ora file.
Additional protocols might support this parameter on certain operating systems. Refer to the operating system-specific documentation for additional information about additional protocols.
The default value for this parameter is specific to the operating system. The default for the Linux 2.6 operating system is 110592 (108 KB) bytes.
Oracle Database Net Services Administrator’s Guide for additional information about configuring this parameter
To instruct Oracle Net to optimize the transfer rate of data packets being sent across the network with a specified session data unit (SDU) size.
Put this parameter under the DESCRIPTION parameter.
Setting this parameter in the connect descriptor for a client overrides the DEFAULT_SDU_SIZE parameter at client-side sqlnet.ora file.
512 to 2097152 bytes.
Oracle Database Net Services Administrator’s Guide for complete SDU usage and configuration information
SEND_BUF_SIZE
To specify, in bytes, the buffer space for send operations of sessions.
This parameter is supported by the TCP/IP, TCP/IP with SSL, and SDP protocols.
Put this parameter under the DESCRIPTION parameter or at the end of the protocol address.
Setting this parameter in the connect descriptor for a client overrides the SEND_BUF_SIZE parameter at the client-side sqlnet.ora file.
Additional protocols might support this parameter on certain operating systems. Refer to the operating system-specific documentation for information about additional protocols.
The default value for this parameter is operating system specific. The default for the Linux 2.6 operating system is 110592 (108 KB) bytes.
Oracle Database Net Services Administrator’s Guide for additional information about configuring this parameter
SOURCE_ROUTE
To enable routing through multiple protocol addresses.
To use Oracle Connection Manager, an initial connection from the client to Oracle Connection Manager is required, and a second connection from Oracle Connection Manager to the listener is required.
Put this parameter under either the DESCRIPTION_LIST parameter, the DESCRIPTION parameter, or the ADDRESS_LIST parameter.
TNS Listener Oracle
Стас Белков
Автор статьи. Известный специалист в мире IT. Консультант по продуктам и решениям Oracle. Практикующий программист и администратор баз данных. Подробнее.
Сетевая служба TNS Listener – достаточно мощный инструмент, почти полностью контролирующий доступ к СУБД и предоставляющий возможность доступа к командам ОС. Листенер состоит из двух исполняемых и нескольких конфигурационных файлов.
Tnslsnr
Сердце Листенера, отвечающее за весь основной функционал службы, – процесс tnslsnr, который выполняет роль прокси-сервера и перенаправляет запросы от клиента непосредственно к СУБД. Процесс tnslsnr по умолчанию запускается с привилегиями пользователя Oracle в ОС UNIX и с привилегиями пользователя
Local System в ОС Windows NT/2000/2003. Так как учетная запись «oracle», создаваемая при установке СУБД на UNIX-системах, не имеет административных привилегий, риск поставить под угрозу весь сервер при компрометации Листенера в UNIXсистемах по умолчанию ниже.
Lsnrctl
Lsnrctl является консольной утилитой, используемой для администрирования Листенера. С ее помощью можно управлять Листенером как локально, так и удаленно. Команды управления включают в себя возможность настройки протоколирования событий, смены пароля или удаленного перезапуска Листенера.
Sqlnet.ora
Listener.ora
Этот конфигурационный файл отвечает за связь Листенера с СУБД. Для нас важнейшим моментом является хранимая в нем строка подключения, которая со держит такие параметры подключения, как системный идентификатор (SID) и порт, на который будут приниматься запросы для данного SID. Как будет ясно в дальнейшем, эта информация является во многом определяющей при проведении начального этапа проникновения в СУБД Oracle. Этот файл очень важен для нас – получив к нему доступ с возможностью внесения модификаций, мы сможем обойти такие ограничения безопасности, как пароль на службу Листенера и протоколирование событий. Пример конфигурационного файла:
Здесь мы видим, что на хосте с именем Ora, на порту 1521 запущен экземпляр базы данных. Кроме того, в этом файле могут храниться такие параметры, как пароль на доступ к Листенеру, директория хранения логфайлов и пр. Изменения в конфигурации Листенера могут быть сделаны напрямую путем правки файла listener.ora или с использованием командного интерфейса утилиты lsnrctl.
Tnsnames.ora
В этом файле хранится соответствие кратких имен (Net Service Names) длинным дескрипторам соединений для упрощения межсетевого взаимодействия. Нам это файл интересен тем, что в нем может находиться информация о SSL-сертификатах, используемых для аутентификации. В нем также могут храниться данные для подключения к другим серверам СУБД, в том числе и SID. Пример одной записи из файла Tnsnames.ora:
Здесь мы видим, что на хосте с IPадресом 192.168.40.14 на порту 1521 запущена служба Листенера. У базы данных, установленной на этом сервере, SID равно ORCL102.
Режимы работы Листенера
В зависимости от конфигурации, описанной в listener.ora, служба Листенера может работать в трех различных режимах:
На рисунке ниже показан Листенер, сконфигурированный в двух режимах: Database и PLSExtProc. За подключение к СУБД отвечает сервис с именем «orcl9» (режим Database), за выполнение внешних процедур отвечает сервис PLSExtProс.
Больше информации о службе TNS Listener и о сетевом взаимодействии Oracle можно узнать в документе «Oracle Database Net Services Reference Guide 10g Release 1 (10.1)». Документ доступен по адресу: http://www.stanford.edu/dept/itss/docs/oracle/10g/network.101/b10776.pdf.
Мы же в следующей статье блога перейдем к очень интересному вопросу – атакам на службу Листенера. Применим пошаговую стратегию, начав со стандартных атак на незащищенную службу и постепенно переходя ко все более сложным вариантам атак, на защищенную службу Листенера. Большинство примеров будет работать как старой версии СУБД Oracle 8i, которая, тем не менее, до сих пор (. ) встречается в корпоративных сетях, так и на самый распространенный на данный момент версии 11g.
Глоссарий терминов публикации Oracle
Для администрирования и настройки конфигурации публикации Oracle необходимо ознакомиться со следующей терминологией Oracle. Полный список терминов Oracle см. в электронной документации Oracle.
Индексно организованные таблицы (IOT)
Таблица, данные которой физически отсортированы на диске в индексном порядке; аналог таблицы Microsoft SQL Server с кластеризованным индексом. IOT реплицируется на подписчик в виде таблицы с кластеризованным индексом.
Экземпляр
База данных Oracle связана с экземпляром. Экземпляр содержит память и фоновые процессы, поддерживающие базу данных. Экземпляр Oracle всегда сопоставляется с одной базой данных, тогда как экземпляр SQL Server может содержать множество баз данных. Существуют обстоятельства, при которых база данных Oracle может иметь несколько экземпляров.
Прослушиватель Oracle
Обрабатывает входящий сетевой трафик для экземпляра базы данных Oracle. При настройке сетевого подключения к базе данных Oracle указывается протокол, по которому отсылается трафик, и порт, на котором прослушиватель прослушивает трафик. Прослушиватель обычно настраивается на запуск на том же компьютере, на котором выполняется экземпляр базы данных Oracle, и может быть настроен для работы с одним или несколькими экземплярами.
ROWID
Указатель расположения определенной строки базы данных. Поскольку извлечение строк с использованием ROWID происходит быстрее, чем при использовании просмотра таблицы или индекса, репликация использует ROWID в течение периода обработки опубликованных изменений таблицы.
Sequence
Объект базы данных, который используется для формирования уникальных чисел. Репликация использует последовательности дл упорядочивания изменений, произведенных в опубликованных таблицах.
SQL*Plus
Приложение, используемое для доступа и отправки запросов к базам данных Oracle. Похоже на программу SQL Server sqlcmd.
Синоним
После публикации базы данных Oracle последующие попытки переустановить конфигурацию издателя для использования иного распространителя SQL Server будут неудачны, поскольку этот открытый синоним идентифицирует определенный распространитель с установленной конфигурацией для обслуживания издателя.
Табличное пространство
Элемент хранилища базы данных, примерно эквивалентный группе файлов в SQL Server.
Имя службы TNS
Протокол TNS (Transparent Network Substrate) — уровень связи, используемый базами данных Oracle. Имя службы TNS — это имя, с которым экземпляр базы данных Oracle представлен в сети. Имя службы TNS назначается при настройке подключений к базе данных Oracle. Репликация использует имя службы TNS для идентификации издателя и установки подключений.
Пользовательская схема
6 Local Naming Parameters (tnsnames.ora)
This chapter provides a complete listing of the tnsnames.ora file configuration parameters.
This chapter contains the following topics:
Overview of Local Naming Parameters
This tnsnames.ora file is a configuration file that contains net service name s mapped to connect descriptor s for the local naming method, or net service names mapped to listener protocol addresses.
A net service name is an alias mapped to a database network address contained in a connect descriptor. A connect descriptor contains the location of the listener through a protocol address and the service name of the database to which to connect. Clients and database servers (that are clients of other database servers) use the net service name when making a connection with an application.
By default, the tnsnames.ora file is located in the ORACLE_HOME/network/admin directory. Oracle Net will check the other directories for the configuration files. For example, the order checking the tnsnames.ora file is as follows:
The directory specified by the TNS_ADMIN environment variable. If the file is not found in the directory specified, then it is assumed that the file does not exist.
If the TNS_ADMIN environment variable is not set, then Oracle Net will check the ORACLE_HOME/network/admin directory.
On Microsoft Windows, the TNS_ADMIN environment variable is used if it is set in the environment of the process. If the TNS_ADMIN environment variable is not defined in the environment, or the process is a service which does not have an environment, then Microsoft Windows scans the registry for a TNS_ADMIN parameter.
Oracle operating system-specific documentation
General Syntax of tnsnames.ora
The basic syntax for a tnsnames.ora file is shown in Example 6-1.
Example 6-1 Basic Format of tnsnames.ora File
In the preceding example, DESCRIPTION contains the connect descriptor, ADDRESS contains the protocol address, and CONNECT_DATA contains the database service identification information.
Multiple Descriptions in tnsnames.ora
A tnsnames.ora file can contain net service names with one or more connect descriptors. Each connect descriptor can contain one or more protocol addresses. Example 6-2 shows two connect descriptors with multiple addresses. DESCRIPTION_LIST defines a list of connect descriptors.
Example 6-2 Net Service Name with Multiple Connect Descriptors in tnsnames.ora
Oracle Net Manager does not support the creation of multiple connect descriptors for a net service name when using Oracle Connection Manager.
Multiple Address Lists in tnsnames.ora
Example 6-3 Multiple Address Lists in tnsnames.ora
Oracle Net Manager supports only the creation of one protocol address list for a connect descriptor.
Connect-Time Failover and Client Load Balancing with Oracle Connection Managers
Example 6-4 illustrates failover of multiple Oracle Connection Manager protocol addresses.
Example 6-4 Multiple Oracle Connection Manager Addresses in tnsnames.ora
In Example 6-4, the syntax does the following:
The client is instructed to connect to an protocol address of the first Oracle Connection Manager, as indicated by:
The first Oracle Connection Manager is instructed to connect to the first protocol address of another Oracle Connection Manager. If the first protocol address fails, then it tries the second protocol address. This sequence is specified with the following configuration:
The Oracle Connection Manager connects to the database service using the following protocol address:
Example 6-5 illustrates client load balancing among two Oracle Connection Managers and two protocol addresses:
Example 6-5 Client Load Balancing in tnsnames.ora
In Example 6-5, the syntax does the following:
Connect Descriptor Descriptions
Each connect descriptor is contained within the DESCRIPTION parameter. Multiple connect descriptors are characterized by the DESCRIPTION_LIST parameter. These parameters are described in this section.
DESCRIPTION
To specify a container for a connect descriptor. Put this parameter under the DESCRIPTION_LIST parameter.
DESCRIPTION_LIST
To define a list of connect descriptors for a particular net service name.
Protocol Address Section
The protocol address section of the tnsnames.ora file specifies the protocol addresses of the listener. If there is only one listener protocol address, then use the ADDRESS parameter. If there is more than one address, then use the ADDRESS_LIST parameter.
ADDRESS
To define a single listener protocol address. Put this parameter under either the ADDRESS_LIST parameter or the DESCRIPTION parameter.
Chapter 4, «Protocol Address Configuration» for descriptions of the correct parameters to use for each protocol
ADDRESS_LIST
To define a list of protocol addresses. If there is only one listener protocol address, then ADDRESS_LIST is not necessary. Put this parameter under either the DESCRIPTION parameter or the DESCRIPTION_LIST parameter.
Optional Parameters for Address Lists
For multiple addresses, the following parameters are available:
ENABLE
FAILOVER
To enable or disable connect-time failover for multiple protocol addresses.
Put this parameter under the DESCRIPTION_LIST parameter, the DESCRIPTION parameter, or the ADDRESS_LIST parameter.
LOAD_BALANCE
To enable or disable client load balancing for multiple protocol addresses.
Put this parameter under either the DESCRIPTION_LIST parameter, the DESCRIPTION parameter, or the ADDRESS_LIST parameter.
on for DESCRIPTION_LIST
RECV_BUF_SIZE
To specify, in bytes, the buffer space for receive operations of sessions. This parameter is supported by the TCP/IP, TCP/IP with SSL, and SDP protocols.
Put this parameter under the DESCRIPTION parameter or at the end of the protocol address.
Additional protocols might support this parameter on certain operating systems. Refer to the operating system-specific documentation for additional information about additional protocols.
The default value for this parameter is specific to the operating system.
Setting this parameter in the connect descriptor for a client overrides the RECV_BUF_SIZE parameter at the client-side sqlnet.ora file.
Oracle Database Net Services Administrator’s Guide for additional information about configuring this parameter
To instruct Oracle Net to optimize the transfer rate of data packets being sent across the network with a specified session data unit (SDU) size.
Put this parameter under the DESCRIPTION parameter.
512 to 65535 bytes.
Setting this parameter in the connect descriptor for a client overrides the DEFAULT_SDU_SIZE parameter at client-side sqlnet.ora file.
Oracle Database Net Services Administrator’s Guide for complete SDU usage and configuration information
SEND_BUF_SIZE
To specify, in bytes, the buffer space for send operations of sessions. This parameter is supported by the TCP/IP, TCP/IP with SSL, and SDP protocols.
Additional protocols might support this parameter on certain operating systems. Refer to the operating system-specific documentation for additional information about additional protocols.
Put this parameter under the DESCRIPTION parameter or at the end of the protocol address.
The default value for this parameter is operating system-specific.
Setting this parameter in the connect descriptor for a client overrides the SEND_BUF_SIZE parameter at the client-side sqlnet.ora file.
Oracle Database Net Services Administrator’s Guide for additional information about configuring this parameter
SOURCE_ROUTE
To enable routing through multiple protocol addresses.
To use Oracle Connection Manager, an initial connection from the client to Oracle Connection Manager is required, and a second connection from Oracle Connection Manager to the listener is required.
Put this parameter under either the DESCRIPTION_LIST parameter, the DESCRIPTION parameter, or the ADDRESS_LIST parameter.