## 功能场景

在系统运行中，存储损坏、存储空间不足、文件系统权限、系统掉电等都可能导致数据库发生故障。比如联系人应用的数据库损坏，导致用户的联系人丢失；日历应用的数据库损坏，导致丢失日历提醒等。为此数据管理提供了数据可靠性与安全性相关的解决方案和能力保障。

* 备份、恢复功能：重要业务应用（如银行）数据丢失，出现严重异常场景，可以通过备份恢复数据库，保证关键数据不丢失。
* 数据库加密功能：当数据库中存储如认证凭据、财务数据等高敏感信息时，可对数据库进行加密，提高数据库安全性。
* 数据库分类分级：数据跨设备同步时，数据管理基于数据安全标签和设备安全等级进行访问控制，保证数据安全。
* E类加密数据库：应用存储用户敏感信息时应使用E类数据库，在锁屏的情况下，满足一定条件时，会触发密钥的销毁。此时E类数据库不可操作。当锁屏解锁后，密钥会恢复，E类数据库恢复正常读写操作。保证敏感信息的安全性。

另外，备份数据库存储在应用的沙箱内，当存储空间不足时，可以选择删除本地的数据库备份，释放空间。

## 基本概念

在进行数据可靠性与安全性相关功能的开发前，请先了解以下相关概念。

### 数据库备份与恢复

* **数据库备份**：指对当前数据库的数据库文件进行完整备份。HarmonyOS数据库备份针对数据库全量文件进行完整的备份。

  在进行数据库备份的时候，无需关闭数据库，直接调用对应的数据库备份接口就能完成对数据库文件的备份。
* **数据库恢复**：从指定的备份文件恢复到当前数据库文件。恢复完成时，当前数据库数据恢复到和指定备份文件一致。

### 数据库加密

数据库加密是对整个数据库文件的加密，可以增强数据库的安全性，有效保护数据库内容。

### 数据库分类分级

分布式数据管理对数据实施分类分级保护，提供基于数据安全标签以及设备安全等级的访问控制机制。

数据安全标签和设备安全等级越高，加密措施和访问控制措施越严格，数据安全性越高。

## 运作机制

### 数据库备份与恢复机制

数据库在备份时，会将当前的数据库备份在指定的文件中，后续对数据库的操作不会影响备份的数据库文件。只有当恢复指定数据库文件时，才会将备份的数据库文件覆盖当前数据库，实现数据的回滚。

* 键值型数据库备份路径：/data/service/el1(el2)/public/database/...{appId}/kvdb/backup/...{storeId}
* 关系型数据库备份路径：/data/app/el1(el2)/100/database/...{bundlename}/rdb

### 数据库加密机制

HarmonyOS数据库加密时，应用开发者无需传入密钥，只需要设置数据库加密的状态即可。系统会自动帮助开发者将数据库加密，使用[huks通用密钥库系统](https://developer.huawei.com/consumer/cn/doc/harmonyos-references/js-apis-huks)，完成数据库密钥的生成及加密保护。

## 约束限制

* 数据库加密的密钥一年自动更换一次。
* 键值型数据库最多可以备份5份。
* 键值型数据库的自动备份需要在熄屏且充电的状态下进行。