如何在嵌入式Firebird 3.0中创建用户

问题描述

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

命令: 创建用户miusuario 密码'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,而只是嵌入式。

解决方法

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

在Firebird中,特权授予用户名,而不授予安全性数据库 2 中的用户记录。因此,即使没有使用该用户名的用户,您也可以为其授予权限(实际上,在Firebird服务器中也可以)。

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


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

2:除了安全数据库中的一小部分特权(例如admin)和数据库创建特权