You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何让.NET 7 MAUI安卓应用的SQLite数据库仅自身可读?

MAUI安卓端SQLite数据库仅自身可访问的配置方法

1. 把数据库放在应用私有目录里

安卓系统中,应用的私有内部存储目录(比如/data/data/[你的应用包名]/files)下的文件,默认只有本应用能读写,其他应用和普通用户都无法直接访问。在MAUI里直接用FileSystem.AppDataDirectory就能拿到这个路径,别自己硬编码路径。

修改你的数据库初始化代码:

// 替换原有的"some path"
string dbPath = Path.Combine(FileSystem.AppDataDirectory, "your_db_name.db");
Database = new SQLiteAsyncConnection(dbPath, Constants.OpenFlags);

2. 不要申请不必要的外部存储权限

如果你的应用不需要访问外部SD卡的文件,就别在Platforms/Android/AndroidManifest.xml里添加READ_EXTERNAL_STORAGE或WRITE_EXTERNAL_STORAGE权限——一旦使用外部存储,数据库文件就可能被其他应用或用户通过文件管理器找到,完全失去私密性。

3. 可选:调整SQLite打开标志

你当前使用的SharedCache是允许多线程共享缓存,要是你的应用没用到多线程共享数据库的场景,可以把这个标志去掉,虽然不影响文件访问权限,但能简化配置:

public const SQLite.SQLiteOpenFlags OpenFlags =
    SQLite.SQLiteOpenFlags.ReadWrite |
    SQLite.SQLiteOpenFlags.Create;

4. 敏感数据额外加密(可选)

如果存储的是账号、密码这类敏感内容,光靠系统权限还不够,可以给数据库加密码。用SQLite-net配合SQLCipher扩展即可,初始化时添加密码:

// 带密码的数据库连接
Database = new SQLiteAsyncConnection(dbPath, Constants.OpenFlags, password: "你的安全密码");

内容的提问来源于stack exchange,提问作者Thomas Carlton

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.06.21 19:27:37