我有一个奇怪的问题。 在Windows下创build数据库。 现在在FreeBSD下,我试图将数据导出到csv。 Fbexport是在Linuxulator(Linux二进制)下工作的。 从isql-fb我可以连接到数据库,并执行任何操作像SELECT
,但从fbexport – 无法。
root@sms# fbexport -Sc -D /home/sms2/DB2.FDB -H 127.0.0.1 -U 'SYSDBA' -P 'masterkey' -F full.txt -A "WIN1251" -B ::: -Q "SELECT * FROM AGENTS;" Connecting to: '127.0.0.1' as 'SYSDBA'...ERROR! *** IBPP::SQLException *** Context: Database::Connect Message: isc_attach_database failed SQL Message : -551 This user does not have privilege to perform this operation on this object. Engine Code : 335544352 Engine Message : no permission for read-write access to database /home/sms2/DB2.FDB
我错了什么?
fbexport工具使用服务器连接到数据库(在本例中为localhost)。 您试图通过localhost上的Firebird服务器实例访问主目录中的数据库。 Firebird服务器在特定的用户(例如firebird
)下运行,并且该用户不具有对数据库/home/sms2/DB2.FDB
读/写访问权限。
与isql-fb
连接的原因是,默认情况下,isql使用嵌入式引擎直接连接到数据库,而不需要通过在本地主机上运行的Firebird服务器实例(如果连接到localhost:/home/sms2/DB2.FDB
与isql localhost:/home/sms2/DB2.FDB
你会得到相同或类似的错误信息)。
您需要授予firebird
组对您的个人文件夹中的数据库的读写访问权限,或将其移动到主目录之外的位置(+授予firebird
用户或组读/写入文件)。