Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/extjs/3.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
Java 使用sqlite数据库_Java_Database_Swing_Sqlite_Client - Fatal编程技术网

Java 使用sqlite数据库

Java 使用sqlite数据库,java,database,swing,sqlite,client,Java,Database,Swing,Sqlite,Client,我正在开发一个应用程序,用户可以在线或离线。我希望用户输入的数据与中央数据库同步 该应用程序正在运行,并使用web服务更新中央数据库中的数据 我认为SQLite是一种解决方案,但我担心安全性。每个客户机系统中的关注点将有多个用户,每个用户都有自己的特定数据。 SQLite支持这个吗 在这种情况下,SQLite还有其他替代方案吗 我有Oracle 10g作为我的中央数据库。SQLite的角色是一个本地数据库,在用户联机之前存储数据 编辑::我在这里担心SQLite文件的安全性。通过我的初步分析,我

我正在开发一个应用程序,用户可以在线或离线。我希望用户输入的数据与中央数据库同步

该应用程序正在运行,并使用web服务更新中央数据库中的数据

我认为SQLite是一种解决方案,但我担心安全性。每个客户机系统中的关注点将有多个用户,每个用户都有自己的特定数据。 SQLite支持这个吗

在这种情况下,SQLite还有其他替代方案吗

我有Oracle 10g作为我的中央数据库。SQLite的角色是一个本地数据库,在用户联机之前存储数据

编辑::我在这里担心SQLite文件的安全性。通过我的初步分析,我发现在访问sqlite文件时并没有像身份验证这样的特性。
希望我现在明白了。

SQLite不支持每用户身份验证(您可以使用密码,但对整个数据库文件也是如此)。每用户身份验证无论如何都不会有效,因为对数据库文件具有读取权限的用户可以直接读取该文件。您可以对数据进行加密,但必须将解密密钥和算法存储在可执行文件中,用户可以在其中访问它

当您希望保护每个用户的本地数据时,我建议将此责任委托给操作系统。只需在当前用户的私有用户目录中为每个用户存储一个单独的数据库文件(%appdata%在windows上,~/在unix上)。只要用户没有管理员/root权限,操作系统就应该阻止他们访问彼此用户目录中的数据


当然,只有当应用程序的每个用户在操作系统上都有一个单独的帐户时,这才起作用。如果不是这样,您仍然可以为存储在公共位置的每个用户使用单独的数据库,但可以使用从每个用户的密码派生的密钥对每个数据库文件进行加密。

您的问题还不清楚。您是在询问SQLite作为将通过web更新的本地数据库,还是在询问web服务器上使用的数据库?如果是前者,那么每个用户拥有自己的SQLite DB文件是完全合理的,因此它与文件系统一样安全?一个相关的问题是