Вопрос собственно в политике доступа к программе. Ситуация такая - встроенных возможностей FireBird явно не хватает. Мне например нельзя допускать к работе пользователя, если пользователь с таким именем уже работает в системе, надо иметь возможность блокировать пользователя на уровне программы, учитывать "группу полномочий" юзера и так далее...
С другой стороны давать всем пользователям возможность логиниться под SYSDBA а затем подключать "свою" политику - тоже явно не выход... Напрашивается комбинация двух политик. Думается так:
1. Диалог ввода имени и пароля. Юзер вводит имя и пароль. Имена привыкли вводить по русски, думаю бороться с этим не следует, нужно просто транслитеровать имя. Далее идёт попытка коннекта к базе с этим именем, РОЛЬЮ RL_LOGIN (которая позволяет получить доступ на SELECT только к ОДНОЙ таблице - MY_USERS к примеру, или, что даже лучше, к одной SP которая будет возвращать необходимые данные.
2. Если попытка коннекта провалилась - всё понятно. Неверное имя и пароль, так как роль RL_LOGIN назначается ВСЕМ пользователям по-умолчанию.
3. Если попытка коннекта удачна - обращение к таблице MY_USERS (или запуск SP) и получение интересующих меня параметров - например в виде реальной роли этого пользователя, и скажем, кода возврата, который будет зависеть от того разрешён ли юзеру доступ, или он заблокирован администратором, работатет ли уже такой юзер в системе, или нет... Сохраняем полученное, если ситуация - отказ в доступе, выдаём соответствующее предупреждение.
4. Дисконнект от базы.
5. Если код возврата был позитивным

Таким образом в БД будет как минимум ДВЕ роли - одна только для первичного коннекта, вторая - для реальной работы (может будут и другие, в зависимости от полномочий юзера - конечно, я не дам доступа к SP, вносящей какие-нибудь каскадные изменения, скажем, обычному рядовому юзеру - ему это ни к чему).
Придётся, правда предусмотреть коннект SYSDBA чтобы коннект админа проходил "в одно касание" а не по такой двухзвенной системе...
Как думаете, нормально? Или есть какие-то наработки в этой области, про которые я не в курсе? Подскажите, плиз...
ЗЫ. И еще одно - если у кого есть на примете грамотный материал по просмотрам VIEW - киньте плиз, ссылочку, потому что никак я понять этого механизма не могу

