CN116897351A - 安全性数据处理方法和装置 - Google Patents
安全性数据处理方法和装置 Download PDFInfo
- Publication number
- CN116897351A CN116897351A CN202180095205.0A CN202180095205A CN116897351A CN 116897351 A CN116897351 A CN 116897351A CN 202180095205 A CN202180095205 A CN 202180095205A CN 116897351 A CN116897351 A CN 116897351A
- Authority
- CN
- China
- Prior art keywords
- file
- security data
- update
- security
- electronic device
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Pending
Links
- 238000003672 processing method Methods 0.000 title description 3
- 238000000034 method Methods 0.000 claims abstract description 127
- 238000012545 processing Methods 0.000 claims abstract description 81
- 230000008569 process Effects 0.000 claims abstract description 30
- 238000004891 communication Methods 0.000 description 47
- 230000006870 function Effects 0.000 description 27
- 230000008859 change Effects 0.000 description 15
- 238000012217 deletion Methods 0.000 description 12
- 230000037430 deletion Effects 0.000 description 12
- 238000010586 diagram Methods 0.000 description 10
- 238000005516 engineering process Methods 0.000 description 10
- 238000013507 mapping Methods 0.000 description 9
- 230000000717 retained effect Effects 0.000 description 7
- 238000013528 artificial neural network Methods 0.000 description 6
- 238000013473 artificial intelligence Methods 0.000 description 5
- 238000004590 computer program Methods 0.000 description 5
- 238000012986 modification Methods 0.000 description 4
- 230000004048 modification Effects 0.000 description 4
- 230000002085 persistent effect Effects 0.000 description 4
- 230000000670 limiting effect Effects 0.000 description 3
- 230000004044 response Effects 0.000 description 3
- 238000007792 addition Methods 0.000 description 2
- 238000004364 calculation method Methods 0.000 description 2
- 238000013527 convolutional neural network Methods 0.000 description 2
- 238000010801 machine learning Methods 0.000 description 2
- 230000001537 neural effect Effects 0.000 description 2
- 230000000306 recurrent effect Effects 0.000 description 2
- 230000001133 acceleration Effects 0.000 description 1
- 230000005540 biological transmission Effects 0.000 description 1
- 238000004422 calculation algorithm Methods 0.000 description 1
- 230000015556 catabolic process Effects 0.000 description 1
- 230000010267 cellular communication Effects 0.000 description 1
- 230000001413 cellular effect Effects 0.000 description 1
- 239000004020 conductor Substances 0.000 description 1
- 238000006731 degradation reaction Methods 0.000 description 1
- 238000011161 development Methods 0.000 description 1
- 230000000694 effects Effects 0.000 description 1
- 230000007613 environmental effect Effects 0.000 description 1
- 239000000446 fuel Substances 0.000 description 1
- 230000010354 integration Effects 0.000 description 1
- 230000002452 interceptive effect Effects 0.000 description 1
- 230000003155 kinesthetic effect Effects 0.000 description 1
- 238000010295 mobile communication Methods 0.000 description 1
- 230000036961 partial effect Effects 0.000 description 1
- 230000002093 peripheral effect Effects 0.000 description 1
- 230000002829 reductive effect Effects 0.000 description 1
- 230000002787 reinforcement Effects 0.000 description 1
- 150000003839 salts Chemical class 0.000 description 1
- 230000005236 sound signal Effects 0.000 description 1
- 239000000758 substrate Substances 0.000 description 1
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F21/00—Security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
- G06F21/60—Protecting data
- G06F21/62—Protecting access to data via a platform, e.g. using keys or access control rules
- G06F21/6218—Protecting access to data via a platform, e.g. using keys or access control rules to a system of files or objects, e.g. local or distributed file system or database
- G06F21/6227—Protecting access to data via a platform, e.g. using keys or access control rules to a system of files or objects, e.g. local or distributed file system or database where protection concerns the structure of data, e.g. records, types, queries
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F21/00—Security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
- G06F21/60—Protecting data
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F16/00—Information retrieval; Database structures therefor; File system structures therefor
- G06F16/10—File systems; File servers
- G06F16/16—File or folder operations, e.g. details of user interfaces specifically adapted to file systems
- G06F16/162—Delete operations
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F16/00—Information retrieval; Database structures therefor; File system structures therefor
- G06F16/20—Information retrieval; Database structures therefor; File system structures therefor of structured data, e.g. relational data
- G06F16/23—Updating
- G06F16/235—Update request formulation
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F16/00—Information retrieval; Database structures therefor; File system structures therefor
- G06F16/20—Information retrieval; Database structures therefor; File system structures therefor of structured data, e.g. relational data
- G06F16/23—Updating
- G06F16/2365—Ensuring data consistency and integrity
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F16/00—Information retrieval; Database structures therefor; File system structures therefor
- G06F16/20—Information retrieval; Database structures therefor; File system structures therefor of structured data, e.g. relational data
- G06F16/25—Integrating or interfacing systems involving database management systems
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F16/00—Information retrieval; Database structures therefor; File system structures therefor
- G06F16/20—Information retrieval; Database structures therefor; File system structures therefor of structured data, e.g. relational data
- G06F16/25—Integrating or interfacing systems involving database management systems
- G06F16/252—Integrating or interfacing systems involving database management systems between a Database Management System and a front-end application
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F21/00—Security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
- G06F21/30—Authentication, i.e. establishing the identity or authorisation of security principals
- G06F21/44—Program or device authentication
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F21/00—Security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
- G06F21/50—Monitoring users, programs or devices to maintain the integrity of platforms, e.g. of processors, firmware or operating systems
- G06F21/55—Detecting local intrusion or implementing counter-measures
- G06F21/56—Computer malware detection or handling, e.g. anti-virus arrangements
- G06F21/562—Static detection
- G06F21/565—Static detection by checking file integrity
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- Databases & Information Systems (AREA)
- General Physics & Mathematics (AREA)
- Computer Security & Cryptography (AREA)
- Data Mining & Analysis (AREA)
- Computer Hardware Design (AREA)
- Software Systems (AREA)
- General Health & Medical Sciences (AREA)
- Health & Medical Sciences (AREA)
- Bioethics (AREA)
- Mathematical Physics (AREA)
- Human Computer Interaction (AREA)
- Virology (AREA)
- Information Retrieval, Db Structures And Fs Structures Therefor (AREA)
- Communication Control (AREA)
Abstract
本发明的各种实施例提供一种方法和装置,装置包括:显示器;存储器;以及可操作地连接到显示器或存储器的处理器,其中,处理器被配置为:接收用于更新在应用数据中被设置了安全属性的安全性数据的请求;识别与安全性数据相对应的附加文件的状态;如果识别的附加文件的状态无效,则确定第一安全性数据处理过程,或者如果识别的附加文件状态有效,则确定第二安全性数据处理过程;以及根据确定的安全性数据处理过程更新安全性数据。各种实施例是可能的。
Description
技术领域
本公开的各个实施例涉及安全性数据处理方法和装置。
背景技术
随着数字技术的发展,移动通信终端、个人数字助理(PDA)、电子笔记本、智能手机、平板个人电脑(PC)或可穿戴装置等各种类型的电子装置被广泛使用。为了支持和增加这些电子装置的功能,电子装置的硬件组件和/或软件组件正在不断改进。
另一方面,对于应用的正常操作,电子装置需要确保存储在数据库中的应用数据的事务的原子性和数据完整性,以始终维护数据库中的正常数据。事务可以包括更新操作,诸如修改、删除或添加应用(或应用数据)。原子性可以意味着与一个事务相关的所有操作的结果全部被反映在数据库中或全部都不反映在数据库中。数据库可以使用日志技术确保数据的完整性和事务的原子性。日志技术可以是除了存储应用数据的数据库文件之外还产生和利用预写日志(WAL)文件或回滚日志文件的技术。
发明内容
技术问题
在WAL日志模式中,当数据库文件被更新时,在更新数据库文件之前,与更新相关的处理结果可以被存储在WAL文件中。例如,当数据库文件的特定页被更新时,与特定页相关的更新处理结果可以以被附接到WAL文件的形式被记录。由于更新处理结果以附接到WAL文件的形式被记录,因此请求删除的数据可能仍然被保留在数据库文件或WAL文件中。
在各种实施例中,可以公开一种当存储在数据库文件中的数据中的安全性数据被更新(例如,修改或删除)时,用于处理更新的安全性数据而不保留在数据库文件或WAL文件中的方法和装置。
技术方案
根据各种实施例的电子装置可以包括:显示器;存储器;以及处理器,被配置为可操作地连接到显示器或存储器,其中,处理器被配置为:接收用于更新其中安全属性被配置在应用数据中的安全性数据的请求;识别与安全性数据相对应的附加文件的状态;当识别的附加文件的状态无效时确定第一安全性数据处理过程,或者当识别的附加文件状态有效时确定第二安全性数据处理过程;以及根据确定的安全性数据处理过程更新安全性数据。
根据本公开的各种实施例的电子装置的操作方法可以包括:接收用于更新其中安全属性被配置在应用数据中的安全性数据的请求;识别与安全性数据相对应的附加文件的状态;当识别的附加文件的状态无效时确定第一安全性数据处理过程,并且当识别的附加文件状态有效时确定第二安全性数据处理过程;以及根据确定的安全性数据处理过程更新安全性数据。
有益效果
根据各种实施例,可以通过处理更新的安全性数据而不保留在数据库文件或WAL文件中解决安全问题。
根据各种实施例,通过基于与更新的安全性数据相对应的WAL文件的状态不同地应用处理过程,可以安全地删除与安全性数据相对应的数据库文件或WAL文档中的页。
根据各种实施例,通过从电子装置完全删除与安全性数据相对应的数据库文件或WAL文件中的页,可以防止之后通过取证技术恢复删除的安全性数据。
根据各种实施例,通过配置整个数据库或指定区域(例如,表或列)的安全属性、使用SQL语句在特定范围内配置安全属性、利用应用编程接口(API)语句执行安全写入事务或配置电子装置的存储器或存储装置的安全属性,可以在更新数据时删除配置有安全属性的数据。
根据各种实施例,可以减少由于删除与安全性数据相对应的数据库文件或WAL文件或与电子装置的存储器使用相关的低效逻辑而导致的性能恶化。
附图说明
图1是示出根据各种实施例的网络环境中的电子装置的框图。
图2示出根据各种实施例的电子装置的程序框图。
图3是示出根据各种实施例的电子装置的操作方法的流程图。
图4是示出根据各种实施例的在电子装置中执行第一安全性数据处理过程的方法的流程图。
图5是示出根据各种实施例的电子装置的数据库结构的图。
图6是示出根据各种实施例的在电子装置中执行第二安全性数据处理过程的方法的流程图。
图7A和图7B是示出根据各种实施例的数据库文件和WAL文件的示例的图。
图8是示出根据各种实施例的在电子装置中执行第三安全性数据处理过程的方法的流程图。
图9A和图9B是示出根据各种实施例的在电子装置中配置安全性数据的方法的流程图。
图10是示出根据各种实施例的电子装置的另一操作方法的流程图。
图11是示出根据各种实施例的在电子装置的应用层中配置安全性数据的方法的流程图。
具体实施方式
图1是示出根据各种实施例的网络环境100中的电子装置101的框图。
参照图1,网络环境100中的电子装置101可经由第一网络198(例如,短距离无线通信网络)与电子装置102进行通信,或者经由第二网络199(例如,长距离无线通信网络)与电子装置104或服务器108中的至少一个进行通信。根据实施例,电子装置101可经由服务器108与电子装置104进行通信。根据实施例,电子装置101可包括处理器120、存储器130、输入模块150、声音输出模块155、显示模块160、音频模块170、传感器模块176、接口177、连接端178、触觉模块179、相机模块180、电力管理模块188、电池189、通信模块190、用户识别模块(SIM)196或天线模块197。在一些实施例中,可从电子装置101中省略上述部件中的至少一个(例如,图1连接端178),或者可将一个或更多个其它部件添加到电子装置101中。在一些实施例中,可将上述部件中的一些部件(例如,传感器模块176、相机模块180或天线模块197)实现为单个集成部件(例如,显示模块160)11。
处理器120可运行例如软件(例如,程序140)来控制电子装置101的与处理器120连接的至少一个其它部件(例如,硬件部件或软件部件),并可执行各种数据处理或计算。根据一个实施例,作为所述数据处理或计算的至少部分,处理器120可将从另一部件(例如,传感器模块176或通信模块190)接收到的命令或数据存储到易失性存储器132中,对存储在易失性存储器132中的命令或数据进行处理,并将结果数据存储在非易失性存储器134中。根据实施例,处理器120可包括主处理器121(例如,中央处理器(CPU)或应用处理器(AP))或者与主处理器121在操作上独立的或者相结合的辅助处理器123(例如,图形处理单元(GPU)、神经处理单元(NPU)、图像信号处理器(ISP)、传感器中枢处理器或通信处理器(CP))。例如,当电子装置101包括主处理器121和辅助处理器123时,辅助处理器123可被适配为比主处理器121耗电更少,或者被适配为专用于特定的功能。可将辅助处理器123实现为与主处理器121分离,或者实现为主处理器121的部分。
在主处理器121处于未激活(例如,睡眠)状态时,辅助处理器123(而非主处理器121)可控制与电子装置1011的部件之中的至少一个部件(例如,显示模块160、传感器模块176或通信模块190)相关的功能或状态中的至少一些,或者在主处理器121处于激活状态(例如,运行应用)时,辅助处理器123可与主处理器121一起来控制与电子装置101的部件之中的至少一个部件(例如,显示模块160、传感器模块176或通信模块190)相关的功能或状态中的至少一些。根据实施例,可将辅助处理器123(例如,图像信号处理器或通信处理器)实现为在功能上与辅助处理器123相关的另一部件(例如,相机模块180或通信模块190)的部分。根据实施例,辅助处理器123(例如,神经处理单元)可包括专用于人工智能模型处理的硬件结构。可通过机器学习来生成人工智能模型。例如,可通过人工智能被执行之处的电子装置101或经由单独的服务器(例如,服务器108)来执行这样的学习。学习算法可包括但不限于例如监督学习、无监督学习、半监督学习或强化学习。人工智能模型可包括多个人工神经网络层。人工神经网络可以是深度神经网络(DNN)、卷积神经网络(CNN)、循环神经网络(RNN)、受限玻尔兹曼机(RBM)、深度置信网络(DBN)、双向循环深度神经网络(BRDNN)或深度Q网络或其两个或更多个的组合,但不限于此。另外地或可选地,人工智能模型可包括除了硬件结构以外的软件结构。
存储器130可存储由电子装置101的至少一个部件(例如,处理器120或传感器模块176)使用的各种数据。所述各种数据可包括例如软件(例如,程序140)以及针对与其相关的命令的输入数据或输出数据。存储器130可包括易失性存储器132或非易失性存储器134。
可将程序140作为软件存储在存储器130中,并且程序140可包括例如操作系统(OS)142、中间件144或应用146。
输入模块150可从电子装置101的外部(例如,用户)接收将由电子装置101的其它部件(例如,处理器120)使用的命令或数据。输入模块150可包括例如麦克风、鼠标、键盘、键(例如,按钮)或数字笔(例如,手写笔)。
声音输出模块155可将声音信号输出到电子装置101的外部。声音输出模块155可包括例如扬声器或接收器。扬声器可用于诸如播放多媒体或播放唱片的通用目的。接收器可用于接收呼入呼叫。根据实施例,可将接收器实现为与扬声器分离,或实现为扬声器的部分。
显示模块160可向电子装置101的外部(例如,用户)视觉地提供信息。显示装置160可包括例如显示器、全息装置或投影仪以及用于控制显示器、全息装置和投影仪中的相应一个的控制电路。根据实施例,显示模块160可包括被适配为检测触摸的触摸传感器或被适配为测量由触摸引起的力的强度的压力传感器。
音频模块170可将声音转换为电信号,反之亦可。根据实施例,音频模块170可经由输入模块150获得声音,或者经由声音输出模块155或与电子装置101直接(例如,有线地)连接或无线连接的外部电子装置(例如,电子装置102)的耳机输出声音。
传感器模块176可检测电子装置101的操作状态(例如,功率或温度)或电子装置101外部的环境状态(例如,用户的状态),然后产生与检测到的状态相应的电信号或数据值。根据实施例,传感器模块176可包括例如手势传感器、陀螺仪传感器、大气压力传感器、磁性传感器、加速度传感器、握持传感器、接近传感器、颜色传感器、红外(IR)传感器、生物特征传感器、温度传感器、湿度传感器或照度传感器。
接口177可支持将用来使电子装置101与外部电子装置(例如,电子装置102)直接(例如,有线地)或无线连接的一个或更多个特定协议。根据实施例,接口177可包括例如高清晰度多媒体接口(HDMI)、通用串行总线(USB)接口、安全数字(SD)卡接口或音频接口。
连接端178可包括连接器,其中,电子装置101可经由所述连接器与外部电子装置(例如,电子装置102)物理连接。根据实施例,连接端178可包括例如HDMI连接器、USB连接器、SD卡连接器或音频连接器(例如,耳机连接器)。
触觉模块179可将电信号转换为可被用户经由他的触觉或动觉识别的机械刺激(例如,振动或运动)或电刺激。根据实施例,触觉模块179可包括例如电机、压电元件或电刺激器。
相机模块180可捕获静止图像或运动图像。根据实施例,相机模块180可包括一个或更多个透镜、图像传感器、图像信号处理器或闪光灯。
电力管理模块188可管理对电子装置101的供电。根据实施例,可将电力管理模块188实现为例如电力管理集成电路(PMIC)的至少部分。
电池189可对电子装置101的至少一个部件供电。根据实施例,电池189可包括例如不可再充电的原电池、可再充电的蓄电池、或燃料电池。
通信模块190可支持在电子装置101与外部电子装置(例如,电子装置102、电子装置104或服务器108)之间建立直接(例如,有线)通信信道或无线通信信道,并经由建立的通信信道执行通信。通信模块190可包括能够与处理器120(例如,应用处理器(AP))独立操作的一个或更多个通信处理器,并支持直接(例如,有线)通信或无线通信。根据实施例,通信模块190可包括无线通信模块192(例如,蜂窝通信模块、短距离无线通信模块或全球导航卫星系统(GNSS)通信模块)或有线通信模块194(例如,局域网(LAN)通信模块或电力线通信(PLC)模块)。这些通信模块中的相应一个可经由第一网络198(例如,短距离通信网络,诸如蓝牙、无线保真(Wi-Fi)直连或红外数据协会(IrDA))或第二网络199(例如,长距离通信网络,诸如传统蜂窝网络、5G网络、下一代通信网络、互联网或计算机网络(例如,LAN或广域网(WAN)))与外部电子装置进行通信。可将这些各种类型的通信模块实现为单个部件(例如,单个芯片),或可将这些各种类型的通信模块实现为彼此分离的多个部件(例如,多个芯片)。无线通信模块192可使用存储在用户识别模块196中的用户信息(例如,国际移动用户识别码(IMSI))识别并验证通信网络(诸如第一网络198或第二网络199)中的电子装置101。
无线通信模块192可支持在4G网络之后的5G网络以及下一代通信技术(例如新无线电(NR)接入技术)。NR接入技术可支持增强型移动宽带(eMBB)、大规模机器类型通信(mMTC)或超可靠低延时通信(URLLC)。无线通信模块192可支持高频带(例如,毫米波带)以实现例如高数据传输速率。无线通信模块192可支持用于确保高频带上的性能的各种技术,诸如例如波束成形、大规模多输入多输出(大规模MIMO)、全维MIMO(FD-MIMO)、阵列天线、模拟波束成形或大规模天线。无线通信模块192可支持在电子装置101、外部电子装置(例如,电子装置104)或网络系统(例如,第二网络199)中指定的各种要求。根据实施例,无线通信模块192可支持用于实现eMBB的峰值数据速率(例如,20Gbps或更大)、用于实现mMTC的丢失重写(例如,164dB或更小)或者用于实现URLLC的U平面延迟(例如,对于下行链路(DL)和上行链路(UL)中的每一个为0.5ms或更小,或者1ms或更小的往返)。
天线模块197可将信号或电力发送到电子装置101的外部(例如,外部电子装置)或者从电子装置101的外部(例如,外部电子装置)接收信号或电力。根据实施例,天线模块197可包括天线,所述天线包括辐射元件,所述辐射元件由形成在基底(例如,印刷电路板(PCB))中或形成在基底上的导电材料或导电图案构成。根据实施例,天线模块197可包括多个天线(例如,阵列天线)。在这种情况下,可由例如通信模块190(例如,无线通信模块192)从所述多个天线中选择适合于在通信网络(诸如第一网络198或第二网络199)中使用的通信方案的至少一个天线。随后可经由所选择的至少一个天线在通信模块190和外部电子装置之间发送或接收信号或电力。根据实施例,除了辐射元件之外的另外的组件(例如,射频集成电路(RFIC))可附加地形成为天线模块197的一部分。
根据各种实施例,天线模块197可形成毫米波天线模块。根据实施例,毫米波天线模块可包括印刷电路板、射频集成电路(RFIC)和多个天线(例如,阵列天线),其中,RFIC设置在印刷电路板的第一表面(例如,底表面)上,或与第一表面相邻并且能够支持指定的高频带(例如,毫米波带),所述多个天线设置在印刷电路板的第二表面(例如,顶部表面或侧表面)上,或与第二表面相邻并且能够发送或接收指定高频带的信号。
上述部件中的至少一些可经由外设间通信方案(例如,总线、通用输入输出(GPIO)、串行外设接口(SPI)或移动工业处理器接口(MIPI))相互连接并在它们之间通信地传送信号(例如,命令或数据)。
根据实施例,可经由与第二网络199连接的服务器108在电子装置101和外部电子装置104之间发送或接收命令或数据。电子装置102或电子装置104中的每一个可以是与电子装置101相同类型的装置,或者是与电子装置101不同类型的装置。根据实施例,将在电子装置101运行的全部操作或一些操作可在外部电子装置102、外部电子装置104或服务器108中的一个或更多个运行。例如,如果电子装置101应该自动执行功能或服务或者应该响应于来自用户或另一装置的请求执行功能或服务,则电子装置101可请求所述一个或更多个外部电子装置执行所述功能或服务中的至少部分,而不是运行所述功能或服务,或者电子装置101除了运行所述功能或服务以外,还可请求所述一个或更多个外部电子装置执行所述功能或服务中的至少部分。接收到所述请求的所述一个或更多个外部电子装置可执行所述功能或服务中的所请求的所述至少部分,或者执行与所述请求相关的另外功能或另外服务,并将执行的结果传送到电子装置101。电子装置101可在对所述结果进行进一步处理的情况下或者在不对所述结果进行进一步处理的情况下将所述结果提供作为对所述请求的至少部分答复。为此,可使用例如云计算技术、分布式计算技术、移动边缘计算(MEC)技术或客户机-服务器计算技术。电子装置101可使用例如分布式计算或移动边缘计算来提供超低延迟服务。在另一实施例中,外部电子装置104可包括物联网(IoT)装置。服务器108可以是使用机器学习和/或神经网络的智能服务器。根据实施例,外部电子装置104或服务器108可被包括在第二网络199中。电子装置101可应用于基于5G通信技术或IoT相关技术的智能服务(例如,智能家居、智能城市、智能汽车或医疗保健)。
图2示出根据各种实施例的电子装置的程序框图。
参考图2,根据各种实施例的电子装置(例如,图1的电子装置101)可以包括控制与电子装置101相关的资源的操作系统(OS)、中间件和包括在OS上执行的各种应用(例如,应用210)的程序140。OS可以是,例如,Android、iOS、Windows、Symbian、Tizen或Bada。程序140的至少一部分可以被预加载在电子装置101上或从外部电子装置(例如,电子装置102或104或服务器108)下载。
程序140可以包括应用210、数据库框架220、数据库管理器230、文件系统240或数据库250。应用210可以包括安装在电子装置101上的各种类型的应用(例如,电话呼叫、文本消息、警报和联系人)。数据库框架220可以提供应用210通常需要的功能,或者可以向应用210提供各种功能,使得应用210可以有效地使用电子装置101内部的有限系统资源。数据库管理器230可以向应用210提供各种功能,使得应用210可以使用从电子装置101的一个或多个资源提供的功能或信息。文件系统240可以是指管理存储在OS中的辅助存储装置或数据库250(例如,图1的存储器130)中的文件的系统。数据库250可以包括数据库文件251、索引文件253或附加文件255。
根据各种实施例,数据库250可以包括关系数据库(RDB,关系数据库)、NoSQL(不仅仅是SQLl)数据库、分层数据库和/或网络数据库。例如,数据库250可以包括Oracle、MySQL(Oracle)、MS-SQL(Microsoft)、DB2、Infomix(IBM)、Maria DB(Sun Microsystems)、Derby(Apache)和/或SQLite(开源)。
根据各种实施例,电子装置101可以管理存储在基于文件系统240(例如,非易失性存储器134)的存储器中的数据。例如,电子装置101可以使用文件系统240管理存储数据库文件251的数据(例如,文件)的位置。文件系统240可以被包括在OS142中。电子装置101可以将存储器130的易失性存储器132和/或非易失性存储器134的至少一部分配置为存储装置。存储装置可以对应于保存与电子装置101有关的数据的存储区域。在下文中,存储器可以是指易失性存储器132和/或非易失性存储器134的与存储区域不同的部分。例如,存储器可以对应于用于处理与电子装置101相关的数据的工作区域。
根据各种实施例的电子装置101可以基于数据库文件251管理与应用146相关的数据。数据库文件251是有组织数据集合,并且可以是指基于指定的列表或数据结构存储在存储器中的数据集合。安装在电子装置101中的应用和服务可以基于数据库文件251执行。在这种情况下,当电子装置101正在操作时,多个不同应用和服务对数据库文件251的访问可能频繁发生。可以提供存储在电子装置101的存储器中的多个数据库文件251。
根据各种实施例,日志技术可以被应用于数据库250,以确保事务的数据完整性和原子性。日志技术可以是除了存储应用数据的数据库文件251之外还产生和利用附加文件255的技术。数据库文件251可以存储应用数据,并且可以包括数据库报头、数据库模式、数据库内容或数据结构。附加文件255可以包括预写日志(WAL)文件或回滚日志(rollbackjournal)文件。例如,在WAL文件中,当更新应用数据时,可以在更新数据库文件251之前存储与更新有关的处理结果。当满足WAL文件的更新条件时,存储在WAL文件中的内容可以反映在数据库文件中。例如,在回滚日志文件中,当更新应用数据时,可以在更新数据库文件之前存储原始应用数据。回滚日志文件可以是应用数据的备份。WAL文件和回滚日志文件可能仅在存储的数据方面不同,并且在更新数据库文件的方法方面可能相似。
根据各种实施例,当更新(例如,修改、删除或添加)应用数据时,数据库管理器230可以以帧的形式将与更新相关的内容添加到WAL文件。事务是与数据库文件251的数据相关的操作的逻辑工作单元(LUW),并且可以是应用146和数据库文件251之间的交互单元。与数据库文件251的数据相关的操作可以意味着,例如,基于诸如OPEN、SELECT、INSERT、DELETE、UPDATE或CLOSE的结构化查询语言(SQL)访问数据库文件251。在实施例中,一个事务可以是指与数据库文件251中的数据相关的一个或多个操作和/或查询的集合。在实施例中,事务操作可以包括读取事务(或操作)、添加事务、修改(或更改)事务或删除事务。
索引文件253可以是存储数据库文件251的各部分的映射信息和存储在附加文件255中的结果的文件(例如,WAL索引文件)。在实施例中,映射信息可以指示存储在附加文件255中的结果应该包括在数据库文件251的哪个部分中。例如,映射信息可以是通过将存储在附加文件255中的改变的数据与数据库文件251的与数据相关的部分的位置相匹配而获得的信息。存储在数据库文件251中的数据可以基于例如具有指定大小(例如,512字节和64MB之间的大小)的页单元管理。附加文件255可以基于具有基于页的大小(例如,通过组合页的大小和帧头的大小而获得的大小)的帧单元存储基于事务改变的数据库文件251的数据。存储在索引文件253中的映射信息可以指示附加文件255的哪个帧对应于数据库文件251的哪个页。
在实施例中,电子装置101可以基于数据库文件251的页的标识符(例如,页码)检索包括在索引文件253的映射信息中的哈希表,从而识别与具有标识符的页相对应的附加文件255的部分(例如,帧)。例如,电子装置101可以识别与指定页码相对应的附加文件255的帧号。索引文件253可以包括与用于防止和/或控制一个或多个事务对数据库文件251的并发访问的更新权限(例如,文件锁定)相关的区域。更新权限可以用于防止当多个事务同时访问数据库文件251时可能发生的错误。
根据各种实施例的电子装置(例如,图1的电子装置)可以包括显示器(例如,图1的显示模块160)、存储器(例如,图1的存储器130)以及处理器(例如,图1的处理器120),所述处理器被配置为可操作地连接到显示器或存储器,其中,处理器可以被配置为:接收用于更新安全性数据的请求,其中安全属性被配置在应用数据中;识别与安全性数据相对应的附加文件的状态;当识别的附加文件的状态无效时确定第一安全性数据处理过程,或者当识别的附加文件状态有效时确定第二安全性数据处理过程;以及根据确定的安全性数据处理过程更新安全性数据。
第一安全性数据处理过程可以被配置为:获取存储在存储器中的数据库文件的更新权限;在没有附加文件的情况下更新与安全性数据相对应的数据库文件;以及当更新完成时返回更新权限。
第二安全性数据处理过程可以被配置为:确定存储在存储器中的数据库文件的页结构是否改变;当页结构没有改变时,确定与安全性数据相对应的页是否存在于附加文件中;当与安全性数据相对应的页没有存在于附加文件中时,获取数据库文件的更新权限;在没有附加文件的情况下更新数据库文件以对应于安全性数据;以及当更新完成时返回更新权限。
处理器可以被配置为当第一安全性数据处理过程或第二安全性数据处理过程失败时执行第三安全性数据处理过程。
第三安全性数据处理过程可以被配置为:将与安全性数据相对应的帧添加到附加文件中;产生用于处理安全性数据的线程;基于在安全性数据中配置的生命周期更新数据库文件以对应于安全性数据;以及当更新完成时使与安全性数据相对应的附加文件无效。
处理器可以被配置为:当生命周期被配置在安全性数据中时,等待生命周期的更新,在生命周期逝去之后确定是否满足附加文件的更新条件,并且当满足更新条件时获取数据库文件的更新权限,以尝试更新数据库文件以对应于安全性数据;以及当生命周期未被配置在安全性数据中时,确定是否满足附加文件的更新条件,并且当不满足更新条件时,获取数据库文件的更新权限,以尝试更新数据库文件以对应于安全性数据。
处理器可以被配置为:当尝试更新失败时,确定是否满足配置条件;当满足配置条件时,等待更新直到获取更新权限;以及获取更新权限以更新数据库文件以对应于安全性数据。
处理器可以被配置为通过截断与安全性数据相对应的附加文件的大小或者通过重写附加文件的帧使附加文件无效。
处理器可以被配置为执行基于存储器的存储空间截断附加文件的大小的操作或者重写附加文件的帧的操作中的一个。
处理器可以被配置为:当存储器的存储空间等于或大于预定大小时执行重写操作;以及当存储器的存储空间小于预定大小时执行截断操作。
处理器可以被配置为当存储在存储器中的数据库文件被打开时,确定安全属性是否被配置在用于数据库文件的存储装置中;以及当安全属性被配置在存储装置中时,将安全属性应用于整个打开的数据库文件。
处理器可以被配置为当安全属性没有被配置在存储装置中时确定安全属性是否被配置在存储器中;以及当安全属性被配置在存储器时读取在存储器中配置的值以执行与安全性数据相对应的更新,并且存储装置的安全属性可以具有被维护直到与数据库文件相对应的应用被删除为止的特性,并且存储器的安全属性可以具有被维护以与数据库文件的连接相对应的特性。
可以在整个数据库文件和数据库文件的表或列中的至少一个中配置安全属性。
图3是示出根据各种实施例的电子装置的操作方法的流程图300。
参考图3,在操作301中,根据各种实施例的电子装置(例如,图1的电子装置101)的处理器(例如,图1的处理器120)可以接收用于更新安全性数据的请求。安全性数据可以是指在应用数据中配置了安全属性的数据,并且可以是指当被删除时需要安全删除以使得删除的安全性数据不存在于存储装置中的数据。当整个数据库文件251或期望区域(例如,图2的数据库文件251的指定表或列)由应用开发人员配置时或者当安全性数据被更新时,安全属性可以被配置为仅对指定事务执行安全删除功能。为了提供安全删除功能,可能需要能够检测安全性数据中是否存在变化的功能。安全属性可以被配置在存储器(例如,图1的易失性存储器132)或存储装置(例如图1的非易失性存储器134)中。处理器120可以通过分析数据库文件251的哪个表或哪个列中的安全性数据被改变,或者通过分析用于改变或删除安全性数据的查询,识别更新安全性数据的请求。
下面将参考图9A和图9B详细描述配置应用数据的安全性的方法。更新是指事务,事务可以包括读取、添加、删除或修改应用数据的操作。更新请求可以由用户或者根据电子装置101的配置来发生。在读取或添加安全性数据的操作(或事务)中,先前的安全性数据可以不保留在数据库文件251或WAL文件(例如,图2的附加文件255)中。在修改(或改变)或删除安全性数据的操作中,先前的安全性数据可以保留在数据库文件251或WAL文件中。
根据本公开,可以处理先前的安全性数据,使得先前的安全性数据不保留在数据库文件或WAL文件中,并且操作301可以包括修改或删除安全性数据的操作(或事务)。对于更新除安全性数据之外的应用数据的请求,处理器120可以执行现有的WAL模式(例如,当满足WAL文件的更新条件时,将与被请求更新的页相对应的帧添加到WAL文件并在数据库文件251中反映WAL文件内容的操作)。
在操作303中,处理器120可以识别与安全性数据相对应的WAL文件的状态。日志技术可以应用于电子装置101的存储器(例如,图1的存储器130)以确保事务的数据完整性和原子性。日志技术可以是生成并利用预写日志(WAL)文件或回滚日志文件作为除了存储应用数据的数据库文件之外的附加文件的技术。数据库文件(例如,图2的数据库文件251)可以存储应用数据,并且可以由数据库报头、数据库模式、数据库内容或数据结构组成。在图3中,作为示例描述了附加文件(例如,图2的附加文件255)是WAL文件的情况,但是本公开不受该描述的限制。例如,WAL文件可以包括WAL报头和至少一个WAL帧。WAL报头可以包括关于WAL文件的基本信息,并且可以包括例如标识号、文件格式版本、页大小、更新计数、帧错误检查和WAL报头错误检查中的至少一个。
根据各种实施例,标识号可以包括用于识别WAL文件的幻数。文件格式版本可以具有固定值,作为WAL文件的格式版本。数据库文件251可以被划分和管理为特定大小,并且被划分为特定大小的块可以被解释为页。页大小可以对应于存储在数据库文件251中的页。更新计数可以意味着存储在WAL文件中的帧被反映在数据库文件中的次数。将存储在WAL文件中的帧反映到数据库文件251可以被称为更新或检查点(checkpoint)。每当存储在WAL文件中的帧被反映在数据库文件251中时,更新计数可以增加(例如,+1)。帧错误检查可以意味着当初始化WAL文件时产生的任意值(例如,salt值)。当包括在帧错误检查中的值与包括在WAL帧中的报头错误检查中包括的值相同时,WAL帧可以被识别为正常帧。WAL报头错误检查可以包括用于确定WAL报头中是否存在错误的值(例如校验和)。在WAL报头中包括的信息是帮助理解本公开的示例,但不限制本公开。
WAL帧可以包括存储在数据库文件251中的应用数据的改变(例如,修改、删除、添加)。WAL帧可以由WAL帧报头和页组成。WAL文件的帧可以被映射到存储在数据库文件251中的页,并且映射到WAL帧报头的页码可以被记录。例如,WAL帧可以包括WAL帧报头、页码、bCommit、报头错误检查、WAL帧错误检查或数据库页中的至少一个。页码可以是指有更改的页码。bCommit可以指示在提交帧的情况下的数据库文件251的大小,或者在其他帧的情况中可以被配置为0。报头错误检查可以存储与在WAL报头中包括的帧错误检查中包括的值相同的值。WAL帧错误检查可以包括用于确定WAL帧中是否存在错误的值(例如,校验和)。数据库页可以包括反映变化的页。WAL帧中包括的内容是帮助理解本公开的示例,但不限制本公开。
当发生对存储在存储器130中的数据库文件251的更新请求时,处理器120可以添加WAL文件的帧(例如,WAL帧)以对应于数据库文件251的更新页。例如,当请求与数据库文件251的一个页相对应的更新时,处理器120可以将包括更新页的编号的帧添加到WAL文件。可替换地,当请求与数据库文件251的两个页(例如,第一页和第三页)相对应的更新时,处理器120可以将包括两个不同更新页的编号的帧(例如,与第一页相对应的第一帧和与第三页相对应的第二帧)添加到WAL文件。
WAL文件的状态可以包括WAL文件有效或无效的状态。WAL文件有效的状态可以是指WAL文件的WAL报头有效且至少一个WAL帧被包括在WAL文件中的状态。WAL文件无效的状态可以包括以下中的至少一个:不存在WAL文件的状态、WAL文件大小为0的状态、WAL文件的WAL报头无效的状态(例如,零填充)或不存在有效WAL帧的状态。
在操作305中,处理器120可以基于WAL文件的状态确定不同的处理过程。例如,当WAL文件处于无效状态时,处理器120可以确定执行第一安全性数据处理过程,并且当WAL文件处于有效状态时,可以确定执行第二安全性数据处理过程。第一安全性数据处理过程可以获取数据库文件251的更新权限,在没有WAL文件的情况下更新数据库文件251,并当更新完成时返回更新权限。下面将参照图4详细描述第一安全性数据处理过程。
当数据库文件251的页结构没有改变并且要更新的页不存在于WAL文件中时,第二安全性数据处理过程可以获取数据库文件251中的更新权限,可以在没有WAL文件的情况下更新数据库文件251,并且可以当更新完成时返回更新权限。下面将参照图6详细描述第二安全性数据处理过程。处理器120可以根据WAL文件的状态确定执行第一安全处理过程或第二安全处理过程。
在操作307中,处理器120可以根据确定的处理过程更新安全性数据。处理器120可以根据第一安全处理过程或第二安全处理过程更新安全性数据。当处理器120不能执行第一安全性数据处理过程和第二安全性数据处理过程时,处理器120可以执行第三安全性数据处理过程。第三安全性数据处理过程可以将与更新的安全性数据相对应的帧添加到WAL文件,可以产生用于处理安全性数据的线程,可以在等待安全性数据生命周期之后尝试更新数据库文件251,并且可以当更新成功时使与更新的安全性数据对应的WAL文件无效。当更新失败时,第三安全性数据处理过程可以等待直到获取更新权限,可以基于WAL文件更新数据库文件251,然后可以使与更新的安全性数据相对应的WAL文件无效。
图4是示出根据各种实施例的在电子装置中执行第一安全性数据处理过程的方法的流程图400。图4详细示出了执行图3的操作307的操作。
参考图4,在操作401中,根据各种实施例的电子装置(例如,图1的电子装置101)的处理器(例如,图1的处理器120)可以尝试获取更新权限。当WAL文件的状态无效时,处理器120可以直接将与安全性数据相对应的更新应用于数据库文件(例如,图2的数据库文件251)而无需WAL文件。为了访问数据库文件251,可能需要更新权限。更新权限可以指被配置为防止一个或多个事务同时访问数据库文件(例如,图2的数据库文件251)的文件锁。
例如,事务可以包括读取事务(或操作)、添加事务、修改(或更改)事务或删除事务。当在执行读取事务的同时执行删除事务时,在数据库文件251中可能发生错误。为了防止数据库文件251中的错误,用于控制仅一个事务访问数据库文件251的权限可以被解释为更新权限。更新权限可以被包括在WAL索引文件(例如,图2的索引文件253)中。更新权限可以意味着具有与所有事务相对应的完全权限(例如,读取、添加、修改和删除)。
在操作403中,处理器120可以确定是否获取了更新权限。当更新安全性数据时,处理器120可以在获取更新权限之后更新安全性数据。处理器120可以在获取到更新权限时执行操作405,并且可以在没有获取到更新授权时执行图8的操作。图8的操作可以在不能执行第一安全性数据处理处理时被执行,并且可以是第三安全性数据处理过程。
当获取更新权限时,在操作405中,处理器120可以在没有WAL文件的情况下执行更新。日志技术(例如,WAL模式)可以被应用于数据库(例如,图2的数据库250)。在日志技术中,当发生应用数据更新时,在数据库文件251被更新之前,与对应更新相关的处理结果可以被存储在WAL文件中,并且当满足WAL文件的更新条件时,存储在WAL文件中的内容可以被反映在数据库文件251中。即使在存储在WAL文件中的内容被反映在数据库文件251中之后,存储在WAL文件中的内容也可以被保留而不被删除。当具有安全属性的应用数据(例如,安全性数据)被改变或删除时,第一安全性数据处理(或删除)过程可以包括能够防止安全性数据保留在WAL文件或数据库文件251中的安全删除功能。
根据各种实施例,当在WAL模式中发生与安全性数据相对应的写入事务(例如,修改或删除事务)时,处理器120可以在运行时中切换到原子写入模式,然后可以使用原子写入模式。原子写入模式可以是可以被用于提供闪存友好文件系统(F2FS)的电子装置101中的写入事务的技术。原子写入模式可以是在没有单独的WAL文件的情况下可以进行就地更新的模式。在WAL模式中,与对应更新相关的处理结果可以被存储在WAL文件中,但在原子写入模式中,在没有WAL文件的情况下更新的应用数据可以被直接反映在数据库文件251中。当存储在WAL文件中的内容对应于WAL模式中的更新条件时,内容可以被存储在数据库文件251中,并且对于安全性数据,处理器120可以在没有WAL文件的情况下直接将对应更新反映在数据库文件251中。
在操作407中,处理器120可以确定更新是否完成。处理器120可以在更新完成时执行操作407,并且可以在更新未完成时执行图8的操作。处理器120可能在没有WAL文件的情况下直接将更新反映在数据库文件251中,导致更新可能失败。当更新失败时,处理器120可以通过执行图8的操作执行第三安全性数据处理过程。
当更新完成时,在操作409中,处理器120可以返回更新权限。处理器120可以在更新时具有更新权限,并且在更新完成时返回更新权限。更新权限是访问数据库文件251的完全权限,并且可以在更新完成时返回。
图5是示出根据各种实施例的电子装置的数据库结构的图。
参考图5,根据各种实施例的电子装置(例如,IFG.1的电子装置101)的数据库可以包括数据库文件510(例如,图2的数据库文件251)、索引文件530(例如,图2的索引文件253)和WAL文件550(例如,图2中的附加文件255)。数据库文件510、索引文件530和WAL文件550可以基于文件系统(例如,图2的文件系统240),并且可以被存储在与非易失性存储器(例如,图1的非易失存储器134)的至少一部分相对应的存储装置中。数据库文件510可以包括至少一个页。与数据库文件510相关的多个文件中的每个文件的大小可以是例如4KB或更大,这是页的大小。多个文件中的每个文件的大小可以由文件系统240和/或数据库管理器(例如,图2的数据库管理器230)改变为不同于该页大小的值。
数据库文件510可以包括第一页512、第二页513、第三页514和第四页515。第一页512可以包括数据库文件510的报头511和数据库纲要(schema)。报头511可以包括表示数据库文件510的属性的多个参数。第二页513到第四页515的数据结构可以具有用于数据库文件510中的快速数据搜索的数据结构。
WAL文件550可以存储基于WAL模式中的事务而改变的数据。在WAL文件550中包括的数据可以以帧为单位进行区分。帧的大小可以对应于用于区分在数据库文件510中包括的数据和/或信息的页的大小和帧报头的大小的组合。WAL文件550可以包括报头551和多个帧(例如,第一帧552、第二帧553、第三帧554和第四帧555)。电子装置101可以基于WAL文件550的大小和/或包括在WAL文件中的帧的数量确定WAL文件的更新条件,并且可以在满足更新条件时将存储在WAL文件550中的帧反映到数据库文件510的页。
索引文件530可以用于识别存储在WAL文件550中的数据库文件510的改变的数据位于数据库文件510中的哪个部分或哪个位置。索引文件530可以包括更新权限(例如,文件锁)以防止对数据库文件510的并发访问。索引文件530可以包括将存储在WAL文件550中的帧与其在数据库文件510中的对应页相匹配的映射信息。电子装置101可以基于映射信息识别数据库文件510的第一页512与WAL文件550的第二帧553匹配。基于索引文件530,电子装置101可以识别第四页515对应于第三帧554,并且第三页514对应于第一帧552。
当电子装置101基于WAL文件550改变数据库文件510的数据时,可以使用映射信息。例如,电子装置101可以基于WAL文件550的第二帧553改变数据库文件510的第一页512,可以基于第三帧554改变数据文件510的第四页515,并且可以基于第一帧552改变数据文件510中的第三页514。
图6是示出根据各种实施例的在电子装置中执行第二安全性数据处理过程的方法的流程图600。图6详细示出了执行图3的操作307的操作。
参考图6,在操作601中,根据各种实施例的电子装置(例如,图1的电子装置101)的处理器(例如,图1的处理器120)可以确定数据库文件(例如,图2的数据库文件251)的页结构是否改变。当WAL文件的状态有效时,处理器120可以仅当满足指定条件时才将与安全性数据相对应的更新直接应用于数据库文件(例如,图2的数据库文件251)而无需WAL文件。指定条件可以包括数据库文件251的页结构没有改变且与安全性数据相对应的页不存在于WAL文件中的情况。当WAL文件的状态有效时,处理器120可以基于索引文件(例如,图5的索引文件530)确定是否满足指定条件。
根据各种实施例,数据库文件251可以以页为单位进行配置,并且每个页可以是B树的节点。B树是一种广泛用于数据库和文件系统的树型数据结构,并且可以是其中通过扩展二叉树一个节点可以具有的子节点的最大数量大于2的树型结构。当与B树的节点相对应的数据库文件251的页被修改时,B树的配置可以被改变。例如,当删除大量页时,为了平衡B树结构,可能发生树结构的变化。改变树结构的操作可能意味着再平衡操作。当树结构改变时,与B树的节点相对应的页的位置可以改变。由于与数据库文件251的页相对应的帧存在于WAL文件(例如,图5的WAL文件550)中,因此帧可以包括数据库文件251中的页结构。在数据库文件251的页结构改变的情况下,当处理器120对数据库文件251应用更新而没有WAL文件时,可能发生错误。
当数据库文件251的页结构改变时,处理器120可以执行图8的操作,并且当数据库文件250的页结构没有改变时,可以执行操作603。
当数据库文件251的页结构没有改变时,在操作603中,处理器120可以确定在WAL文件中是否存在更新页。更新页(或最新更新页)可以指与在图3的操作301中被请求更新的安全性数据相对应的页。WAL文件可以包括与一个页相对应的一个或多个帧。例如,在一个事务中产生与第一页相对应的第一帧之后,可以在另一事务中产生与第三页相对应的第二帧和与第一页相对应的第三帧。当WAL文件的帧被更新到数据库文件251时,可以反映最近存储的帧。
例如,当对于相同的第一页存在第一帧和第三帧时,处理器120可以在数据库文件251的第一页中反映第三帧。例如,当与更新页相对应的帧已经存在于WAL文件中时,最近的更新可以在没有WAL文件的情况下直接被反映在数据库文件251中,但是当随后满足WAL文件的更新条件时,可能出现已经存在于WAL文件中的帧被反映在数据库文件251中的问题。处理器120可以基于存储在索引文件530中的映射信息确定更新页是否存在于WAL文件中。
当更新页存在于WAL文件中时,处理器120可以执行图8的操作,并且当更新页不存在于WAL文件中时可以执行操作605。
尽管在图中示出首先执行操作601并且稍后执行操作603,但是可以首先执行操作603并且可以稍后执行操作601,或者操作601和603可以同时执行。这只是帮助理解本公开的示例,并不限制本公开。
当更新页不存在于WAL文件中时,在操作605中,处理器120可以尝试获取更新权限。更新权限可以是指被配置为防止一个或多个事务同时访问数据库文件(例如,图2的数据库文件251)的文件锁。更新权限可以被包括在WAL索引文件(例如,图2的索引文件253)中。更新权限可以意味着具有与所有事务(例如,读取、添加、修改和删除)相对应的完全权限。由于操作605与图4的操作401相同或相似,因此可以省略其详细描述。
在操作607中,处理器120可以确定是否获取更新权限。当更新安全性数据时,处理器120可以在获取更新权限之后更新安全性数据。处理器120可以在获取到更新权限时执行操作609,并且可以在没有获取到更新授权时执行图8的操作。图8的操作可以在不能执行第二安全性数据处理过程时执行,并且可以是第三安全性数据处理过程。由于操作607与图4的操作403相同或相似,因此可以省略其详细描述。
当获取更新权限时,在操作609中,处理器120可以在没有WAL文件的情况下执行更新。即使在存储在WAL文件中的内容被反映在数据库文件251中之后,存储在WAL文件中的内容也可以保留而不被删除。当具有安全属性的应用数据(例如,安全性数据)被改变或删除时,第二安全性数据处理(或删除)过程可以包括能够防止安全性数据保留在WAL文件或数据库文件251中的安全删除功能。在WAL模式下,当存储在WAL文件中的内容满足更新条件时,内容可以被反映在数据库文件251中,并且对于安全性数据,处理器120可以在没有WAL文件的情况下直接在数据库文件251中反映更新。由于操作609与图4的操作405相同或相似,因此可以省略其详细描述。
在操作611中,处理器120可以确定更新是否完成。处理器120可以在更新完成时执行操作613,并且可以在更新未完成时执行图8的操作。处理器120可以在没有WAL文件的情况下直接将更新反映在数据库文件251中,导致更新失败。当更新失败时,处理器120可以通过执行图8的操作执行第三安全性数据处理过程。由于操作611与图4的操作407相同或相似,因此可以省略其详细描述。
当更新完成时,在操作613中,处理器120可以返回更新权限。处理器120可以在执行更新时具有更新权限,并且可以在更新完成时返回更新权限。更新权限是访问数据库文件251的完全权限,并且可以在更新完成时返回。由于操作613与图4的操作409相同或相似,因此可以省略其详细描述。
图7A和图7B是示出根据各种实施例的数据库文件和WAL文件的示例的图。
图7A是示出根据各种实施例的数据库文件的页结构的图。
参考图7A,根据各种实施例的电子装置(例如,图1的电子装置101)的数据库文件700(例如,图2的数据库文件251)可以包括一个或多个页,并且每个页可以是B树的节点。例如,数据库文件700可以包括第一页711,可以包括第二页712和第三页713作为第一页711的子节点,可以包括第四页714和第五页715作为第二页712的子节点,并且可以包括第六页716作为第三页713的子节点。被请求更新的安全性数据可以对应于第五页715。在WAL文件(例如,图5的WAL文件550)有效且与第五页715相对应的帧不存在于WAL文件中的同时数据库文件700的页结构没有改变时,电子装置101可以执行第二安全性数据处理过程(例如,图6的流程图600)。
根据各种实施例,数据库文件700的树结构可以被改变。例如,树结构被改变的数据库文件730可以包括第一页731,可以包括第四页734和第六页736作为第一页731的子节点,可以包括第二页732作为第四页732的子结点,并且可以包括第五页735和第三页733作为第六页736的子节点。被请求更新的安全性数据可以对应于第五页735。当在WAL文件(例如,图5的WAL文件550)有效的同时数据库文件730的页结构改变时,电子装置101可以不执行第二安全性数据处理过程。
图7B是示出根据各种实施例的WAL文件的内部结构的图。
参考图7B,数据库文件710可以包括第一页711、第二页712、第三页713、第四页714和第五页715。图7B的数据库文件710可以具有图7A的数据库文件700的页结构。被请求更新的安全性数据可以对应于第五页715。例如,当顺序请求数据库文件710的第三页713和第二页712的更新时,可以在WAL文件750有效的状态下添加WAL报头751、与第三页712相对应的第一帧752和与第二页714相对应的第二帧755。第一帧752可以包括WAL帧报头753和对应于第三页713的改变754。第二帧755可以包括WAL帧报头756和对应于第二页712的改变757。由于在WAL文件750有效的同时数据库文件710的页结构没有改变,并且与被请求更新的第五页715相对应的帧不存在于WAL文件750中,因此电子装置101可以执行第二安全性数据处理过程。
根据各种实施例,当顺序请求数据库文件710的第三页713和第五页715的更新时,WAL报头751、对应于第三页723的第一帧752和对应于第五页714的第二帧755可以在WAL文件770有效的同时被添加到WAL文件770。第一帧752可以包括WAL帧报头753和对应于第三页713的改变754。第二帧755可以包括WAL帧报头771和对应于第五页715的改变772。尽管在WAL文件750有效的同时数据库文件710的页结构没有改变,当与被请求更新的第五页715相对应的帧(例如,第二帧755)存在于WAL文件750中时,但是电子装置101可能不执行第二安全性数据处理过程。
图8是示出根据各种实施例的在电子装置中执行第三安全性数据处理过程的方法的流程图800。图8详细示出了执行图3的操作307的操作。
参考图8,在操作801中,根据各种实施例的电子装置(例如,图1的电子装置101)的处理器(例如,图1的处理器120)可以在WAL文件中添加与安全性数据相对应的帧。当不执行第一安全性数据处理过程(例如,图4的流程图400)和第二安全性数据处理过程(如,图6的流程图600)二者时,为了删除与安全性数据相对应的WAL文件(例如,图7B中的WAL文件770),可能需要执行根据WAL文件的更新条件将存储在WAL文件中的帧反映到数据库文件(例如,图7B的数据库文件710)的操作(例如,检查点操作)。当第一安全性数据处理过程和第二安全性数据处理过程失败时,处理器120可以根据传统的日志技术将与安全性数据相对应的帧添加到WAL文件中。例如,被请求更新的安全性数据可以对应于数据库文件710的第五页(例如,图7B的第五页715)。处理器120可以将与第五页715相对应的帧添加到WAL文件。
在操作803中,处理器120可以产生用于处理安全性数据的线程。当请求更新(例如,事务发生)时,处理器120可以产生与请求的更新相对应的线程。处理器120可以产生除与请求的更新相对应的线程之外的单独线程。产生的线程可以是在后台操作的线程。
在操作805中,处理器120可以确定是否为安全性数据配置了生命周期。与WAL模式操作相比,用于删除安全性数据的逻辑可能导致额外的开销。为了减少开销,处理器120可以配置生命周期,使得在特定时间段内删除安全性数据而无需立即删除安全性数据。可以在存储装置或存储器中配置生命周期。当数据库文件251的连接终止时,在存储器中配置的值可以被删除,诸如在易失性存储器(例如,图1的易失性存储器132)中。
生命周期可以由应用开发人员进行配置。可替换地,应用层(例如,应用程序)可以根据框架的提供以各种方式配置生命周期。使用应用编程接口(API)或SQL语句,可以在数据库文件251、数据库250的指定表和数据库250的指定列中配置生命周期。可以通过使用API语句的安全写入事务执行或使用SQL语句的安全写入事务执行来配置生命周期。
当生命周期被配置在安全性数据中时,处理器120可以执行操作807,并且当生命周期没有被配置在安全性数据中时,可以执行操作809。
当生命周期被配置在安全性数据中时,在操作807中,处理器120可以等待生命周期。当安全性数据在短时间段内被重复更新时,由于重复执行检查点操作,所以可能需要额外的处理。处理器120可以等待整个生命周期,以便不重复执行检查点操作。
在操作809中,处理器120可以尝试在数据库文件710中反映(例如,检查点操作)WAL文件的内容。当生命周期被配置时,处理器120可以在生命周期已经逝去之后确定是否满足WAL文件的更新条件,并且可以获取数据库文件的更新权限,以在满足更新条件时尝试执行检查点操作。当生命周期没有被配置时,处理器120可以确定WAL文件的更新条件是否被满足,并且在更新条件被满足时可以获取数据库文件的更新权限,以尝试执行检查点操作。
WAL文件的更新条件可以是WAL文件的大小对应于预定大小,或者在WAL文件中包括的帧的数量对应于预定数量。由于每个帧的大小是有限的,因此当帧的数量对应于预定数量时,可以解释为WAL文件的大小对应于预定大小。为了在没有故障的情况下执行检查点操作,可能需要等待,直到所有当前操作的事务(例如,读取、添加、修改和删除)终止并且获取更新权限。在操作809中尝试的检查点操作可能由于读取事务的发生而失败。
在操作811中,处理器120可以确定更新是否成功。当处理器120在所有事务终止之后尝试执行检查点操作时,更新可以成功。处理器120可以在更新成功时执行操作819,并且在更新失败时执行操作813。
在操作813中,处理器120可以确定是否满足配置条件。配置条件可以包括基于生命周期配置的次数或计数(例如,3次、5次或10次)。例如,处理器120可以尝试在两倍的生命周期内执行检查点操作,并且当两倍的生命周期已经逝去时,可以确定满足配置条件。当尝试执行检查点操作的次数被计数并且计数次数超过预定次数时,处理器120可以确定满足配置条件。处理器120可以在满足配置条件时执行操作815,并且可以在不满足配置条件时返回到操作809。当不满足配置条件时,处理器120可以返回到操作809,并且可以重复尝试执行检查点操作预定次数。
当满足配置条件时,在操作815中,处理器120可以等待直到获取更新权限为止。为了在没有故障的情况下执行检查点操作,可能需要等待,直到所有当前操作的事务被终止并更新权限被获取为止。
在操作817中,处理器120可以获取更新权限以基于WAL文件770更新数据库文件710。操作817可以是获取更新权限并执行检查点操作,并且操作809可以是尝试执行检查点运算,而不管是否获取了更新权限。处理器120可以将存储在WAL文件770中的帧反映到数据库文件710。例如,处理器120可以将存储在WAL文件770中的第一帧752反映到数据库文件710的第三页713,并且可以将存储在WAL文件770中的第二帧755反映到数据库文件710的第五页715。
在操作819中,处理器120可以使与安全性数据相对应的WAL文件无效。使WAL文件无效的操作可以对应于在成功执行检查点操作之后删除与安全性数据相对应的WAL文件。使WAL文件无效的操作可以包括将WAL文件的大小截断为0的操作或者用0重写与安全性数据相对应的WAL文件的帧的操作。处理器120可以基于电子装置101的存储器(例如,图1的存储器130)的存储空间执行截断操作和重写操作中的一个。截断操作可以将WAL文件的大小截断为0,并且重写操作可以在保持WAL文件的大小的同时用0重写与安全性数据相对应的WAL文件中的文件。存储器130的存储空间可以指可以能够被存储在存储器130中的可用空间。处理器120可以在存储器130的存储空间大于或等于预定大小时执行重写操作,并且可以在存储器130的存储空间小于预定大小时执行截断操作。
图9A是示出根据各种实施例的在电子装置中配置安全性数据的方法的流程图900。
参考图9A,在操作901中,根据各种实施例的电子装置(例如,图1的电子装置101)的处理器(例如,图1的处理器120)可以打开数据库文件(例如,图2的数据库文件251)的连接。数据库文件251可能需要被打开以执行应用或更新(例如,读取、添加、修改或删除)应用数据。
在操作903中,处理器120可以确定是否在存储器中对打开的数据库文件251配置了安全属性。可以为整个数据库文件251、数据库文件251的指定表或数据库文件251中的指定列配置安全性。应用开发人员可以将安全属性分配给整个数据库文件251、数据库文件251的指定表或数据库文件251中的指定列。根据应用开发者配置的值,可以在存储器(例如,图1的易失性存储器132)中更新安全属性,或者可以将安全属性存储在存储装置(例如,图1的非易失性存储器134)中。
当在存储器中对打开的数据库文件251配置了安全性时,处理器120可以执行操作905,并且当在存储器中未对打开的数据文件251配置安全性时,可以执行操作907。
当在存储器中对打开的数据库文件251配置了安全性时,在操作905中,处理器120可以将安全属性应用于存储器中的整个打开的数据库文档251、配置区域(例如,数据库文档251的指定表或数据库文件251的指定列)。例如,处理器120可以将安全属性应用为要在数据库文件251的表1(例如,SQLiteDatabase.openDatabase(secure_data:table1))中配置。安全属性被可以存储在存储器中的指定位置中。存储安全属性的位置可以取决于安全属性被配置的类型(例如,整个数据库文件251、指定表或表的指定列)而变化。存储在存储器中的内容可以具有与打开数据库文件251时发生的数据库连接相同的生命周期。一旦对打开的数据库文件251的连接完成了安全性数据配置,就可以在使用对应连接的更改和删除操作中保证安全删除。
当存储器中没有对打开的数据库文件251配置安全性时,在操作907中,处理器120可以确定安全性是否被配置存储装置中。当在存储装置中配置了安全性时,处理器120可以执行操作907,并且当存储器中没有配置安全性时,可以执行图9B的操作。
当在存储器中配置了安全性时,在操作907中,处理器120可以将安全属性应用于在存储装置中打开的整个数据库文件251,或者存储装置的配置的区域(例如,数据库文件251的指定表或数据库文件251中的指定列)。当安全属性仅在存储器中被维护时,每当新发生到数据库文件251的连接时,可能需要再次配置安全属性。此外,在数据库文件251的不同连接中,安全属性的配置可能不同。当安全属性被存储在存储装置中时,在配置的安全属性中,对应配置可以在到数据库文件251的所有连接中共享,并且配置的安全属性可以保持有效,直到配置的目标(例如,应用)被删除为止。在存储装置中配置安全属性的方法可以包括在现有数据库文件(例如,数据库报头)的指定位置中写入对应信息的方法,或者在新文件中存储对应信息的方法。
图9B是示出根据各种实施例的在电子装置的应用层中配置安全性数据的方法的流程图950。
参考图9B,当安全属性没有被配置在存储装置或存储器中时,处理器120可以通过写入事务配置安全性数据。当安全属性没有被配置在存储装置或存储器中时,当前要执行的写入事务可以被配置为作为安全写入事务进行。写入事务可以对应于更新事务或删除事务。安全写入事务可以删除其安全性被配置的数据。应用层(或应用)可能能够配置安全属性的配置单元或配置定时(例如,生命周期)。配置单元可以包括整个数据库文件251、数据库文件251的指定表或数据库文件251中的指定列中的至少一个。
在操作961中,处理器120可以在数据库文件251中配置安全属性。处理器120可以在开始写入事务之前配置用于到数据库文件251的连接的安全属性。在通过API的写入事务或通过安全查询的写入事务的情况下,处理器120可以配置数据库文件251中的安全属性。
在操作963中,处理器120可以执行写入事务。当用户根据调用安全写入事务的API调用对应API时,应用层(或应用)可以执行安全删除功能。例如,处理器120可以使用诸如SQLiteDatabase.secure_delete(...)的API语句执行安全写入事务。在安全配置中,安全属性可以被应用于整个数据库文件251或配置区域(例如,数据库文件251的指定表{例如,SQLiteDatabase.setSecureData(“table name”)}或数据库文件251中的指定列)。
在通过安全查询的写入事务的情况下,处理器120可以向查询添加承诺的保留字。保留字可以是,例如,更新或删除。安全删除功能可以通过在配置的查询(例如,更新或删除)的承诺位置(例如,在查询之前或之后)插入与安全属性相关的配置值(例如,安全)构造结构化查询语言(SQL)来配置。可替换地,可以通过在与事务相关的最后位置插入与安全属性相关的语句(例如,通过安全事务)配置SQL来配置安全删除功能。例如,应用层(例如,应用)可以使用SQL语句在特定范围内配置安全属性(例如,在CREATE TABLE处添加SECURE_DATAContraint)。
在安全配置中,安全属性可以被应用于整个数据库文件251或配置区域(例如,数据库文件251的指定表或数据库文件251中的指定列)。例如,应用层(例如,应用)可以用“CREATE SECURE_DATA TABLE table1”配置数据库文件251的表1的安全性。应用可以用“CREATE TABLE table1(aSECURE_DATA TEXT...)”配置数据库文件251的列的安全性。应用层(例如,应用)可以使用诸如对于表1的SECURE_DATA DELETE data的SQL语句执行安全写入事务。对应的删除操作可以作为安全写入事务来执行。
在操作965中,处理器120可以配置为不使用安全性数据。例如,当写入事务完成时,处理器120可以取消安全属性配置。
图10是示出根据各种实施例的电子装置的另一操作方法的流程图1000。图10可以包括当附加文件(例如,图2的附加文件255)是回滚日志文件时的操作。
参考图10,在操作1001中,根据各种实施例的电子装置(例如,图1的电子装置101)的处理器(例如,图1的处理器120)可以接收用于更新安全性数据的请求。安全性数据可以是指应用数据中被配置了安全性的数据,并且可以被配置为当整个数据库文件251或期望区域(例如,图2的数据库文件251的指定表或列)由应用开发者配置时或者当安全性数据被更新时,仅对指定事务执行安全删除功能。更新是指事务,事务可以包括读取、添加、删除或修改应用数据的操作。更新请求可以包括修改或删除安全性数据的操作。
根据各种实施例,处理器120可以确定回滚日志模式是否是持久模式。持久模式可以是仅使为事务创建的回滚日志文件中的报头文件无效的模式。当只删除报头部分时,安全性数据可以保留在回滚日志文件中。当回滚日志模式是持久模式时,处理器120可以执行下面的操作1003至1007。当回滚日志模式不是持久模式时或者响应于除了安全性数据之外应用数据的更新请求,处理器120可以执行现有回滚日志模式的操作(例如,在更新数据库文件251之前将存储在数据库文件251中的应用数据备份到回滚日志文件并且在更新数据库文件251之后使回滚日志文件无效的操作)。
在操作1003中,处理器120可以基于更新请求在回滚日志文件(或附加文件)中备份原始应用数据。日志技术可以是除了存储应用数据的数据库文件(例如,图2的数据库文件251)之外还产生和利用回滚日志文件(例如,图2的附加文件255)的技术。当附加文件是回滚日志文件时,处理器120可以在更新数据库文件251之前将存储在数据库文件251中的应用数据备份到回滚日志文件。
在操作1005中,处理器120可以更新数据库文件251。更新数据库文件251可以是检查点操作,并且可以是指响应于更新请求反映数据库文件251中的改变。当附加文件是回滚日志文件时,每当请求更新时,处理器120可以更新数据库文件251。
在操作1007中,处理器120可以使与安全性数据相对应的回滚日志文件无效。使回滚日志文件无效的操作可以包括在检查点操作成功之后删除与安全性数据相对应的回滚日志文件。使回滚日志文件无效的操作可以包括将回滚日志文件的大小截断为0或者用0重写与安全性数据相对应的回滚日志文件。处理器120可以基于电子装置101的存储器(例如,图1的存储器130)的存储空间执行截断操作或重写操作中的一个。截断操作可以将回滚日志文件的大小截断为0,并且重写操作可以在保持回滚日志文件大小的同时用0重写与安全性数据相对应的回滚日志文件。存储器130的存储空间可以是指能够存储在存储器130中的可用空间。处理器120可以在存储器130的存储空间大于或等于预定大小时执行重写操作,并且可以在存储器的存储空间小于预定大小时执行截断操作。
图11是示出根据各种实施例的在电子装置的应用层中配置安全性数据的方法的流程图1110。
参考图11,在操作1101中,根据各种实施例的电子装置(例如,图1的电子装置101)的处理器(例如,图1的处理器120)可以确定对应事务是否是安全写入事务。安全写入事务可以删除为其配置安全性的数据。处理器120可以在对应事务是安全写入事务时执行操作1103,并且可以在对应事务不是安全写入事务时执行操作1105。
尽管在图中示出了首先执行操作1101并且稍后执行操作1105,但是操作1105可以在操作1101之前执行,或者操作1101和操作1105也可以同时执行。这仅仅是一个示例,并且本公开不受描述的限制。
当对应事务是安全写入事务时,在操作1103中,处理器120可以使用API语句或SQL语句执行安全写入事务。例如,应用层(例如,应用)可以使用诸如SQLiteDatabase.secure_delete(...)的API语句执行安全写入事务。可替换地,应用层可以使用诸如对于表1的SECURE_DATA DELETE data的SQL语句执行安全写入事务。
当对应事务不是安全写入事务时,在操作1105中,处理器120可以确定对应安全配置是否是通过API的安全配置。当对应安全配置是通过API的安全配置时,处理器120可以执行操作1107,并且当对应安全配置不是通过API的安全配置时执行操作1109。
当对应安全配置是通过API的安全配置时,在操作1107中,处理器120可以使用API在指定区域中配置安全性。例如,应用层(例如,应用)可以使用诸如SQLiteDatabase.setSecureData(“表名”)的API配置指定区域(例如,整个数据库文件251或数据库文件251的指定表或列)中的安全属性。
当对应安全配置不是通过API的安全配置时,在操作1109中,处理器120可以使用SQL语句配置指定区域中的安全。应用层(例如,应用)可以使用SQL语句配置指定区域(例如,整个数据库文件251或数据库文件251的指定表或列)中的安全属性。例如,应用层(例如,应用)可以在CREATE TABLE时间添加SECURE_DATA Contraint,可以在数据库文件251的指定表(例如,表1)中配置安全属性,诸如CREATE SECURE_DATA TABLE table1,或者可以在数据库文件251的指定列中配置安全属性,诸如CREATE TABLE table1(SECURE_DATATEXT...)。
根据各种实施例,处理器120可以以与图11中相同的方式配置生命周期。例如,应用层(例如,应用)可以根据框架的提供以各种方式配置生命周期。可以使用API或SQL语句在数据库文件251、数据库250的指定表和数据库250的指定列中配置生命周期。可以通过使用API语句的安全写入事务执行或使用SQL语句的安全写入事务执行配置生命周期。
根据各种实施例的电子装置(例如,图1的电子装置101)的操作方法可以包括:接收用于更新安全性数据的请求,其中在应用数据中配置了安全属性;识别与安全性数据相对应的附加文件的状态;当识别的附加文件的状态无效时确定第一安全性数据处理过程,并且当识别的附加文件的状态有效时确定第二安全性数据处理过程;以及根据确定的安全性数据处理过程更新安全性数据。
第一安全性数据处理过程可以包括获取存储在存储器中的数据库文件的更新权限,在没有附加文件的情况下更新与安全性数据相对应的数据库文件;以及当更新完成时返回更新权限。
第二安全性数据处理过程可以包括确定存储在存储器中的数据库文件的页结构是否改变,当页结构没有改变时确定与安全性数据相对应的页是否存在于附加文件中,当与安全性数据相对应的页没有存在于附加文件中时,获取数据库文件的更新权限,在没有附加文件的情况下更新数据库文件以对应于安全性数据,以及在更新完成时返回更新权限。
安全性数据的更新可以进一步包括当第一安全性数据处理过程或第二安全性数据处理过程失败时执行第三安全性数据处理过程。
第三安全性数据处理过程可以包括将与安全性数据相对应的帧添加到附加文件,产生用于处理安全性数据的线程,当在安全性数据中配置了生命周期时等待生命周期的更新,在生命周期逝去之后确定是否满足附加文件的更新条件,当满足更新条件时,获取数据库文件的更新权限以尝试更新数据库文件对应于安全性数据,当安全性数据中未配置生命周期时,确定是否满足附加文件的更新条件,当满足更新条件时,获取数据库文件的更新权限以尝试更新数据库文件以对应于安全性数据,并且当更新完成时,使与安全性数据相对应的附加文件无效。
无效可以包括基于存储器的存储空间截断与安全性数据相对应的附加文件的大小和重写附加文件的帧中的一个。
所述方法还可以包括:当存储在存储器中的数据库文件被打开时,确定是否在用于数据库文件的存储装置中配置了安全属性;当在存储装置中配置了安全属性时,将安全属性应用于整个打开的数据库文件,当在存储装置中没有配置安全属性时确定安全属性是否在存储器中;以及当在存储器中配置安全属性时,读取在存储器中配置的值以执行与安全性数据相对应的更新。存储装置的安全属性可以具有被维持直到与数据库文件相对应的应用被删除的特性,并且存储器的安全属性可以具有被维持以与数据库文件的连接相对应的特性。
根据各种实施例的电子装置可以是各种类型的电子装置之一。电子装置可包括例如便携式通信装置(例如,智能电话)、计算机装置、便携式多媒体装置、便携式医疗装置、相机、可穿戴装置或家用电器。根据本公开的实施例,电子装置不限于以上所述的那些电子装置。
应该理解的是,本公开的各种实施例以及其中使用的术语并不意图将在此阐述的技术特征限制于具体实施例,而是包括针对相应实施例的各种改变、等同形式或替换形式。对于附图的描述,相似的参考标号可用来指代相似或相关的元件。将理解的是,与术语相应的单数形式的名词可包括一个或更多个事物,除非相关上下文另有明确指示。如这里所使用的,诸如“A或B”、“A和B中的至少一个”、“A或B中的至少一个”、“A、B或C”、“A、B和C中的至少一个”以及“A、B或C中的至少一个”的短语中的每一个短语可包括在与所述多个短语中的相应一个短语中一起列举出的项的任意一项或所有可能组合。如这里所使用的,诸如“第1”和“第2”或者“第一”和“第二”的术语可用于将相应部件与另一部件进行简单区分,并且不在其它方面(例如,重要性或顺序)限制所述部件。将理解的是,在使用了术语“可操作地”或“通信地”的情况下或者在不使用术语“可操作地”或“通信地”的情况下,如果一元件(例如,第一元件)被称为“与另一元件(例如,第二元件)结合”、“结合到另一元件(例如,第二元件)”、“与另一元件(例如,第二元件)连接”或“连接到另一元件(例如,第二元件)”,则意味着所述一元件可与所述另一元件直接(例如,有线地)连接、与所述另一元件无线连接、或经由第三元件与所述另一元件连接。
如与本公开的各种实施例关联使用的,术语“模块”可包括以硬件、软件或固件实现的单元,并可与其他术语(例如,“逻辑”、“逻辑块”、“部分”或“电路”)可互换地使用。模块可以是被适配为执行一个或更多个功能的单个集成部件或者是该单个集成部件的最小单元或部分。例如,根据实施例,可以以专用集成电路(ASIC)的形式来实现模块。
可将在此阐述的各种实施例实现为包括存储在存储介质(例如,内部存储器136或外部存储器138)中的可由机器(例如,电子装置101)读取的一个或更多个指令的软件(例如,程序140)。例如,在处理器的控制下,所述机器(例如,电子装置101)的处理器(例如,处理器120)可在使用或无需使用一个或更多个其它部件的情况下调用存储在存储介质中的所述一个或更多个指令中的至少一个指令并运行所述至少一个指令。这使得所述机器能够操作用于根据所调用的至少一个指令执行至少一个功能。所述一个或更多个指令可包括由编译器产生的代码或能够由解释器运行的代码。可以以非暂时性存储介质的形式来提供机器可读存储介质。其中,术语“非暂时性”仅意味着所述存储介质是有形装置,并且不包括信号(例如,电磁波),但是该术语并不在数据被半永久性地存储在存储介质中与数据被临时存储在存储介质中之间进行区分。
根据实施例,可在计算机程序产品中包括和提供根据本公开的各种实施例的方法。计算机程序产品可作为产品在销售者和购买者之间进行交易。可以以机器可读存储介质(例如,紧凑盘只读存储器(CD-ROM))的形式来发布计算机程序产品,或者可经由应用商店(例如,Play StoreTM)在线发布(例如,下载或上传)计算机程序产品,或者可直接在两个用户装置(例如,智能电话)之间分发(例如,下载或上传)计算机程序产品。如果是在线发布的,则计算机程序产品中的至少部分可以是临时产生的,或者可将计算机程序产品中的至少部分至少临时存储在机器可读存储介质(诸如制造商的服务器、应用商店的服务器或转发服务器的存储器)中。
根据各种实施例,上述部件中的每个部件(例如,模块或程序)可包括单个实体或多个实体,并且多个实体中的一些实体可分离地设置在不同的部件中。根据各种实施例,可省略上述部件中的一个或更多个部件,或者可添加一个或更多个其它部件。可选择地或者另外地,可将多个部件(例如,模块或程序)集成为单个部件。在这种情况下,根据各种实施例,该集成部件可仍旧按照与所述多个部件中的相应一个部件在集成之前执行一个或更多个功能相同或相似的方式,执行所述多个部件中的每一个部件的所述一个或更多个功能。根据各种实施例,由模块、程序或另一部件所执行的操作可顺序地、并行地、重复地或以启发式方式来执行,或者所述操作中的一个或更多个操作可按照不同的顺序来运行或被省略,或者可添加一个或更多个其它操作。
说明书和附图中公开的本公开的各种实施例仅作为具体示例来呈现,以容易地解释本公开的技术内容并帮助理解本公开,而不旨在限制本公开的范围。因此,本公开的范围应当被解释为除了本文公开的实施例之外还包括基于本公开的技术思想导出的所有改变或修改。
Claims (15)
1.一种电子装置,包括:
显示器;
存储器;以及
处理器,被配置为可操作地连接到显示器或存储器,其中,处理器被配置为:
接收用于更新其中安全属性被配置在应用数据中的安全性数据的请求;
识别与安全性数据相对应的附加文件的状态;
当识别的附加文件的状态无效时确定第一安全性数据处理过程,或者当识别的附加文件状态有效时确定第二安全性数据处理过程;以及
根据确定的安全性数据处理过程更新安全性数据。
2.根据权利要求1所述的电子装置,其中,第一安全性数据处理过程被配置为:
获取存储在存储器中的数据库文件的更新权限;
在没有附加文件的情况下更新与安全性数据相对应的数据库文件;以及
当更新完成时返回更新权限。
3.根据权利要求1所述的电子装置,其中,第二安全性数据处理过程被配置为:
确定存储在存储器中的数据库文件的页结构是否改变;
当页结构没有改变时,确定与安全性数据相对应的页是否存在于附加文件中;
当与安全性数据相对应的页不存在于附加文件中时,获取数据库文件的更新权限;
在没有附加文件的情况下更新数据库文件以对应于安全性数据;以及
当更新完成时返回更新权限。
4.根据权利要求1所述的电子装置,其中,处理器被配置为当第一安全性数据处理过程或第二安全性数据处理过程失败时执行第三安全性数据处理过程。
5.根据权利要求4所述的电子装置,其中,第三安全性数据处理过程被配置为:
将与安全性数据相对应的帧添加到附加文件中;
产生用于处理安全性数据的线程;
基于在安全性数据中配置的生命周期来更新数据库文件以对应于安全性数据;以及
当更新完成时使与安全性数据相对应的附加文件无效。
6.根据权利要求5所述的电子装置,其中,处理器被配置为:
当生命周期被配置在安全性数据中时,等待生命周期的更新,在生命周期逝去之后确定是否满足附加文件的更新条件,当满足更新条件时获取数据库文件的更新权限,以尝试更新数据库文件以对应于安全性数据;以及
当生命周期没有被配置在安全性数据中时,确定是否满足附加文件的更新条件,并且当不满足更新条件时获取数据库文件的更新权限,以尝试更新数据库文件以对应于安全性数据。
7.根据权利要求6所述的电子装置,其中,处理器被配置为:
当尝试更新失败时,确定是否满足配置条件;
当满足配置条件时,等待更新直到获取更新权限;以及
获取更新权限以更新数据库文件以对应于安全性数据。
8.根据权利要求5所述的电子装置,其中,处理器被配置为通过截断与安全性数据相对应的附加文件的大小或者通过重写附加文件的帧使附加文件无效。
9.根据权利要求8所述的电子装置,其中,处理器被配置为执行基于存储器的存储空间截断附加文件的大小的操作或者重写附加文件的帧的操作中的一个。
10.根据权利要求9所述的电子装置,其中,处理器被配置为:
当存储器的存储空间等于或大于预定大小时执行重写操作;以及
当存储器的存储空间小于预定大小时执行截断操作。
11.根据权利要求1所述的电子装置,其中,处理器被配置为:
当存储在存储器中的数据库文件被打开时,确定安全属性是否被配置在用于数据库文件的存储装置中;以及
当安全属性被配置在存储装置中时,将安全属性应用于整个打开的数据库文件。
12.根据权利要求11所述的电子装置,其中,处理器被配置为:
当安全属性没有被配置在存储装置中时确定安全属性是否被配置在存储器中;以及
当安全属性被配置在存储器时读取在存储器中配置的值以执行与安全性数据相对应的更新,
其中,存储装置的安全属性具有被维护直到与数据库文件相对应的应用被删除为止的特性,
其中,存储器的安全属性具有被维护以与数据库文件的连接相对应的特性。
13.根据权利要求12所述的电子装置,其中,安全属性被配置在以下中的至少一个中:整个数据库文件和数据库文件的表或列。
14.一种电子装置的操作方法,所述方法包括:
接收用于更新其中安全属性被配置在应用数据中的安全性数据的请求;
识别与安全性数据相对应的附加文件的状态;
当识别的附加文件的状态无效时确定第一安全性数据处理过程,并且当识别的附加文件状态有效时确定第二安全性数据处理过程;以及
根据确定的安全性数据处理过程来更新安全性数据。
15.根据权利要求14所述的方法,其中,第一安全性数据处理过程包括:
获取存储在存储器中的数据库文件的更新权限;
在没有附加文件的情况下更新与安全性数据相对应的数据库文件;以及
当更新完成时返回更新权限,并且
其中,第二安全性数据处理过程包括:
确定存储在存储器中的数据库文件的页结构是否改变;
当页结构没有改变时,确定与安全性数据相对应的页是否存在于附加文件中;
当与安全性数据相对应的页没有存在于附加文件中时,获取数据库文件的更新权限;
在没有附加文件的情况下更新数据库文件以对应于安全性数据;以及
当更新完成时返回更新权限。
Applications Claiming Priority (3)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
KR10-2021-0029539 | 2021-03-05 | ||
KR1020210029539A KR20220125557A (ko) | 2021-03-05 | 2021-03-05 | 보안 데이터 처리 방법 및 장치 |
PCT/KR2021/019959 WO2022186460A1 (ko) | 2021-03-05 | 2021-12-27 | 보안 데이터 처리 방법 및 장치 |
Publications (1)
Publication Number | Publication Date |
---|---|
CN116897351A true CN116897351A (zh) | 2023-10-17 |
Family
ID=83155405
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202180095205.0A Pending CN116897351A (zh) | 2021-03-05 | 2021-12-27 | 安全性数据处理方法和装置 |
Country Status (5)
Country | Link |
---|---|
US (1) | US20230409733A1 (zh) |
EP (1) | EP4290398A4 (zh) |
KR (1) | KR20220125557A (zh) |
CN (1) | CN116897351A (zh) |
WO (1) | WO2022186460A1 (zh) |
Family Cites Families (6)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US8352448B2 (en) * | 2007-01-23 | 2013-01-08 | International Business Machines Corporation | Securely deleting data in a transactionally consistent manner |
KR101442489B1 (ko) * | 2013-12-16 | 2014-09-26 | 주식회사 시큐브 | 보안키를 이용한 스마트기기의 보안파일 접근 제어 장치 및 방법 |
CN106155832B (zh) * | 2015-03-30 | 2019-03-22 | Tcl集团股份有限公司 | 一种数据恢复的方法、装置及Android设备 |
KR20170019799A (ko) * | 2015-08-12 | 2017-02-22 | 삼성전자주식회사 | 파일 시스템을 제어하는 전자 장치 및 그 동작 방법 |
US20170083254A1 (en) * | 2015-09-19 | 2017-03-23 | Qualcomm Incorporated | Secure transaction management techniques |
US11487743B2 (en) * | 2019-07-23 | 2022-11-01 | Hewlett Packard Enterprise Development Lp | Updating subscriber nodes with replication logs that increase scalability |
-
2021
- 2021-03-05 KR KR1020210029539A patent/KR20220125557A/ko unknown
- 2021-12-27 WO PCT/KR2021/019959 patent/WO2022186460A1/ko active Application Filing
- 2021-12-27 EP EP21929322.2A patent/EP4290398A4/en active Pending
- 2021-12-27 CN CN202180095205.0A patent/CN116897351A/zh active Pending
-
2023
- 2023-08-24 US US18/455,224 patent/US20230409733A1/en active Pending
Also Published As
Publication number | Publication date |
---|---|
US20230409733A1 (en) | 2023-12-21 |
WO2022186460A1 (ko) | 2022-09-09 |
EP4290398A4 (en) | 2024-07-17 |
KR20220125557A (ko) | 2022-09-14 |
EP4290398A1 (en) | 2023-12-13 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US20200265010A1 (en) | Electronic device and method for managing database | |
EP3843356B1 (en) | Management method for model files, terminal device and computer-readable storage medium | |
CN116561137A (zh) | 事务处理方法、装置、计算机设备及存储介质 | |
EP4325363A1 (en) | Device for managing cache corruption, and operation method thereof | |
KR20210016913A (ko) | 데이터베이스의 데이터 유실을 방지하기 위한 전자 장치 및 전자 장치의 동작 방법 | |
US20230409733A1 (en) | Security data processing method and device | |
US20230153291A1 (en) | Electronic device for recovering database and method of operating the same | |
US11907166B2 (en) | Electronic device and method for updating database based on reserved space | |
US20230259487A1 (en) | Method for recovering database file in electronic device | |
EP4439364A1 (en) | Electronic device and database protection method thereof | |
US20230017732A1 (en) | Key packing for flash key value store operations | |
KR20240126779A (ko) | 전자 장치 및 그의 데이터 베이스 보호 방법 | |
KR20220102489A (ko) | 예약 공간에 기반한 데이터베이스 업데이트 방법 및 장치 | |
KR20230119966A (ko) | 전자 장치에서 데이터베이스 파일을 복구하는 방법 | |
EP4209910A1 (en) | Electronic device for managing journal file and operation method thereof | |
KR20230070986A (ko) | 데이터베이스를 복구하는 전자 장치 및 그 동작 방법 | |
EP4357928A1 (en) | Methods and system for efficient access to solid state drive | |
US12019906B2 (en) | Electronic device and method of electronic device operating file system using data compression and memory partition | |
US20230305999A1 (en) | Method for performing integrity check, and electronic device using same | |
US11868401B2 (en) | Electronic device and method for acquiring size of file or directory stored in file system | |
CN110442569B (zh) | 在键值固态设备中进行数据分析的装置和方法 | |
US20230024420A1 (en) | Methods and devices for file read latency reduction | |
KR20220153959A (ko) | 전자 장치 및 전자 장치의 파일 관리 방법 | |
CN118215910A (zh) | 用于管理高速缓冲存储器损失的装置及其运行方法 | |
KR20230109022A (ko) | 비휘발성 메모리에 기반하여 쓰기 원자성을 보장하는 전자 장치 및 그 동작 방법 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
PB01 | Publication | ||
PB01 | Publication | ||
SE01 | Entry into force of request for substantive examination | ||
SE01 | Entry into force of request for substantive examination |