Поиск пользователей вошедших в Oracle/PLSQL

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

Описание

Вы можете найти всех пользователей, которые в настоящее время вошли в Oracle, выполнив запрос из командной строки. В Oracle/PLSQL, есть представление под названием V$SESSION, которое показывает информацию о сеансе связи для каждой текущей сессии в базе данных. Вы можете запустить запрос к системному представлению, чтобы вернуть всех пользователей, которые в настоящее время имеют работающие соединения в базе данных Oracle/PLSQL.

Синтаксис

Синтаксис для получения информации о пользователях, которые вошли в Oracle:

SELECT USERNAME FROM V$SESSION;

Это предложение SELECT будет возвращать имя пользователя, который вошел в систему.

Представление V$SESSION содержит следующие столбцы:

Столбец Описание
SADDR Адрес сессии
SID Идентификатор сессии
SERIAL# Серийный номер сессии
AUDSID Аудиторский идентификатор сеанса
PADDR Адрес процесса, которому принадлежит сеанс
USER# Идентификатор пользователя
USERNAME Имя пользователя (например: root, admin и т.д.)
COMMAND Разбор последнего предложения
OWNERID Идентификатор пользователя, которому принадлежит сеанс переноса
TADDR Адрес объекта состояния транзакции
LOCKWAIT Адрес ожидания блокировки
STATUS Статус сессии. Это может быть одно из: ACTIVE, INACTIVE, KILLED, CACHED, or SNIPED.
SERVER Тип сервера. Это может быть одно из: DEDICATED, SHARED, PSEUDO, or NONE.
SCHEMA# Идентификатор пользователя схемы
SCHEMANAME Имя пользователя схемы
OSUSER Клиентская операционная система
PROCESS Клиентский ID процесса пользователя
MACHINE Имя машины пользователя
TERMINAL Имя терминала пользователя
PROGRAM Имя программы пользователя
TYPE Тип сессии пользователя
SQL_ADDRESS Идентификатор текущего выполнения SQL оператора (используется с SQL_HASH_VALUE)
SQL_HASH_VALUE Идентификатор текущего выполнения SQL оператора (используется с SQL_ADDRESS)
SQL_ID SQL идентификатор текущего выполнения SQL оператора
SQL_CHILD_NUMBER Дочерний номер SQL оператора текущего выполнения
PREV_SQL_ADDR Идентификатор последнего выполненного SQL оператора (используется с PREV_HASH_VALUE)
PREV_HASH_VALUE Идентификатор последнего выполненного SQL оператора (используется с PREV_SQL_ADDR)
PREV_SQL_ID SQL идентификатор последнего выполненного SQL оператора
PREV_CHILD_NUMBER Дочерний номер последнего выполненного SQL оператора
MODULE Название модуля текущего выполнения (согласно DBMS_APPLICATION_INFO.SET_MODULE)
MODULE_HASH Хэш-значение текущего модуля выполнения
ACTION Название текущего выполняемого действия (согласно DBMS_APPLICATION_INFO.SET_ACTION)
ACTION_HASH Хэш-значение текущего выполняемого действия
CLIENT_INFO Информация клиента (согласно DBMS_APPLICATION_INFO.SET_CLIENT_INFO)
FIXED_TABLE_SEQUENCE Номер последовательности увеличивающийся каждый раз, когда была выборка из динамической таблицы производительности
ROW_WAIT_OBJ# Идентификатор объекта для таблицы задается ROW_WAIT_ROW#
ROW_WAIT_FILE# Идентификатор файла данных, указанных в ROW_WAIT_ROW#
ROW_WAIT_BLOCK# Идентификатор блока, указанного в ROW_WAIT_ROW#
ROW_WAIT_ROW# Строка, которая в настоящее время заблокирована
LOGON_TIME Время в которое пользователь залогинился
LAST_CALL_ET Если значение столбца STATUS - ACTIVE, то LAST_CALL_ET это прошедшее время (в секундах) поскольку сессия стала активна. Значение столбца STATUS - INACTIVE, LAST_CALL_ET это прошедшее время (в секундах), как сеанс стал неактивным.
PDML_ENABLED Заменено PDML_STATUS
FAILOVER_TYPE Какой тип сбоя прозрачного приложения включен для сессии. Это может быть одно из следующих действий: NONE, SESSION, или SELECT.
FAILOVER_METHOD Метод сбоя прозрачного приложения для сессии. Это может быть одно из следующих действий: NONE, BASIC, или PRECONNECT.
FAILED_OVER YES или NO показывает произошел ли сбой
RESOURCE_CONSUMER_GROUP Ресурс группы клиентов для сессии
PDML_STATUS ENABLED или DISABLED
PDDL_STATUS ENABLED или DISABLED
PQ_STATUS ENABLED или DISABLED
CURRENT_QUEUE_DURATION Время, в течение которого сессии были поставлены в очередь
CLIENT_IDENTIFIER Идентификатор клиента для сессии
BLOCKING_SESSION_STATUS Это может быть одно из следующих значений: VALID, NO HOLDER, GLOBAL, NOT IN WAIT, or UNKNOWN
BLOCKING_INSTANCE Идентификатор экземпляра блокировки сессии
BLOCK_SESSION Идентификатор сессии блокируемой сессии
SEQ# Номер последовательности увеличивающийся при каждом ожидании
EVENT# Номер события
EVENT Ресурс, который ожидает сессию
P1TEXT Описание первого дополнительного параметра
P1 Первый дополнительный параметр
P1RAW Первый дополнительный параметр
P2TEXT Описание второго дополнительного параметра
P2 Второй дополнительный параметр
P2RAW Второй дополнительный параметр
P3TEXT Описание третьего дополнительного параметра
P3 Третий дополнительный параметр
P3RAW Третий дополнительный параметр
WAIT_CLASS_ID Идентификатор класса ожидания
WAIT_CLASS# Номер класса ожидания
WAIT_CLASS Имя класса ожидания
WAIT_TIME Значение сессий последнего времени ожидания. Если 0, тогда сессия текущего ожидания
SECONDS_IN_WAIT Если WAIT_TIME > 0, тогда SECOND_IN_WAIT это количество секунд с момента начала последнего ожидания. Если WAIT_TIME = 0, тогда SECONDS_IN_WAIT это количество секунд, прошедших в текущем ожидания.
STATE
  • 0 означает WAITING
  • 2 означает WAITED UNKNOWN TIME
  • 1 означает WAITED SHORT TIME
  • >0 означает WAITED KNOWN TIME
SERVICE_NAME Имя службы сессии
SQL_TRACE ENABLED или DISABLED
SQL_TRACE_WAITS TRUE или FALSE
SQL_TRACE_BINDS TRUE или FALSE