Это можно настроить с помощью диспетчера ресурсов базы данных или путем создания настраиваемого профиля для группы пользователей, для которой вы хотите ограничить количество сеансов.
Документацию Oracle по профилям можно найти по следующей ссылке.Вы хотите определить параметр SESSIONS_PER_USER
как 1. https://docs.oracle.com/database/121/SQLRF/statements_6012.htm#SQLRF01310
Редактировать на основе дополнительных требований:
Подумав, я неконечно, если бы вы могли сделать что-то подобное на уровне профиля, вам, вероятно, придется сделать что-то вроде создания триггера на основе таблицы v$session
.v$session
имеет SCHEMANAME
, OSUSER
и MACHINE
.Поскольку ваши пользователи используют одну и ту же схему, вы можете создать триггер, который выдает ошибку типа «ОШИБКА: только одно соединение на пользователя / машину» на основе столбцов MACHINE
или OSUSER
в * 1018.* Таблица.Это не совсем идеально по ряду причин, и ваши разработчики, вероятно, будут вас ненавидеть, но если вам абсолютно необходимо сделать что-то подобное, это возможно.