Firebird 3使用isql-fb创建用户失败的权限问题求助
解决Firebird 3中RDB$ADMIN角色用户无法创建新用户的问题
这个问题的核心在于Firebird 3的用户账户信息存储在单独的安全数据库(security3.fdb)中,而不是你业务使用的mydb数据库里。你之前的操作是连接业务数据库并尝试创建用户,即便带着RDB$ADMIN角色,也没有权限操作安全数据库的用户管理表。
正确的操作步骤
你需要直接连接security3.fdb,并以RDB$ADMIN角色身份执行创建用户的命令:
- 启动
isql-fb:[user@host]$ isql-fb -z - 连接安全数据库
security3.fdb,指定RDB$ADMIN角色:SQL> connect /home/firebird/secdb/security3.fdb user myuser password 'mypassword' role RDB$ADMIN; - 现在执行创建用户的命令:
这时候应该能成功执行,不会再出现权限错误。SQL> create user NEWUSER password 'dasgfsdfdasf';
额外注意事项
- 确保
myuser确实在security3.fdb中被授予了RDB$ADMIN角色(你已经通过show grants确认过这一点,这很好)。 - 如果是远程连接安全数据库,需要检查
firebird.conf中的RemoteAccess设置是否允许远程访问,同时确保firebird系统用户对/home/firebird/secdb/目录和security3.fdb文件有读写权限。 - 不要在业务数据库中尝试用户管理操作,Firebird 3的用户管理完全由安全数据库管控。
内容的提问来源于stack exchange,提问作者mor22
相关产品推荐
相关产品推荐

