Безопасность всей базы данных зависит от проверки подлинности идентификатора пользователя.Подлинность пользователя может выполняться несколькими способами в зависимости от установок параметра 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
он получает неограниченный доступ ко всем объектам принадлежащим этой базе данных.