Справочник по языку Interbase 6.0 (доступен на http://www.firebirdsql.org/en/reference-manuals/) для ALTER TABLE
состояний:
Таблица может быть изменена ее создателем, пользователем SYSDBA и любыми пользователями
с привилегиями суперпользователя операционной системы.
Другими словами, если вы не являетесь владельцем таблицы, вам необходимо либо войти в систему как SYSDBA
, либо вы должны войти в систему как root или Adminstrator на компьютере с базой данных. Насколько я знаю, нет другого способа изменить таблицу от имени другого пользователя.
В Firebird 2.5 также есть роль RDB$ADMIN
, которая позволяет пользователю, которому предоставлена эта роль, действовать с теми же правами, что и SYSDBA.
Права, которые вы можете GRANT
(кроме REFERENCES
), предназначены только для DML, но не для операций DDL.
В Firebird 3 введены привилегии метаданных , что позволяет предоставлять эти разрешения конкретному пользователю роли для определенных типов объектов.
Например:
GRANT ALTER ANY TABLE TO Joe;
Позволит пользователю Joe изменять любые таблицы в текущей базе данных.