Пользователь, создавший базу данных, является просто владельцем базы данных, пользователь sysdba является администратором и может делать все что угодно со всеми базами данных на сервере Firebird. Это очень веская причина никогда не использовать мастер-ключ в качестве пароля на рабочем сервере.
Имена пользователей и пароли в Firebird 2.5 и более ранних версиях хранятся в базе данных безопасности (security2.fdb), которая является частью установки Firebird. Таким образом, перемещение базы данных на другой сервер (или замена security2.fdb) позволит неавторизованным лицам получить доступ к базе данных. Обратите внимание, что я заключаю здесь несанкционированный доступ в кавычки, потому что, если у человека есть прямой доступ к файлу, чтобы он мог сделать копию базы данных или заменить security2.fdb, у него достаточно прав на вашем сервере, чтобы делать все, что он хочет (или безопасность вашей системы была нарушена).
В Firebird 3 можно будет хранить пользователей в самой базе данных, но это по-прежнему требует настройки на стороне сервера, так что, насколько я знаю, это не сильно ограничит этот сценарий. Firebird 3 также будет поддерживать шифрование базы данных, что позволит вам предоставлять доступ только к определенному серверу или пользователям, предоставившим определенный ключ. К сожалению, Firebird 3 предоставляет только API, но не шифрование. Это остается реализовать пользователям или поставщикам библиотек.
Существует также хитрость создания роли с именем SYSDBA
в вашей базе данных, которая не позволит пользователю с именем пользователя sysdba подключиться к базе данных. Но это легко обойти, используя шестнадцатеричный редактор и некоторые знания внутренней структуры базы данных Firebird, чтобы отменить это. Если человеку действительно нужен доступ к вашим данным, он также может просто скомпилировать сервер Firebird, который пропускает или игнорирует аутентификацию.
В общем, это означает, что если кто-то имеет прямой доступ к файлу базы данных, то он может создать копию и открыть ее на другой установке Firebird тем или иным способом. Таким образом, единственный реальный способ защитить файл базы данных — убедиться, что пользователи могут получить доступ к базе данных только через сервер Firebird, не имеют прямого доступа к файлам базы данных и — за исключением администраторов — не могут создавать резервную копию файла базы данных. база данных.
Даже если пользователи имеют доступ только через сервер, они все равно могут сделать логическую копию всей структуры базы данных и всех данных, к которым им разрешен доступ.
Рекомендуем прочитать Безопасность файлов и метаданных Firebird< /а>
person
Mark Rotteveel
schedule
28.11.2015