在RedDatabase(Firebird 3)中创建多因素用户时遇错误求助
问题描述
执行以下SQL创建多因素用户时触发错误:
create user "SYSDBA" password 'masterkey' using plugin multifactor_manager
返回错误:
Resource Exception. add record error; Unexpected call to Firebird::LongJump::stuffException() [SQLState:HY000, ISC error code:335544382].
日志中报错详情:
Cryptographic operation is failed. Error: specified plugin not found
已在firebird.conf中配置该插件,且多个数据库均出现此问题,重装Firebird后仍无法解决。
排查步骤
确认插件文件存在且路径正确
检查multifactor_manager插件的动态库文件(Windows下为.dll,Linux下为.so)是否存在于Firebird的plugins目录中。若文件缺失,需获取与Firebird/RedDatabase版本完全匹配的插件文件,放置到对应目录。验证firebird.conf中的插件配置
确认UserManager配置项已包含multifactor_manager,格式应为:UserManager = Srp, Legacy_UserManager, multifactor_manager注意插件名称拼写完全正确(Linux环境区分大小写),配置项无多余空格。修改后必须重启Firebird服务才能生效。
检查插件依赖库
使用依赖检查工具(Windows用dumpbin /dependents,Linux用ldd)查看multifactor_manager插件是否缺少依赖库。若有缺失,补充对应的系统库或Firebird配套库。确认数据库ODS版本兼容性
检查数据库的ODS(On-Disk Structure)版本是否支持多因素认证插件。旧版本ODS可能不兼容,需备份数据库后通过备份还原操作升级ODS版本。排查权限问题
确保Firebird服务进程对plugins目录及插件文件有读取权限:Linux下检查文件所属用户组是否为firebird,权限设置合理;Windows下确认服务账户有足够访问权限。测试基础用户创建功能
先尝试不使用插件创建普通用户,验证核心用户管理功能是否正常:create user "TEST_USER" password 'testpass' using plugin Srp若此操作也失败,说明核心用户管理组件存在问题,需重新检查Firebird安装完整性。
内容的提问来源于stack exchange,提问作者Dimarik

