【发布时间】:2018-10-16 22:48:06
【问题描述】:
我们公司使用了更多使用 Firebird 数据库的应用程序。在某些安装中,我们使用安装在更多机器上的数据库服务。现在我正在尝试为所有这些集中用户管理。为此,我正在编写新的应用程序。我需要的是在 localhost 或网络中连接到选定的 Firebird 服务并枚举所有用户。传统上,“gsec”实用程序用于此目的。 “gsec”是 Firebird 安装的一部分。我可以像这样使用这个实用程序的命令行输出:
user name uid gid admin full name
------------------------------------------------------------------------------------------------
SYSDBA 0 0 Sql Server Administrator
TECHNICIAN 0 0 Technician Technician
TECHNIK 0 0 Technik Technik
但这对我来说似乎很麻烦。在 Firebird 的下一个版本中,文本输出的格式也可以改变。所以我宁愿直接使用位于 fbclient.dll 库中的 Firebird api。从 SysInternals 的 ProcessExplorer 实用程序中可以看出,“gsec”实用程序在内部使用 fbclient.dll。不幸的是,没有任何类型的文档。我所知道的是我应该在我的项目中包含 ibase.h 头文件。这个头文件的文档记录很差。我还下载了“gsec”实用程序的源代码,但它非常混乱。由于缺少 fbclient.dll 的导入库,该项目无法在 Visual Studio 2008 中编译。我曾尝试使用these 指令生成导入库,但失败了。
那么问题来了:如何使用客户端库fbclient.dll枚举firebird数据库机器中定义的用户?
【问题讨论】:
标签: firebird