Ограничение доступа на подключение к базе Firebird или Firebird GRANT CONNECT

БД Firebird меня разочаровали - нет возможности настроить запрет на подключение к БД для совершенно левых (хотя и RDB$ADMIN) пользователей

Зато есть возможность обрабатывать триггер подключения к БД - bi_connect

В нем достаточно проверить логин и/или роль пользователя и в случае если доступ закрыт - выкинуть ошибку

Подробный сценарий:

1. Приконнектиться через IBExpert к обрабатываемой БД под SYSDBA обязательно!
2. Нажать F12
3. Вставить код:
execute block(username varchar(255) = :username)
AS
begin
execute statement('CREATE EXCEPTION access_forbidden ''No access  for your username =)''');
 
execute statement('CREATE OR ALTER trigger bi_connect
                   active on connect position 0
                    as
                   begin
                      if (user <> ''SYSDBA'' and user <> ''' || :username || ''')
                         then exception access_forbidden;
                   end');
end
4. Нажать F9
5. Ввести логин, которому нужно разрешить коннект к БД
6. Повторно нажать F9
7. Нажать CTRL+ALT+C подтвердив изменения
8. Проверить подключение к БД под SYSDBA, указанным пользователем и совершенно левым пользователем
P.S.: В случае, если у вас нет IBExpert - выполните код пункта 3 из консоли, или как вы привыкли )

Комментариев нет:

Отправить комментарий

Можете оставить свой комментарий