C++ Qt跨平台在SQLite数据库中存储数据的安全方法?

C++ Qt跨平台在SQLite数据库中存储数据的安全方法?,c++,qt,C++,Qt,我正试图找出一种最安全的方法,将我的应用程序的聊天记录存储在客户端计算机上。所谓安全,我的意思是允许我的应用程序实际读/写SQLite数据库。客户机范围包括Windows、OS X和Linux用户。因此,我需要在每个平台上找到一种方法来确定允许在何处创建用于存储消息历史记录的SQLite数据库 我在过去遇到的问题是,例如,当人们使用终端客户端(例如Citrix)时,用户几乎不允许写入任何目录。该驱动器通常是共享网络驱动器 一些想法: 在我的安装程序中包含一个空的database.db,其中包含预

我正试图找出一种最安全的方法,将我的应用程序的聊天记录存储在客户端计算机上。所谓安全,我的意思是允许我的应用程序实际读/写SQLite数据库。客户机范围包括Windows、OS X和Linux用户。因此,我需要在每个平台上找到一种方法来确定允许在何处创建用于存储消息历史记录的SQLite数据库

我在过去遇到的问题是,例如,当人们使用终端客户端(例如Citrix)时,用户几乎不允许写入任何目录。该驱动器通常是共享网络驱动器

一些想法:

在我的安装程序中包含一个空的database.db,其中包含预构建的表。并将数据库存储在我的可执行文件旁边。然而,我几乎可以肯定的是,并不是所有的客户端都可以在这里读/写,例如,没有管理员权限的Windows用户

使用QStandardPath::writableLocation并在第一次运行时创建数据库

找到users home dir并在第一次运行时创建数据库


对于这个问题是否有一个很好的解决方案有什么想法吗?

QSettings似乎有一种方法可以确定一个在XML模式下使用的可写位置。也许看看那里是怎么做的,我会做2到3次。两者都是合理的解决方案,应该在linux、osx或windows上运行。