我有一个格式的火鸟数据库。GDB。
如果我设置了一个基间服务器并打开 .GDB 使用(例如 IB 专家)使用默认密码我可以打开数据库。
所以我想防止数据库被其他软件打开,我该怎么做?
使用"gsec.exe",我可以添加和修改用户,但这并不能为我提供防止新的Firebird实例打开数据库的工具。
据我所知,您无法避免.GDB 或 .FDB 数据库将由 Interbase 或 Firebird 实例打开。它是一个文件(或文件组),具有此类实例的已知结构,只要(恶意)用户知道 SYSDBA 密码,就可以访问它。
说到这里,一些建议:
- 如果您不需要它,请确保安装中不存在 Firebird 的嵌入式版本,以避免为用户提供可以直接访问数据库的工具。
- 尽可能限制对数据库所在目录的任何访问。防火墙、目录用户权限等
- 如您所说.exe使用 gsec 添加/修改用户访问权限。虽然这不会阻止 SYSDBA 访问数据库,但至少它会阻止普通用户这样做。
- 加密数据库所在的文件系统。您可以在如何保护Firebird数据库中的数据中找到有关此内容的更多信息。
- 如果要通过不安全的网络(如Internet)访问数据库,则可以考虑使用SSL。选中如何保护不安全网络上的连接。
- 查看 Firebird Security FAQ 了解更多信息。
还有另一种解决方案可能会部分帮助您:在存储数据之前加密,在读取数据时解密,但它可能会导致搜索数据时出现一些问题,因为您将无法使用某些索引(实际上只有 PK 和 FK 索引可以完美地工作)。
我知道这不是你所期望的答案,所以很抱歉。也许其他人会提出替代和更好的解决方案。:-)
呵呵