Firebird - список активных подключений (монопольный доступ)

Вопросы программирования и использования среды Lazarus.

Модератор: Модераторы

Ответить
bpg
новенький
Сообщения: 36
Зарегистрирован: 28.11.2017 20:23:18

Firebird - список активных подключений (монопольный доступ)

Сообщение bpg »

Как реализовать монопольный доступ к БД? Наподобие 1С, чтобы пользователь не мог подключаться, если администрирование БД или замена версии происходит?

И как получить список активных подключений, наподобие IBExpert (active user) ?

Добавлено спустя 2 часа 43 минуты 19 секунд:
Вопрос по списку пользователей снят. По второму вопросу.
Что бы я хотел. Допустим мне нужно в рабочей БД внести изменения. Я запускаю программу под админом, говорю, что теперь доступ у нее монопольный, типа все выйдете.
Потом у клиентв появляется уведомление - "бла, бла, бла, срочный удалитесь...."
Если я вижу в своем мониторе пользователей что кто то забил, то сначала звоню по хорошему, если нет, то удаляю сессию.
Потом, даже если кто то пытается запустить программу, то она не запускается с уведомлением о работах.

Как думаю сделать.
Завести в БД служебное поле и когда нужно писать туда допустим 1, при работе программу таймер допустим раз в минуту проверяет на чтение это поле и если оно становиться равным 1, то включает обратный отсчет и через какое то время закрывает программу у клиента.
Программа при проверке смотрит, чтобы пользователь не был админом чтоб самому работать.

При запуске соответственно она такую же проверку делает при активации главной формы.

Нормально или я гоню? Посоветуйте.
wadman
постоялец
Сообщения: 122
Зарегистрирован: 18.10.2016 14:54:28
Контактная информация:

Сообщение wadman »

Если пользователи ходят под своими учетками, без админских прав, то

см в TIBConfigService.ShutdownDatabase
подробнее https://www.firebirdsql.org/pdfmanual/h ... tstop.html

Грубо говоря, FB уже имеет такой режим: СУБД сама запретит подключение к базе всем, кроме админа. Сама же может всех отключить.
bpg
новенький
Сообщения: 36
Зарегистрирован: 28.11.2017 20:23:18

Сообщение bpg »

wadman писал(а):Если пользователи ходят под своими учетками, без админских прав, то
см в TIBConfigService.ShutdownDatabase

Это из каких компонентов, я использую встроенные родные SQLDb.
wadman
постоялец
Сообщения: 122
Зарегистрирован: 18.10.2016 14:54:28
Контактная информация:

Сообщение wadman »

bpg писал(а):Это из каких компонентов

IBX https://www.mwasoftware.co.uk/ibx
bpg
новенький
Сообщения: 36
Зарегистрирован: 28.11.2017 20:23:18

Сообщение bpg »

А со встроенными компонентами такое возможно?
wadman
постоялец
Сообщения: 122
Зарегистрирован: 18.10.2016 14:54:28
Контактная информация:

Сообщение wadman »

bpg писал(а):А со встроенными компонентами такое возможно?

Почти. Функция fb_shutdown объявлена в ibase60dyn/ibase60, но не задействована.
Аватара пользователя
Tango
постоялец
Сообщения: 162
Зарегистрирован: 31.05.2012 17:07:30

Сообщение Tango »

Если кому всё ещё нужно.
Заводится генератор, так как генератор работает вне транзакций, то именно он подходит для этого.
В программах клиентах по таймеру ведётся опрос этого генератора без приращения значения.
Всё.
Ответить