Ввод учетных данных пользователя
Ввод учетных данных пользователя
Основное использование gsec - или интерфейса gsec - ввод учетных данных пользователя. Интерфейс gsec шифрует пароли перед их сохранением. Не соединяйтесь из пользовательского приложения или из инструмента администратора непосредственно с базой данных безопасности для запуска скрипта с целью "пакетного ввода" пользователей, потому что пароль в этом случае будет сохраняться в виде чистого, незашифрованного текста.
! ! !
СОВЕТ. В Firebird существуют сервисы API, которые связываются в gsec вместе с другими инструментами командной строки. Некоторые инструменты администратора сторонних разработчиков предоставляют доступ к gsec для поддержания учетных данных пользователей через сервисы API в более дружественном интерфейсе, чем утилиты командной строки.
. ! .
Требуемыми данными являются имя пользователя и пароль. Для имен пользователей и паролей в настоящий момент не поддерживаются международные наборы символов.
Только пользователь SYSDBA может обслуживать базу данных безопасности. Это означает, что вновь установленный Firebird не поддерживает изменения пользователями своих собственных паролей. Техники настроек идентификации пользователей на вашем сервере и реализацию этих возможностей см. в разд. "Специальная тема" в конце этой главы.
Имя пользователя чувствительно к регистру и должно быть уникальным. В настоящий момент оно может содержать только символы, допустимые для идентификаторов объектов: А-2 (или а-z), цифры и символы !, #, $, &, @. Теоретически имя пользователя может содержать до 128 символов, но вы должны рассматривать его ограниченным 31 символом, потому что более длинное имя не будет верным при использовании разрешений SQL.
! ! !
ВНИМАНИЕ! gsec позволит вам определять глупые имена пользователей, такие как строки звездочек или "смайлики" вроде :), однако не прельщайтесь этим! Подобные строки неприемлемы на месте, где используются имена пользователей - в параметрах соединения или операторах разрешения.
. ! .
Пароль может содержать до 32 символов, однако только первые восемь являются значимыми. Поэтому, например, пароли masterkey и masterkeeper для сервера выглядят идентичными. Пароли чувствительны к регистру. Допустимые символы такие же, как и для имени пользователя, но прописные буквы отличаются от строчных. Пароли не обязаны быть уникальными, хотя это и желательно для целей повышения безопасности.
! ! !
ПРИМЕЧАНИЕ. Некоторые интерфейсы администратора накладывают ограничение в восемь символов и не допускают имена пользователей и пароли, которые начинаются с цифры. Хотя это и не является ограничением системы безопасности баз данных, имеет смысл следовать такой практике.
. ! .
Шифрование пароля
Интерфейс gsec шифрует пароли, используя скромный метод, основанный на алгоритме хэширования DES (Data Encryption Standard, стандарт шифрования данных). По причине восьмисимвольного ограничения идентификация пользователя в Firebird на сегодняшний день не может рассматриваться как "центурион у ворот в современную эпоху"[135].
Все-таки исключите такие очевидные пароли, как password и sesame. Смешивайте регистр, включите цифры и обеспечьте регулярное изменение паролей.
! ! !
СОВЕТ. Поскольку невозможно отыскать потерянные пароли с помощью запросов к системе, вам нужна непробиваемая система фиксации паролей пользователей при их изменении. Глупая болтовня про отслеживание пользователей не может быть той системой, которую осознанно выбирает организация для средств безопасности! Потеря паролей может быть восстановлена пользователем SYSDBA. Если же будет потерян пароль у SYSDBA, то вся база данных безопасности должна быть заменена путем восстановления файла security.fdb, который вы найдете в корневом каталоге Firebird (для Firebird 1.0.x это файл isc4.gdb). Начните работу с паролем masterkey.
. ! .