Subject RE: [firebird-support]Restore - cannot find column for grant?
Author Paul Hope
Hi Thomas

Thank you for your reply. I thought I would try and find which field was
missing and did

select * from rdb$user_privileges p where
not exists(select * from rdb$relation_fields f where
f.rdb$field_name=p.rdb$field_name)
and p.rdb$field_name is not null

but it returned nothing.

Short of attempting to revoke and reinstate all privileges is there a way of
finding the rogue record?

Regards
Paul

> > Cant fully restore a freshly backup up FB1.5 D1 database - error
> >
> > IBE: Unsuccessful execution caused by system error that does not
> > preclude successful execution of subsequent statements.
> > action cancelled by trigger (1) to preserve data integrity.
> > could not find column for GRANT.
>
> This is a bug in FB 1.5.3 (haven't tried with FB 1.5.4 and FB
> 2.0.x), which is fixed in FB 2.1 Alpha.
>
> It has to do with granting field based update operations to
> users and not removing the according record in the
> RDB$USER_PRIVILEGES table when dropping the field. So there
> is a record in this system table for a field which doesn't
> exist anymore.
>
> > How can I fix this?
>
> Execute the proper REVOKE statement before creating a backup.
>
> HTH.
>
>
> --
> Best Regards,
> Thomas Steinmaurer
> LogManager Series - Logging/Auditing Suites supporting
> InterBase, Firebird, Advantage Database, MS SQL Server and
> NexusDB V2 Upscene Productions http://www.upscene.com