0

我需要在 Firebird 3.0 嵌入式数据库中创建用户,但使用标准命令会返回错误。

命令: CREATE USER miusuario PASSWORD 'miclave';

返回:

Engine Error (code = 335544382): Missing user management plugin.
SQL Error (code = -901): Unsuccessful execution caused by system error that does not preclude
successful execution of subsequent statements

我需要在运行时和开发中创建用户。

知道如何解决这个问题吗?我查看了 Firebird 文档,但没有任何帮助。

我不在服务器模式下使用 Firebird,只在嵌入式模式下使用。

4

1 回答 1

0

Firebird Embedded 不执行身份验证1,它将接受您在连接时指定的任何用户名。创建用户是不必要的,在您的情况下是不可能的,因为看起来用户管理插件未配置或不可用(UserManager在 中设置firebird.conf)。但是,即使配置了该插件,如果您只使用 Firebird Embedded,创建用户也是没有意义的,因为 Firebird Embedded 实际上不会使用该用户的数据。

在 Firebird 中,权限被授予用户名而不是安全数据库中的用户记录2。因此,即使不存在具有该用户名的用户,您也可以授予它权限(实际上,这在 Firebird 服务器中也是可能的)。

使用 Firebird Embedded 时,您可以使用任何用户名登录(忽略密码)。然后,登录的用户将承担授予该用户名的任何权利。


1:在 Windows 上一直如此,在 Linux 上,这只是自 Firebird 3 以来的情况,在 Linux 上的早期版本中,Firebird Embedded 确实使用安全数据库执行了实际身份验证

2:除了安全数据库中的管理员和数据库创建权限等一小部分权限

于 2020-08-27T05:52:28.173 回答