用于用户和权限的 Firebird DDL

Firebird DDL for user and privileges

我有 Firebird 2.5,我需要提取所有用户和权限作为 DDL 以导出到另一个 Firebird 数据库。

例如,我需要获取用户 max

的脚本
"Create user max  FIRSTNAME 'Max' LASTNAME 'Power' Grant admin option";

我用的是IB Expert,但是没有找到这个提取DDL的选项。

工具 -> Grants/Rights 管理器 -> 工具栏 -> 保存 -> 到脚本执行程序

或者,转到“工具”->“提取元数据”->“设置”,然后在下方选中“提取资助”复选框。


您还必须记住,用户本身不存在于数据库中(只有授权存在),用户存在于服务器中,而不是数据库中。

how to display and set user rights in firebird database

另请参阅 GSEC 文档:

gsec -user sysdba -password <password> -database <databasename> -display - 这样的命令应该显示在用于连接数据库的服务器上注册的所有用户。获取用户列表并将 create user 命令添加到每个用户列表将是微不足道的。


还有一个小众案例,Firebird 可能没有任何用户,从主机操作系统借用它们。它被称为“可信身份验证”模式。如果 GSEC 不显示用户或显示用户太少 - 检查相关 firebird.conf 中的身份验证设置,也许您必须转储来自 Windows 的用户列表,而不是来自 Firebird。