2013-02-19 62 views
3

我想编写一个C++管理应用程序来简化我负责的数据库的管理。目前,当我想知道是否有用户连接到由两个不同实例运行的多个Firebird数据库时,我必须连接到每个数据库并进行检查。没关系,但我不想注册所有正在创建的新数据库,但我不想查看,我想要某种方式列出当前已打开或正在由服务器使用的数据库。当前2个使用此功能,我能想到的是:Firebird 2.5.1服务器使用的列表数据库(超级服务器模式)

  1. 自动包含在备份过程
  2. 应用更新,需要用户注销(一看,我就可以告诉谁踢或至少要拨打哪个部门)

回答

2

firebird没有API列出所有可用的数据库。从技术上讲,Firebird根本不知道数据库的存在性,直到你真正连接到数据库。

您可能能够使用Trace API或监视表查找所有正在连接到的数据库,但这并不排除系统上存在其他数据库的可能性。

+0

我知道firebird不知道,但对这个审计/追踪很好的建议。这正是我所追求的 - 用户启动的按需追踪是可能的。我能够通过简单的配置文件'启用真正的log_connections真实'来使用FBTRACEMGR'来获取我需要的所有信息。任何被某人列出的数据库连接。知道这一点,我会编写一个应用程序来收集这些信息并将其存储起来供将来使用(我想我甚至可以检查DB使用的频率)。谢谢,马克! – Kitet 2013-02-20 16:50:42

+0

@Kitet不客气。只需注意:AFAIK只有SYSDBA用户(或具有RDB $ ADMIN角色的用户)可以跟踪来自其他用户的连接。 – 2013-02-20 17:05:29

+0

是的,他们是我的服务器,而我即将建立的工具就像我的谦虚自己=) – Kitet 2013-02-20 17:11:39

相关问题