FirebirdSQL logo

Безопасность всей базы данных зависит от проверки подлинности идентификатора пользователя.Подлинность пользователя может выполняться несколькими способами в зависимости от установок параметра AuthServerв файле конфигурации firebird.conf.Этот параметр содержит список доступных плагинов проверки подлинности.Если проверить подлинность с помощью первого плагина не удалось, то сервер переходит к следующему плагину и т.д.Если ни один плагин не подтвердил подлинность, то пользователь получает сообщение об ошибке.

Информация о пользователях, зарегистрированных для конкретного сервера Firebird, хранится в особой базе данных безопасности (security database) — security4.fdb.Для каждой БД база данных безопасности может переопределена в файле databases.conf (параметр SecurityDatabase).Любая база данных может быть базой данных безопасности для самой себя.

Имя пользователя может состоять максимум из 63 символов.Максимальная длина пароля зависит от плагина проверки подлинности и плагина управления пользователями (параметр UserManager), регистр — учитывается.По умолчанию будет выбран первый плагин из списка плагинов управления пользователями.Этот плагин можно изменить в SQL командах управления пользователями.Для плагина SRP эффективная длина пароля ограничена 20 байтами *. Для плагина Legacy_UserManager максимальная длина пароля равна 8 байт.

Note
*Почему эффективная длина пароля ограничена 20 символами?

На длину пароля нет ограничения в 20 байт и он может быть использован.Хеши различных паролей, длина которых более 20 байт, тоже различны.Предел эффективности наступает из-за ограниченной длины хеша в SHA1 равном 20 байт или 160 бит.Рано или поздно найдётся более короткий пароль с тем же хешем с помощью атаки Brute Force.Именно поэтому часто говорят, что эффективная длина пароля для алгоритма SHA1 составляет 20 байт.

Встроенная версия сервера (embedded), не использует аутентификацию.Тем не менее имя пользователя, и если необходимо роль, должны быть указаны в параметрах подключения, поскольку они используются для контроля доступа к объектам базы данных.

Пользователь SYSDBA или пользователь вошедший с ролью RDB$ADMIN, получают неограниченный доступ к базе данных.Если пользователь является владельцем базы данных, то без указания роли RDB$ADMIN он получает неограниченный доступ ко всем объектам принадлежащим этой базе данных.

Специальные учётные записи