В этом учебном материале вы узнаете, как найти всех пользователей, которые в настоящее время вошли в базу данных Oracle.
Описание
Вы можете найти всех пользователей, которые в настоящее время вошли в Oracle, выполнив запрос из командной строки. В Oracle/PLSQL, есть представление под названием V$SESSION, которое показывает информацию о сеансе связи для каждой текущей сессии в базе данных. Вы можете запустить запрос к системному представлению, чтобы вернуть всех пользователей, которые в настоящее время имеют работающие соединения в базе данных Oracle/PLSQL.
Синтаксис
Синтаксис для получения информации о пользователях, которые вошли в Oracle:
Это предложение 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 |
|
| SERVICE_NAME | Имя службы сессии |
| SQL_TRACE | ENABLED или DISABLED |
| SQL_TRACE_WAITS | TRUE или FALSE |
| SQL_TRACE_BINDS | TRUE или FALSE |