Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/webpack/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Database Firebird数据库密码_Database_Firebird - Fatal编程技术网

Database Firebird数据库密码

Database Firebird数据库密码,database,firebird,Database,Firebird,我真的很想知道,如何保护firebird数据库不被任何用户打开,而是从它自己的应用程序打开。如果我分发一个带有单个文件Firebird数据库(未嵌入)的桌面应用程序,如何保护该数据库不被复制到另一台运行Firebird且具有已知sysdba密码的计算机上 我搜索了与此主题相关的问题,只找到以下内容: 如果那篇文章中的答案是真的,那么如何将桌面应用程序与firebird数据库一起使用,并禁止任何用户使用其他机器打开它?或者我应该使用其他数据库,如mySQL或PostgreSQL PS:我使用Del

我真的很想知道,如何保护firebird数据库不被任何用户打开,而是从它自己的应用程序打开。如果我分发一个带有单个文件Firebird数据库(未嵌入)的桌面应用程序,如何保护该数据库不被复制到另一台运行Firebird且具有已知sysdba密码的计算机上

我搜索了与此主题相关的问题,只找到以下内容:

如果那篇文章中的答案是真的,那么如何将桌面应用程序与firebird数据库一起使用,并禁止任何用户使用其他机器打开它?或者我应该使用其他数据库,如mySQL或PostgreSQL

PS:我使用Delphi2006开发GUI

如何将桌面应用程序与firebird数据库一起使用,并禁止任何用户使用其他计算机打开它

如果您的意思是用户同时拥有加密数据和密钥,那么您正在进行DRM。最终的答案是:你不能。您可以通过使用不同的方法隐藏密钥来减慢用户的速度,但无法阻止它们。

您不能


这或多或少与Pidgin的问题相同,只是保护它不受某些用户的影响,而不受其他用户的影响,而不受您的应用程序和任何最终用户的影响。

您在考虑Firebird数据库的密码时忽略了这一点-服务器是开源的,因此无法实现您想要的功能。用户只需在密码签出后重新编译服务器即可

基本上,你只能做两件事:

  • 将您自己的修改写入Firebird服务器,使其写入与所有其他服务器不兼容的数据库文件。因此,人们可以将数据库传输到另一台机器并不重要,因为标准服务器可执行文件将无法访问数据库中的数据

  • 只将加密数据写入文件,这样就可以访问数据库了

当然,两者都不是傻瓜式的,因为一个坚定的破解者可以简单地使用您自己的应用程序获取数据。拥有将调试器附加到运行进程的权限足以在任何时间点停止应用程序的执行,并检查RAM中的(解密)数据。有关此主题的更多信息,请参见SO问题

顺便说一句:无论您选择什么数据库引擎,这都可以用来回答问题的最后一部分