CN109308286A - 一种基于文件存储的sql检索方法 - Google Patents
一种基于文件存储的sql检索方法 Download PDFInfo
- Publication number
- CN109308286A CN109308286A CN201811056988.8A CN201811056988A CN109308286A CN 109308286 A CN109308286 A CN 109308286A CN 201811056988 A CN201811056988 A CN 201811056988A CN 109308286 A CN109308286 A CN 109308286A
- Authority
- CN
- China
- Prior art keywords
- index
- sql
- field
- field value
- recompiled
- 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
Landscapes
- Information Retrieval, Db Structures And Fs Structures Therefor (AREA)
- Storage Device Security (AREA)
Abstract
本发明公开了一种基于文件存储的SQL检索方法,涉及数据检索领域。该方法是对数据加密的检索,首先将标准的SQL语句进行解析,对解析得到的字段进行重新编码,然后,对该编码过的字段创建编码索引,并按照编码索引将对应的字段内容插入到文件系统中,或从文件系统中查询字段内容,而字段内容本身可以为加密的字段,所以,本发明提供的这种方法打破了传统的检索思维,不再使用传统的加密字段创建索引,而是将字段内容重新编码后创建对应的编码索引,使得索引内容与字段内容无直接关系,保证了字段内容的安全性。
Description
技术领域
本发明涉及数据检索领域,尤其涉及一种基于文件存储的SQL检索方法。
背景技术
市场上对文件检索的工具比较多,但是,这类检索工具可以检索的文件内容大多数都是以明文形式存在于文件系统中。明文存放方式无疑是对拥有钥匙的用户(包括管理员,黑客)完全透明,管理员(内鬼)和黑客可以对数据进行下载及窜改,并抹掉操作日志,造成用户信息或用户重要信息的泄漏。
目前,文件检索比较流利之一的工具有elast icsearch,对插入的数据会做索引,查询的时候,根据索引检索文件,同时也支持SQL语句的检索,但都是以明文的方法进行检索。但是,这种检索方式,不能保证数据的安全性。
为了用户的重要信息不被泄漏及窜改,企业会对用户的重要信息做加密,例如用户的密码做md5加密。采用这种方式,虽然能够避免用户的信息泄露,但是,这些被加密的数据都不会用做检索条件去查询。
因此,目前,市场还没有以完全密文方式存储的文件,更没有以密文方式基于SQL的检索方式。
发明内容
本发明的目的在于提供一种基于文件存储的SQL检索方法,从而解决现有技术中存在的前述问题。
为了实现上述目的,本发明采用的技术方案如下:
一种基于文件存储的SQL检索方法,包括如下步骤:
S1,对标准SQL语句进行解析,得到SQL的关键字和字段值;
S2,对解析得到的SQL的字段值重新编码,得到重新编码的字段值;
S3,判断SQL的关键字,如果SQL的关键字为INSERT,则执行S4-S5,如果SQL的关键字为SELECT,则执行S6-S7;
S4,对重新编码的字段值创建编码索引;
S5,将重新编码的字段值加密后插入文件系统,并将文件命名为主键的编码
S6,对重新编码的字段值查询编码索引;
S7,在文件系统中查询文件名为主键编码的文件。
优选地,S2中,所述对解析得到的SQL的字段值重新编码,具体为,建立编码库,利用编码库对解析得到的SQL的字段值重新编码。通过编码库的方式则编码速度更快,升级编码库及动态加载编码库更方便。
优选地,S4中,所述创建编码索引,具体为:查找重新编码的字段值对应的索引类型,如果重新编码的字段值没有定义索引或索引类型不支持,则忽略该重新编码的字段值,否则,创建重新编码的字段值对应类型的编码索引。
优选地,所述索引类型,包括:字符串索引、数值索引、日期索引、统计索引、日期统计索引和外健索引。
优选地,所述字符串索引按照如下方法创建:对字符串进行分拆单个字符,对每一个字符单独创建编码索引,以便支持模糊查询;其它类型的索引按照如下方法创建:直接对内容索引,不进行分拆,不支持模糊查询,只支持精确查询;创建索引的值为文件名,所述文件名为定义表结构中的主键,所述主键为利用编码库编码过的主键。
优选地,S6中,所述查询编码索引,具体为:查找重新编码的字段对应的索引类型,如果字段没有建立对应的索引,则不支持查询,如果有,则通过字段索引类型去对应的索引库里查询。
优选地,所述查询包括主键查询、模糊查询和/或范围查询,其中,主键查询为直接通过编码查询文件系统;模糊查询为需要通过编码查询多个索引,然后把查询结果进行合并,通过文件系统返回用户。
本发明的有益效果是:本发明实施例提供的基于文件存储的SQL检索方法,该方法是对数据加密的检索,首先将标准的SQL语句进行解析,对解析得到的字段进行重新编码,然后,对该编码过的字段创建编码索引,并按照编码索引将对应的字段内容插入到文件系统中,或从文件系统中查询字段内容,而字段内容本身可以为加密的字段,所以,本发明提供的这种方法打破了传统的检索思维,不再使用传统的加密字段创建索引,而是将字段内容重新编码后创建对应的编码索引,使得索引内容与字段内容无直接关系,保证了字段内容的安全性。
附图说明
图1是本发明提供的基于文件存储的SQL检索方法的流程示意图。
具体实施方式
为了使本发明的目的、技术方案及优点更加清楚明白,以下结合附图,对本发明进行进一步详细说明。应当理解,此处所描述的具体实施方式仅仅用以解释本发明,并不用于限定本发明。
如图1所示,本发明实施例提供了一种基于文件存储的SQL检索方法,包括如下步骤:
S1,对标准SQL语句进行解析,得到SQL的关键字和字段值;
S2,对解析得到的SQL的字段值重新编码,得到重新编码的字段值;
S3,判断SQL的关键字,如果SQL的关键字为INSERT,则执行S4-S5,如果SQL的关键字为SELECT,则执行S6-S7;
S4,对重新编码的字段值创建编码索引;
S5,将重新编码的字段值加密后插入文件系统,并将文件命名为主键的编码
S6,对重新编码的字段值查询编码索引;
S7,在文件系统中查询文件名为主键编码的文件。
上述方法中,插入文件系统的文件名是经过编码的主键,文件内容则是加密的字段内容。而查询文件系统时,则是以文件名直接定位文件位置,返回文件内容。
本发明提供了一种数据加密的检索方法,这种方法打破了传统的检索思维,不再使用传统的加密字段创建索引,而是将字段内容重新编码后创建对应的编码索引,使得索引内容与字段内容无直接关系,保证了字段内容的安全性。
其中,上述方法在实施之前,可以对数据结构进行初始化,初始化的内容包括:定义表结构、字段类型和字段索引类型等。
本实施例中,S2中,所述对解析得到的SQL的字段值重新编码,具体可以为,建立编码库,利用编码库对解析得到的SQL的字段值重新编码。
上述方法中,通过编码库的方式对字段进行编码,可以使得编码速度更快,升级编码库及动态加载编码库时也会更加方便。
本发明的一个优选实施例中,S4中,所述创建编码索引,具体可以为:查找重新编码的字段值对应的索引类型,如果重新编码的字段值没有定义索引或索引类型不支持,则忽略该重新编码的字段值,否则,创建重新编码的字段值对应类型的编码索引。
其中,所述索引类型,包括:字符串索引、数值索引、日期索引、统计索引、日期统计索引和外健索引。
所述字符串索引可以按照如下方法创建:对字符串进行分拆单个字符,对每一个字符单独创建编码索引,以便支持模糊查询;其它类型的索引可以按照如下方法创建:直接对内容索引,不进行分拆,不支持模糊查询,只支持精确查询;创建索引的值为文件名,所述文件名为定义表结构中的主键,所述主键为利用编码库编码过的主键。
本发明的一个优选实施例中,S6中,所述查询编码索引,具体可以为:查找重新编码的字段对应的索引类型,如果字段没有建立对应的索引,则不支持查询,如果有,则通过字段索引类型去对应的索引库里查询。
所述查询可以包括主键查询、模糊查询和/或范围查询,其中,主键查询为直接通过编码查询文件系统;模糊查询为需要通过编码查询多个索引,然后把查询结果进行合并,通过文件系统返回用户。
通过采用本发明公开的上述技术方案,得到了如下有益的效果:本发明实施例提供的基于文件存储的SQL检索方法,该方法是对数据加密的检索,首先将标准的SQL语句进行解析,对解析得到的字段进行重新编码,然后,对该编码过的字段创建编码索引,并按照编码索引将对应的字段内容插入到文件系统中,或从文件系统中查询字段内容,而字段内容本身可以为加密的字段,所以,本发明提供的这种方法打破了传统的检索思维,不再使用传统的加密字段创建索引,而是将字段内容重新编码后创建对应的编码索引,使得索引内容与字段内容无直接关系,保证了字段内容的安全性。
以上所述仅是本发明的优选实施方式,应当指出,对于本技术领域的普通技术人员来说,在不脱离本发明原理的前提下,还可以做出若干改进和润饰,这些改进和润饰也应视本发明的保护范围。
Claims (7)
1.一种基于文件存储的SQL检索方法,其特征在于,包括如下步骤:
S1,对标准SQL语句进行解析,得到SQL的关键字和字段值;
S2,对解析得到的SQL的字段值重新编码,得到重新编码的字段值;
S3,判断SQL的关键字,如果SQL的关键字为INSERT,则执行S4-S5,如果SQL的关键字为SELECT,则执行S6-S7;
S4,对重新编码的字段值创建编码索引;
S5,将重新编码的字段值加密后插入文件系统,并将文件命名为主键的编码
S6,对重新编码的字段值查询编码索引;
S7,在文件系统中查询文件名为主键编码的文件。
2.根据权利要求1所述的基于文件存储的SQL检索方法,其特征在于,S2中,所述对解析得到的SQL的字段值重新编码,具体为,建立编码库,利用编码库对解析得到的SQL的字段值重新编码。通过编码库的方式则编码速度更快,升级编码库及动态加载编码库更方便。
3.根据权利要求1所述的基于文件存储的SQL检索方法,其特征在于,S4中,所述创建编码索引,具体为:查找重新编码的字段值对应的索引类型,如果重新编码的字段值没有定义索引或索引类型不支持,则忽略该重新编码的字段值,否则,创建重新编码的字段值对应类型的编码索引。
4.根据权利要求3所述的基于文件存储的SQL检索方法,其特征在于,所述索引类型,包括:字符串索引、数值索引、日期索引、统计索引、日期统计索引和外健索引。
5.根据权利要求4所述的基于文件存储的SQL检索方法,其特征在于,所述字符串索引按照如下方法创建:对字符串进行分拆单个字符,对每一个字符单独创建编码索引,以便支持模糊查询;其它类型的索引按照如下方法创建:直接对内容索引,不进行分拆,不支持模糊查询,只支持精确查询;创建索引的值为文件名,所述文件名为定义表结构中的主键,所述主键为利用编码库编码过的主键。
6.根据权利要求5所述的基于文件存储的SQL检索方法,其特征在于,S6中,所述查询编码索引,具体为:查找重新编码的字段对应的索引类型,如果字段没有建立对应的索引,则不支持查询,如果有,则通过字段索引类型去对应的索引库里查询。
7.根据权利要求6所述的基于文件存储的SQL检索方法,其特征在于,所述查询包括主键查询、模糊查询和/或范围查询,其中,主键查询为直接通过编码查询文件系统;模糊查询为需要通过编码查询多个索引,然后把查询结果进行合并,通过文件系统返回用户。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201811056988.8A CN109308286A (zh) | 2018-09-11 | 2018-09-11 | 一种基于文件存储的sql检索方法 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201811056988.8A CN109308286A (zh) | 2018-09-11 | 2018-09-11 | 一种基于文件存储的sql检索方法 |
Publications (1)
Publication Number | Publication Date |
---|---|
CN109308286A true CN109308286A (zh) | 2019-02-05 |
Family
ID=65224882
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201811056988.8A Pending CN109308286A (zh) | 2018-09-11 | 2018-09-11 | 一种基于文件存储的sql检索方法 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN109308286A (zh) |
Cited By (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN110609842A (zh) * | 2019-09-19 | 2019-12-24 | 中国银行股份有限公司 | 一种报文组成方法及系统 |
Citations (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN102236766A (zh) * | 2011-05-10 | 2011-11-09 | 桂林电子科技大学 | 安全的数据项级数据库加密系统 |
WO2013143278A1 (zh) * | 2012-03-30 | 2013-10-03 | 华为技术有限公司 | 数据的索引查询方法、装置及系统 |
CN103580857A (zh) * | 2012-08-06 | 2014-02-12 | 重庆电子工程职业学院 | 一种基于背包加密的汉字报文数据压缩方法 |
CN104704493A (zh) * | 2012-08-15 | 2015-06-10 | 维萨国际服务协会 | 可搜索的经加密的数据 |
CN107016019A (zh) * | 2015-10-23 | 2017-08-04 | 阿里巴巴集团控股有限公司 | 数据库索引创建方法及装置 |
-
2018
- 2018-09-11 CN CN201811056988.8A patent/CN109308286A/zh active Pending
Patent Citations (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN102236766A (zh) * | 2011-05-10 | 2011-11-09 | 桂林电子科技大学 | 安全的数据项级数据库加密系统 |
WO2013143278A1 (zh) * | 2012-03-30 | 2013-10-03 | 华为技术有限公司 | 数据的索引查询方法、装置及系统 |
CN103580857A (zh) * | 2012-08-06 | 2014-02-12 | 重庆电子工程职业学院 | 一种基于背包加密的汉字报文数据压缩方法 |
CN104704493A (zh) * | 2012-08-15 | 2015-06-10 | 维萨国际服务协会 | 可搜索的经加密的数据 |
CN107016019A (zh) * | 2015-10-23 | 2017-08-04 | 阿里巴巴集团控股有限公司 | 数据库索引创建方法及装置 |
Cited By (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN110609842A (zh) * | 2019-09-19 | 2019-12-24 | 中国银行股份有限公司 | 一种报文组成方法及系统 |
CN110609842B (zh) * | 2019-09-19 | 2022-02-22 | 中国银行股份有限公司 | 一种报文组成方法及系统 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
Macleod | Storage and retrieval of structured documents | |
Caprile et al. | Nomen est omen: Analyzing the language of function identifiers | |
US6356887B1 (en) | Auto-parameterization of database queries | |
US7921072B2 (en) | Methods and apparatus for mapping source schemas to a target schema using schema embedding | |
US20070005657A1 (en) | Methods and apparatus for processing XML updates as queries | |
US20020156811A1 (en) | System and method for converting an XML data structure into a relational database | |
JP2010541079A5 (zh) | ||
US20040220896A1 (en) | System and method for optimizing queries on views defined by conditional expressions having mutually exclusive conditions | |
US20080016122A1 (en) | Techniques of XML query optimization over static heterogeneous XML containers | |
US20090222407A1 (en) | Information search system, method and program | |
US20210209098A1 (en) | Converting database language statements between dialects | |
US10528556B1 (en) | Database methodology for searching encrypted data records | |
US10528557B1 (en) | Database methodology for searching encrypted data records | |
WO2016138188A1 (en) | Code analysis tool for recommending encryption of data without affecting program semantics | |
US20090019001A1 (en) | Inline view query rewrite using a materialized view | |
Saarikivi et al. | Symbolic regex matcher | |
Cash et al. | Improved structured encryption for SQL databases via hybrid indexing | |
CN109308286A (zh) | 一种基于文件存储的sql检索方法 | |
Fan et al. | Query translation from XPath to SQL in the presence of recursive DTDs | |
McGlothlin et al. | RDFKB: efficient support for RDF inference queries and knowledge management | |
CN107818125B (zh) | 通过simd处理器寄存器对数据进行迭代评估 | |
Butler et al. | INVocD: Identifier name vocabulary dataset | |
Lee et al. | The dynamic predicate: integrating access control with query processing in XML databases | |
Wang | Type system for resource bounds with type-preserving compilation | |
Šestak et al. | Integrity constraints in graph databases-implementation challenges |
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 | ||
WD01 | Invention patent application deemed withdrawn after publication |
Application publication date: 20190205 |
|
WD01 | Invention patent application deemed withdrawn after publication |