Специальная тема: настройка безопасности пользователя
Специальная тема: настройка безопасности пользователя
Идентификация пользователя Firebird довольно проблематична. Хорошая новость: все изменится к лучшему в Firebird 2. Плохая новость: нам придется с этим жить еще некоторое время. Ivan Prenosil- эксперт, в течение длительного времени занимающийся разработкой баз данных с использованием Firebird и его предшественников - создал несколько техник для настроек безопасности баз данных. Ivan согласился поделиться с вами своими советами и скриптами в данной специальной теме.
База данных безопасности
Когда пользователь соединяется с базой данных Firebird, его пароль сравнивается с зашифрованным паролем в базе данных безопасности. В версии 1.0.x имя базы данных isc4.gdb, в версии 1.5 - security.fdb. Это обычная база данных Firebird, таблица, используемая для идентификации пользователей, USERS. Ее (упрощенная) структура выглядит следующим образом:
CREATE TABLE USERS (
USER_NAME VARCHAR(128) ,
PASSWD VARCHAR(32) ); /* V
GRANT SELECT ON USERS TO PUBLIC;
Для проверки разрешений к этой таблице существует два очевидных препятствия. Одно - ни один пользователь не может прочесть полный список пользователей и зашифрованных паролей. Другое - только пользователь SYSDBA может изменять эту таблицу - пользователи не могут изменять их собственные пароли.
При этом, если вы пользователь SYSDBA, вы можете соединиться с базой данных безопасности, как и с любой другой базой данных, и изменять ее структуру. Это означает, что вы можете ее улучшать.
! ! !
ВНИМАНИЕ! Не забудьте сделать копию базы данных безопасности перед тем, как начнете ее изменять!
. ! .
Различие версий
При идентификации пользователей в Firebird 1.0.x сервер соединяется с базой данных безопасности, отыскивает необходимую информацию, а затем отсоединяется. Между соединениями у вас могут быть "не очень хорошие отношения" с isc4.gdb.
Однако в Firebird 1.5 соединение с базой данных безопасности сохраняется, пока пользователь соединен с любой базой данных на сервере. Поэтому в версии 1.5 вы должны выполнять все изменения с копией базы данных безопасности и позже ее инсталлировать. Нужно выполнить следующие шаги.
1. Сделайте оперативную копию security.fdb с использованием gbak.
2. Восстановите ее с другим именем.
3. Запустите скрипт для копии.
4. Закройте сервер.
5. Поменяйте местами старую и новую версии security.fdb и переименуйте.
6. Запустите заново сервер.