无权读取/选择对数据库的访问权限

问题描述 投票:0回答:1

当尝试使用不同于SYSDBA的用户(假设用户SOM)连接到Firebird数据库时,出现上述错误。如果我在同一台服务器上使用SYSDBA创建新数据库,然后向SOM授予对该对象的访问权限,则它可以毫无问题地连接,但是对于此特定数据库-不会。试图将所有权利(包括系统对象的所有权利)授予SOM(如果可能,我正在使用强大的IBExpert),但没有成功。

c:\Program Files\Firebird\Firebird_2_5\bin>isql -user SOM -password secret 
Use CONNECT or CREATE DATABASE to specify a database
SQL> connect "c:\data\data.fdb";
Database:  "c:\data\data.fdb", User: SOM
SQL> select * from exampletable ;
Statement failed, SQLSTATE = 28000
no permission for read/select access to DATABASE
Command error: select * from exampletable

我无法找到将任何东西授予对象DATABASE的方法。

可能是因为有问题的数据库是通过gbak版本2.5从Firebird 3数据库中还原的(以这种方式从firebird 3降级到2.5)。可能的解决方案是使用用户SOM还原数据库,但我不希望用户SOM是数据库的所有者。如果我使用SYSDBA进行备份和还原,则同样的问题会再次出现。

firebird firebird2.5 firebird-3.0
1个回答
0
投票

您是否尝试过将gbak从2.5升级到BACKUP FB 3数据库?

  1. 正在运行FB 3
  2. 将gbak从2.5放置到fb 3文件夹中,如gbak25。或者,按照您的意愿进行操作,但是2.5版的gbak需要使用3.0版的fbclient.dll。
  3. gbak25 -b -g -v db.fdb db.fbk -user ... -pass ...

然后在2.5上还原此备份。

© www.soinside.com 2019 - 2024. All rights reserved.