В Firebird 2.5 и выше вы можете предоставить пользователю роль RDB $ ADMIN в базе данных.Это даст этому владельцу или эквивалентные права пользователя SYSDBA в этой базе данных.
GRANT [ROLE] RDB$ADMIN TO username
См. Также RDB $ ADMIN Роль в справочнике по языку Firebird 2.5.
Пользовательс помощью роли RDB $ ADMIN может выполнять резервное копирование базы данных при условии, что роль явно указана (опция -role
или -ro
).
Если вы считаете, что предоставление прав администратора пользователю может быть слишком сложным, учтите, что пользователь, который может выполнять резервное копирование и восстановление базы данных, по сути может делать с ней все, что угодно.Например, смените владельца при восстановлении или восстановите на другом компьютере, на котором они находятся, SYSDBA внесите необходимые изменения, такие как предоставление привилегий, манипулирование данными и т. Д., А затем выполните резервное копирование и восстановление поверх оригинала.
Firebird 4 представитдополнительная привилегия USE_GBAK_UTILITY
, которую можно использовать для предоставления пользователю только возможности выполнять операции gbak.Мой предыдущий пункт - это важное предостережение: пользователь, который может выполнять резервное копирование и восстановление, может делать больше, чем вы думаете.
Другими словами, разрешая пользователю выполнять резервное копирование базы данных, не предоставляя ему какой-либо административный контроль над базой данных.невозможно.