CN112889054B - 多租户数据库管理系统中数据库加密的系统和方法 - Google Patents

多租户数据库管理系统中数据库加密的系统和方法 Download PDF

Info

Publication number
CN112889054B
CN112889054B CN202080004324.6A CN202080004324A CN112889054B CN 112889054 B CN112889054 B CN 112889054B CN 202080004324 A CN202080004324 A CN 202080004324A CN 112889054 B CN112889054 B CN 112889054B
Authority
CN
China
Prior art keywords
tenant
data
tenant data
database system
database
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.)
Active
Application number
CN202080004324.6A
Other languages
English (en)
Other versions
CN112889054A (zh
Inventor
T·崇
J·B·马丁
T·方哈内尔
A·塔克
N·怀亚特
R·哈努曼塔鲁
A·本-古尔
W·C·莫蒂默
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Shuo Power Co
Original Assignee
Shuo Power Co
Priority date (The priority date 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 date listed.)
Filing date
Publication date
Application filed by Shuo Power Co filed Critical Shuo Power Co
Publication of CN112889054A publication Critical patent/CN112889054A/zh
Application granted granted Critical
Publication of CN112889054B publication Critical patent/CN112889054B/zh
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F21/00Security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
    • G06F21/60Protecting data
    • G06F21/62Protecting access to data via a platform, e.g. using keys or access control rules
    • G06F21/6218Protecting 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
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F21/00Security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
    • G06F21/60Protecting data
    • G06F21/62Protecting access to data via a platform, e.g. using keys or access control rules
    • G06F21/6218Protecting 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/6227Protecting 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
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F16/00Information retrieval; Database structures therefor; File system structures therefor
    • G06F16/20Information retrieval; Database structures therefor; File system structures therefor of structured data, e.g. relational data
    • G06F16/24Querying
    • G06F16/245Query processing
    • G06F16/2455Query execution
    • G06F16/24552Database cache management
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F21/00Security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
    • G06F21/60Protecting data
    • G06F21/604Tools and structures for managing or administering access control systems
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L9/00Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols
    • H04L9/08Key distribution or management, e.g. generation, sharing or updating, of cryptographic keys or passwords

Abstract

所公开主题的系统和方法提供了基于第一租户标识符,在联接至多租户数据库系统的内存存储器上,将第一租户的第一租户数据至少与第二租户的第二租户数据分离。可以基于该第一租户标识符,从密钥缓存内存中获取与该第一租户相关联的第一加密密钥,以加密该第一租户数据的一个或多个片段。可以基于获取的加密密钥,加密该第一租户数据的片段。可以为加密的该第一租户数据的片段的每一个片段生成非加密的报头信息,其中该报头信息可以具有包括该第一租户标识符的元数据。可以将加密的该第一租户数据的片段和对应的非加密的报头信息存储在不可变存储器中。

Description

多租户数据库管理系统中数据库加密的系统和方法
背景技术
一些现有的多租户数据库系统可以提供租户数据的加密。但是,这种加密是由独立于数据库的应用执行的。也就是说,应用加密租户数据,并将加密的租户数据传输至数据库进行存储。对于这种排布,不能对加密的数据执行诸如筛选、排序、索引等典型的数据库功能。也就是说,在现有的多租户数据库系统中,对多租户数据库中特定数据的加密将对数据库的使用施加限制。在某些情况下,试图使用加密的数据执行典型的数据库功能会破坏正在使用的应用的功能。尽管传统的单租户数据库系统可能允许租户数据的加密,但它们不能为不同的租户处理不同的加密。一些数据库系统提供租户加密,但要求将租户数据逻辑上分离到不同的数据库、表空间等中。
附图说明
附图是为了提供对所公开主题的进一步理解而包含在本说明书中,并构成本说明书的一部分。附图还示出了所公开主题的实施方式,并且与详细说明一起用于说明所公开主题的实施方式的原理。除了对所公开主题的基本理解和可以实践它的各种方式所必需的之外,不会详细地示出结构细节。
图1示出了根据所公开主题的实施方式的,分离第一和第二租户数据并加密第一租户数据的一个或多个片段的示例方法。
图2A示出了根据所公开主题的实施方式的,响应于数据库查询请求,获取非加密的第一租户数据的片段的示例方法。
图2B示出了根据所公开主题的实施方式的,当请求的片段不存在于块缓存内存中时,响应于数据库查询,获取并解密第一租户数据的片段的示例方法。
图3示出了根据所公开主题的实施方式的,改变与第一租户数据相关联的第一加密密钥,并基于改变的密钥将该第一租户数据作为新版本存储在不可变存储器中的示例方法。
图4示出了根据所公开主题的实施方式的,从第一租户的第一租户数据中为至少一个新的沙箱租户数据创建至少一个新的沙箱,并加密沙箱租户数据的示例方法。
图5示出了根据所公开主题的实施方式的,使用第一租户数据的元数据将第一租户数据从源数据库实例迁移至目标数据库实例的示例方法。
图6示出了根据所公开主题的实施方式的,可以结合图1至图5所示的分离示例方法使用的系统架构的示例。
图7示出了根据所公开主题的实施方式的,使用图4所示的示例方法为第一租户数据的不同片段创建不同沙箱的示例架构。
图8示出了根据所公开主题的实施方式的密钥管理的示例架构。
图9示出了根据所公开主题的实施方式的计算机。
图10示出了根据所公开主题的实施方式的网络配置。
具体实施方式
所公开主题的实施方式为多租户数据库系统提供加密,其中支持对以加密形式存储的租户数据进行诸如筛选、排序以及索引等数据库操作。租户数据的加密可以由多租户数据库系统执行,而不是在应用服务器上执行,从而可以利用数据库操作(例如,筛选、排序等)。可以单独加密多租户数据库系统的每个租户,其中每个租户都有自己的租户标识符和加密密钥。在多租户数据库系统中,不同租户数据的部分可能在逻辑上属于至少一个相同数据库对象。
尤其,可以加密含针对特定租户的租户数据记录的片段。片段可以是所公开主题的多租户数据库系统中的基本数据单元,多个片段组成一个区间。数据区间可以包含租户数据的一个或多个片段和块索引。可以基于租户标识符来分离片段,并且可以使用该片段的租户的加密密钥来单独加密分离的片段。
所公开主题的实施方式改进了现有的多租户数据库系统,其中在应用级(即,在应用服务器上)上执行租户加密。也就是说,在这样的系统中,在将租户数据存储在独立的数据库系统中之前,租户数据的加密由应用执行。在应用上加密数据的缺点是通常不能执行诸如筛选、排序、索引等数据库操作。当租户数据由应用编码并存储在多租户数据库中时,应用在尝试数据库操作(例如,筛选、排序等)时可能会遇到故障和/或错误。也就是说,在现有的多租户数据库系统中,对多租户数据库中特定数据的加密将对数据库的使用施加限制。尽管一些传统的单租户数据库系统可能允许租户数据的加密,但它们不能为不同的租户处理不同的加密。
在所公开主题的实施方式中,所公开主题的多租户数据库系统的内存存储器可以包含尚未被持久性写入多租户数据库中的已提交的和未提交的事务。可以在已提交的事务在被持久性写入多租户数据库系统的不可变存储中之前对其进行加密。在一些实施方式中,多租户数据库系统使用后台程序来管理要提交到片段中的事务的租户数据的分离。也就是说,可以分离不同的租户(即,具有不同租户标识符的租户)。密钥缓存可以存储每个租户的加密密钥。将加密密钥的副本保存在密钥缓存中可以减少从密钥管理系统(KMS)中获取加密密钥的时间。
多租户数据库系统的后台程序可以为租户获取加密密钥,以管理特定租户的数据片段的加密。可以生成非加密的报头并将其与加密的租户数据的片段的每一个片段相关联,其中该报头可以包含具有租户标识符的元数据(当授权时,该标识符可以用于获取租户的加密密钥)。后台程序可以管理加密的租户数据的片段和可读报头的写入,以持久性保存在多租户数据库系统的不可变存储中。
当多租户数据库系统接收到针对特定租户数据的查询时,多租户数据库系统的查询引擎首先检查块缓存,以确定数据是否未加密且可用,因为这比从数据库中获取数据更快。当块缓存中的数据未加密时(即,数据是明文,而不是密文),多租户数据库系统的查询引擎可以操作以获取租户数据。如果数据在块缓存中不可用,则可以从以加密形式存储的不可变存储器中获取请求的租户数据。可以解密租户数据并将其提供给块缓存,以便查询引擎可以使用它来执行数据库操作(例如,筛选、排序等)。尤其,多租户数据库系统可以从由查询引擎识别的租户数据的数据片段的报头中获取具有租户标识符的元数据,并且可以从密钥缓存或KMS中获取加密密钥,以基于获取的元数据来解密数据片段。在请求者可以从密钥缓存或KMS中获取特定租户的加密密钥之前,可以对其进行认证(例如,通过证书)。可以将解密的数据片段(已经从密文解密为明文)提供给块缓存,以执行数据库操作。
也就是说,所公开的主题的实施方式可以用特定于每个租户的加密密钥来加密租户数据。可以加密租户数据的片段并将其存储在多租户数据库系统的不可变存储器中。可以基于非加密的报头中的元数据从不可变存储中获取加密的租户数据。可以使用从密钥缓存或KMS中获取到的密钥来解密获取到的加密数据,并且可以将解密的数据提供给块缓存,在块缓存中可以执行数据库操作。可以使用不同于任何租户加密密钥的系统加密密钥来加密和解密跨租户数据(例如,包含一个或多个租户的块索引、事务日志等)。所公开主题的实施方式提供了个体租户数据的加密,并且允许由多租户数据库系统执行诸如筛选、排序等数据库操作,而没有通常与标准多租户数据库系统相关联的错误或故障。
所公开主题的实施方式可以为租户加密提供密钥管理,诸如由多租户数据库系统管理的密钥的轮换。密钥管理可以包含管理租户加密密钥、加密跨租户数据的系统加密密钥和/或加密密钥的创建和删除。在一些实施方式中,加密密钥(例如,租户加密密钥和/或系统加密密钥)可以以预定的节奏轮换(即,改变),以维护安全性。在一些实施方式中,用户可以请求密钥轮换(出于安全目的),并且数据可以被重写为新版本,新密钥在独立的数据区间中。
所公开主题的实施方式可以为一个或多个沙箱租户提供数据的加密。由于沙箱数据由原始租户的物理数据支持,因此沙箱和原始租户可以共享相同的加密密钥。沙箱创建之后,可以为其选择不同的密钥。一个或多个沙箱租户可以由原始租户数据或另一个沙箱租户数据形成。
所公开主题的实施方式可以为租户迁移提供加密,其中加密的租户数据可以从一个多租户数据库实例转移至一个不同的多租户数据库实例。可以通过提供加密密钥复制来维护数据的加密。也就是说,还可以迁移要迁移的租户的加密密钥。
图1示出了根据所公开主题的实施方式的,分离多租户数据库系统中的第一和第二租户数据,并加密第一租户数据的一个或多个片段的示例方法10。方法10可以管理多租户数据库系统(例如,图6所示的多租户数据库系统100、图8所示的多租户数据库系统200、以及图9所示的中央部件700和/或第二计算机800、和/或图10所示的数据库系统1200a-1200d)的第一租户的第一租户数据的至少一部分的安全性,该多租户数据库系统可以至少存储第一租户的第一租户数据和第二租户的第二租户数据。
第一租户的第一租户数据通常可以存储在与第一租户标识符相关联的多租户数据库系统的不可变存储器(例如,图6和图8所示的不可变存储器108)中,而第二租户的第二租户数据通常可以存储在与第二租户标识符相关联的多租户数据库系统的不可变存储器中。在一些实施方式中,第一租户数据和第二租户数据可以存储在:图6所示的内存存储器102和/或块缓存118中;图8所示的数据库服务器208、210中;图9所示的固定存储器630、内存670、可移动介质650、中央部件700和/或存储器810中;和/或图10所示的数据库系统1200a-1200d中。
已提交的和/或未提交的事务两者的第一租户数据和/或第二租户数据可以存储在联接至多租户数据库系统的内存存储器(例如,图6所示的内存存储器102)中。在操作12,基于第一租户标识符,在联接至多租户数据库系统的内存存储器上可以将第一租户的第一租户数据至少与第二租户的第二租户数据分离。第一租户数据的已提交的事务可以与第一租户的未提交的事务数据和/或可能已提交的和/或未提交的第二租户数据分离。
在一些实施方式中,在将其永久性写入不可变存储器上之前,可以加密第一租户数据的已提交的事务。多租户数据库系统的后台程序可以管理第一租户数据与第二租户数据的分离,并形成第一租户数据的一个或多个片段。后台程序可以由图6所示的多租户数据库系统100、图8所示的多租户数据库系统200的数据库服务器208、210、图9所示的中央部件700和/或第二计算机800、和/或图10所示的数据库系统1200a-1200d来执行。
在图1所示的操作14,基于第一租户标识符,可以从密钥缓存内存(例如,图8所示的密钥缓存208、212)中获取与第一租户相关联的第一加密密钥。获取到的第一加密密钥可以用于加密第一租户数据的一个或多个片段。与第一租户相关联的第一加密密钥可以不同于与第二租户相关联的第二加密密钥。将加密密钥的副本保存在密钥缓存中可以减少从密钥管理系统(KMS)(例如,图6和图8所示的KMS 128)中获取密钥的时间。后台程序可以获取第一租户的加密密钥,以管理第一租户数据的片段的加密。
在一些实施方式中,可能需要向与第一租户相关联的第一加密密钥的请求者授予访问权限,以便从缓存内存中获取第一加密密钥。请求者可以是例如图8所示的应用服务器202、204和/或图9所示的计算机600。例如,请求者可以提供要认证的证书或其他识别信息。当已经认证了请求者时,该请求者可以接收第一加密密钥,以加密第一租户数据的一个或多个片段。在一些实施方式中,图8所示的数据库服务器208、210、图9所示的中央部件700和/或第二计算机800、和/或图10所示的数据库系统1200a-1200d可以认证请求者。
在操作16,多租户数据库系统可以基于获取到的加密密钥来加密第一租户数据的一个或多个片段中的一个片段。在一些实施方式中,后台程序可以使用获取到的第一加密密钥来管理第一租户数据的一个或多个片段的加密。
在操作18,可以在多租户数据库系统上为加密的第一租户数据的一个或多个片段中的每一个片段生成非加密的报头信息。第一租户的报头信息可以具有元数据,该元数据包含第一租户标识符。每个生成的非加密的报头信息可以与第一租户数据的相应片段相关联。在操作20,加密的第一租户数据的一个或多个片段和对应的非加密的报头信息可以存储在不可变存储器中(例如,图6和8所示的不可变存储器、图9所示的第二计算机800的存储器810、图10的数据库系统1200a-1200d等)。在一些实施方式中,操作20可以是“刷新”操作的一部分(例如,通过图6所示的刷新器106),其中第一租户数据的已提交的事务被识别、加密并存储在多租户数据库系统的不可变存储器中,以增加内存存储器(例如,图6所示的内存存储器102)中的可用存储空间。
图2A示出了根据所公开主题的实施方式的,响应于数据库查询请求,获取非加密的第一租户数据的片段的示例方法30。在操作32,多租户数据库系统(图6所示的多租户数据库系统100、图8所示的多租户数据库系统200、图9所示的中央部件700和/或第二计算机800、和/或图10所示的数据库系统1200a-1200d)可以接收对第一租户数据的一个或多个片段的请求。请求可以来自图8所示的应用服务器202、204和/或图9所示的计算机600,并且可以由图6所示的查询126接收。在操作34,多租户数据库系统可以确定通信联接至多租户数据库系统的块缓存内存(例如,图6所示的块缓存122)是否包含请求的第一租户数据的一个或多个片段。在操作36,当确定请求的第一租户数据的一个或多个片段在块缓存内存中时,块缓存内存可以将其提供给多租户数据库系统。在所公开主题的实施方式中,块缓存内存的内容可以是非加密的(即,以明文形式,而不是密文形式)。当第一租户数据的一个或多个片段存在于块缓存中时,可以对第一租户数据的片段执行数据库操作,并且无需执行解密。从块缓存中获取的一个或多个片段可以具有比以下各项更快的优点:在不可变存储器中定位加密的一个或多个片段、获取第一租户的加密密钥、解密一个或多个片段以及将解密的片段提供给块缓存。
图2B示出了根据所公开主题的实施方式的,当请求的片段不存在于块缓存内存中时,响应于数据库查询,获取并解密第一租户数据的片段的示例方法40。当确定请求的第一租户数据的一个或多个片段不存在于块缓存内存中时(例如,当图2A所示的示例方法30可能在缓存内存中未找到未加密的第一租户数据的片段时),在操作42,通过使用第一租户数据的一个或多个片段的非加密的报头信息的元数据,可以在不可变存储器(例如,图6和8所示的不可变存储器108)中识别加密的请求的第一租户数据的一个或多个片段。
在操作44,可以从密钥缓存内存(例如,图8所示的密钥缓存)或密钥管理系统(KMS)(例如,图6所示的KMS)中获取第一加密密钥,以基于非加密的报头信息的元数据来解密第一租户数据的一个或多个片段。在一些实施方式中,可以尝试从密钥缓存内存(例如,图8所示的密钥缓存208、212)中获取第一加密密钥。当第一加密密钥不存在于密钥缓存内存中时,可以从KMS(例如,图6和图8所示的KMS 128)中获取它。当认证请求者时,密钥缓存内存或KMS可以授予对与第一租户相关联的第一加密密钥的访问权限。例如,请求者可以提供要认证的证书或其他识别信息。当已经认证了请求者时,请求者可以接收第一加密密钥,以解密第一租户数据的一个或多个片段。
在操作46,可以使用从密钥缓存内存或KMS中获取的第一加密密钥,来解密第一租户数据的一个或多个片段。在操作48,可以将解密的第一租户数据的一个或多个片段提供给块缓存内存(例如,图6所示的块缓存118)。
当一个或多个片段经解密(例如,数据是明文形式的)并且存在于块缓存内存中时,多租户数据库系统可以对第一租户数据的一个或多个片段执行一个或多个数据库操作,诸如筛选、排序和/或索引。也就是说,所公开主题的实施方式可以加密多租户数据库系统中的租户数据并执行数据库操作,这与一些传统的多租户系统不同,在传统的多租户系统中,当加密租户数据时,数据库操作可能受限或不可用。尽管一些传统数据库可能支持租户加密,但它们要求租户在逻辑上分离到不同的数据库或表空间。在所公开主题的多租户数据库系统中,可以将租户并置在相同的数据库中,或者将其并置为数据库对象(例如,在相同的表和/或索引中),并且对可以以加密形式存储的数据执行数据库操作。
在一些实施方式中,多租户数据库系统可以使用独立于第一加密密钥和第二加密密钥并且不与第一租户和第二租户相关联的系统密钥,来加密以下各项中的一项或多项:多租户数据库的索引(例如,图6所示的数据区间110的块索引114和/或块缓存118的块索引122)和/或事务日志(例如,图6所示的事务日志104)。如下面详细讨论的,图6所示的存储目录116和临时溢出区124也可以使用独立于租户加密密钥的系统密钥进行加密。
图3示出了根据所公开主题的实施方式的,改变与第一租户数据相关联的第一加密密钥,并基于改变的密钥将第一租户数据作为新版本存储在不可变存储器中的示例方法50。在操作52,多租户数据库系统(例如,图6所示的多租户数据库系统100、图8所示的多租户数据库系统200、以及图9所示的中央部件700和/或第二计算机800、和/或图10所示的数据库系统1200a-1200d)可以在预定时间段内或当接收到密钥改变请求时,改变第一加密密钥。在操作54,多租户数据库系统的不可变存储器(例如,图6和8所示的不可变存储器108)可以基于改变的密钥存储第一租户数据作为新版本。加密密钥的周期性改变可以用于维护加密的租户数据的安全性。
在所公开主题的实施方式中,可以基于现有的非沙箱租户数据来创建沙箱租户,例如如美国专利公开第2018/0129585号公开的,其公开内容通过引用整体并入。在一些实施方式中,可以从原始沙箱中创建一个或多个新的沙箱,例如,如美国专利申请第16/133,106号公开的,其公开内容通过引用整体并入。例如,原始沙箱可以是从原始租户的原始租户数据中创建的沙箱。原始沙箱可以由模板形成,以包含以下各项中的一项或多项:来自至少一个数据源的代码、模式、记录以及测试数据。代码和/或测试数据的验证测试可以在沙箱复制之前执行。可以创建一个或多个具有相同内容的重复沙箱。
在所描述的主题的实施方式中,硬件和软件的组合可创建某些沙箱租户标识符和原始租户标识符之间的对应关系,以向沙箱租户提供对与原始租户相关联的时间点数据的读取访问权限。以此方式,沙箱租户可使用原始租户数据,而不必将原始租户数据复制到沙箱租户的命名空间。同样地,一个或多个新的沙箱租户标识符和原始沙箱租户标识符之间的对应关系可以为新的沙盒租户提供对与原始沙箱租户相关联的时间点数据的读取访问权限。
可将由沙箱租户生成的新的事务数据写入原始租户无法访问的沙箱租户命名空间。可将由原始租户生成的新的事务数据写入沙箱租户无法访问的原始租户命名空间。以此方式,新的沙箱租户数据不会破坏原始租户数据,并且新的原始租户数据(例如,其可以被称为后续不可变原始租户数据)不会破坏由沙箱读取和写入以测试应用的测试数据。同样地,可将由至少一个沙箱租户生成的新的事务数据写入原始沙箱租户无法访问的至少一个沙箱租户命名空间。可将由原始沙箱租户生成的新的事务数据写入至少一个新的沙箱租户无法访问的原始沙箱租户命名空间。至少一个新的沙箱租户数据不会破坏原始沙箱租户数据,并且新的原始沙箱租户数据不会破坏由至少一个新的沙箱读取和写入以测试应用的测试数据。这些实施方式可与例如在日志结构合并(LSM)树中持久性存储记录的内容的关系数据库一起使用。
图4示出了根据所公开主题的实施方式的,从第一租户的第一租户数据中为至少一个新的沙箱租户数据创建至少一个新的沙箱,并加密沙箱租户数据的示例方法60。在操作62,多租户数据库系统(例如,图6所示的多租户数据库系统100、图8所示的多租户数据库系统200、以及图9所示的中央部件700和/或第二计算机800、和/或图10所示的数据库系统1200a-1200d)可以通过将沙箱租户标识符与第一租户数据的虚拟快照以及与在沙箱创建时间点之后由沙箱租户创建的沙箱租户数据相关联,来创建沙箱租户。在操作64,沙箱租户数据可以用第一加密密钥进行加密。沙箱租户和/或加密的沙箱租户数据可以存储在不可变存储器(例如,图6和图8所示的不可变存储器108)中。在一些实施方式中,在创建沙箱租户之后,多租户数据库系统可以为沙箱租户选择新的密钥。
图5示出了使用第一租户数据的元数据来将第一租户数据从源数据库实例迁移至目标数据库实例的示例方法。所公开主题的实施方式可将多租户数据库系统的一个租户从源数据库实例迁移至目标数据库实例,而不需要逐行数据复制、生产数据复制或对复制的生产数据进行操作。就处理器资源、数据存储以及持久性资源和/或数据路径(例如,通信网络)资源而言,与传统的租户迁移技术相比,该迁移可更快地完成,而且成本更低。在许多情况下,不需要对迁移的数据进行一致性检查或采取其他纠正措施,从而节省了额外的时间和系统资源。例如美国专利公开第2018/0373708号中详细描述了租户数据从源数据库实例至目标数据库的迁移,其公开内容通过引用整体并入。
在图5所示的操作72,可以将要从源数据库实例(例如,图8所示的数据库服务器208)迁移的第一租户的元数据传输至目标数据库实例(例如,图8所示的数据库服务器210)。目标数据库实例可以位于不同于源数据库实例的物理服务器或虚拟化服务器上。在操作74,可以修改目标数据库实例上的第一租户的元数据,使得目标数据库实例具有指向存储器中的数据分组的信息,以便目标数据库访问第一租户数据。迁移的租户数据可以保留其加密,并且加密密钥可以随租户数据一起迁移。迁移的租户数据可以存储在不可变存储器(例如,图8所示的不可变存储器108)中。在一些实施方式中,在迁移数据之后,多租户数据库系统可以为迁移的租户数据选择新的密钥。
图6示出了根据所公开主题的实施方式的,可以结合图1至图5所示的分离示例方法使用的多租户数据库系统100的系统架构的示例。
多租户数据库系统100可以是数据库系统、服务器系统、云服务器系统等。内存存储器102可以是系统100的硬件和软件的任何合适的组合,用于存储第一租户和/或第二租户的已提交的和/或未提交的事务数据(例如,第一租户数据和/或第二租户数据)。在一些实施方式中,内存存储器102可以是半导体内存、固态驱动器(SSD)、硬盘驱动器、光学内存、光学存储设备或任何其他合适的物理数据存储介质,或它们的某种组合。存储在内存存储器102中的租户数据可以是未加密的数据。
事务日志104可以是系统100的硬件和软件的任何合适的组合,用于存储对数据库系统的任何操作和/或改变(例如,获取数据、提交事务、刷新数据、存储数据等)。对内存存储器102中的租户数据执行的每个事务可以存储在事务日志104中。事务日志104可以使用不属于任何特定租户的系统加密密钥进行加密。
刷新器106可以是系统100的硬件和软件的任何合适的组合,以将存储在内存存储器102中的已提交的事务以数据区间(例如,数据区间110)存储至不可变存储器108。不可变存储器108可以是物理数据存储器,诸如半导体内存、固态驱动器(SSD)、硬盘驱动器、光学内存、光学存储设备或任何其他合适的物理数据存储介质,或它们的某种组合。
当存储在内存存储器102中的已提交的租户数据(例如,第一租户数据)要被存储在不可变存储器108中时,刷新器106可以从密钥缓存(例如,图8所示的密钥缓存)或密钥管理系统128中获取加密密钥(例如,第一加密密钥),以加密数据,并将其存储在不可变存储器108的数据区间(例如,数据区间110)中。在一些实施方式中,可以在加密租户数据并将其存储在不可变存储器118中之前对其进行压缩。
数据区间110可以包含租户数据111、112以及113的片段。如图6所示,租户数据111的片段和租户数据112的片段可以是针对第一租户(例如,租户A)的片段,租户数据113的片段可以是针对第二租户(例如,租户B)的片段。租户数据111、112以及113的每个片段可以仅包含单个租户的记录。第一租户的租户数据111和112的片段可以用第一加密密钥进行加密,第二租户的租户数据113的片段可以用第二加密密钥进行加密。块索引114可以包含租户数据111、112以及113的片段在不可变存储108中的数据库表的索引号,以指示它们在数据库表中的位置。块索引114可以用不属于任何特定租户的系统加密密钥进行加密。
存储目录116可以通信联接至不可变存储器,并且可以是系统100的硬件和软件的任何合适的组合,用于存储数据区间(诸如数据区间110)和区间引用。例如,存储目录可以是内存存储器102,可以是半导体内存、固态驱动器(SSD)、硬盘驱动器、光学内存、光学存储设备或任何其他合适的物理数据存储介质,或它们的某种组合。区间引用可以用作对存储在物理存储器(例如,存储设备)中的物理区间的逻辑引用,并且可以用于虚拟化对物理存储器的访问。数据区间可以包含租户数据的一个或多个片段(例如,租户数据111、112以及113等的片段)和块索引。存储目录116可以使用不属于任何特定租户的系统加密密钥进行加密。
块缓存118可以是半导体内存、固态驱动器(SSD)、硬盘驱动器、光学内存、光学存储设备或任何其他合适的物理数据存储介质,或它们的某种组合。块缓存118可以包含租户数据119、120以及121的片段。租户数据119、120以及121的每个片段可以仅包含单个租户的记录。租户数据119、120以及121的片段可以是未加密的(即,明文)。块索引122可以包含租户数据119、120以及120的片段的索引号,以指示它们在表中的位置。块索引122可以是未加密的。如上面结合图1至图2B所述,可以对块缓存118中的非加密的数据执行数据库操作,诸如筛选、排序、索引等。
临时溢出区124可以是半导体内存、固态驱动器(SSD)、硬盘驱动器、光学内存、光学存储设备或任何其他合适的物理数据存储介质,或者它们的某种组合,以处理存储在块缓存118中的数据的溢出。也就是说,当租户数据119、120以及121的片段和/或块索引122的数据大小超过块缓存118的数据容量时,临时溢出区124可以存储溢出数据(例如,由于可能超过数据容量而无法放入块缓存118的数据)。当将事务写入内存存储器102时,块缓存118的数据容量可以增加(其中可以刷新已提交的事务至不可变存储器108)。存储在临时溢出区中的租户数据的片段和/或块索引数据可以是未加密的。
查询126可以由多租户数据库系统100通过例如请求租户数据的一个或多个应用和/或应用服务器(例如,图8所示的应用服务器202和/或应用服务器204)进行接收,租户数据可作为未加密的租户数据存储在内存存储器102和/或块缓存118中,和/或可以作为加密的租户数据存储在不可变存储器108中。在一些实施方式中,多租户数据库系统100的后台程序可以确定请求的租户数据是否存在于块缓存118中。如上面结合图2A至图2B所述,如果请求的租户数据不存在于块缓存118中,而经加密并存储在不可变存储器118中,则可以从密钥缓存(例如,图8所示的密钥缓存)或从密钥管理系统128中获取加密密钥(例如,第一数据的第一加密密钥),以解密租户数据并将其提供给块缓存118。
合并器130可以更新在多租户数据库系统100中的现有记录(并将它们作为新记录写入)和/或生成新记录。
图7示出了根据所公开主题的实施方式的,使用图4所示的示例方法为第一租户数据的不同片段创建不同沙箱的示例架构。在一些实施方式中,在图4所示的操作62,多租户数据库系统100可以通过将沙箱租户标识符与第一租户数据的虚拟快照(例如,图7所示的第一租户数据111的片段)以及与在沙盒创建时间点之后由沙箱租户(例如,沙箱租户1a1a)创建的沙箱租户数据(例如,第一租户的第一沙箱111a的沙箱租户数据)相关联,来创建沙箱租户。在图4中的操作64,沙箱租户111a的沙箱租户数据可以用第一加密密钥(例如,与用于加密第一租户的租户数据111的片段相同的加密密钥)进行加密。
在一些实施方式中,在创建沙箱租户之后,多租户数据库系统可以为沙箱租户(例如,沙箱租户111a)选择新的密钥。多租户数据库系统100可以使用新的加密密钥来加密沙箱租户111a的沙箱租户数据,并将重新加密的数据存储在不可变存储器108中数据区间中。新加密的数据可以包含租户数据、沙箱开始时的数据,以及在沙箱创建时间点之后生成的任何沙箱数据。
在一些实施方式中,可以从第一租户数据111的片段中创建多个沙箱。在其他实施方式中,多租户数据库系统100可以为相同租户(例如,第一租户)的不同数据片段创建不同的沙箱。如图7所示,第一租户数据111的片段可以用于创建沙箱租户111a,并且第一租户112的不同片段可以用于创建沙箱租户112a。
图8示出了根据所公开主题的实施方式的具有密钥管理的示例多租户数据库系统200。系统200可以包含一个或多个应用服务器,诸如应用服务器202和/或应用服务器204。应用服务器202和/或应用服务器204可以是物理服务器、虚拟化服务器和/或云服务器系统。
应用服务器202、204可以执行一个或多个应用,向一个或多个数据库服务器(诸如数据库服务器206和/或数据库服务器210)发出查询和/或写入请求。数据库服务器206、210可以是物理服务器、虚拟化服务器和/或云服务器系统。在一些实施方式中,数据库服务器206、210可以包含图6所示和上面所述的以下各项中的一项或多项:系统100的存储器102、事务日志104、刷新器106、块缓存118和/或临时溢出区124。
数据库服务器206可以包含密钥缓存208,并且数据库服务器210可以包含密钥缓存212。如上所述,密钥缓存208、212可以存储一个或多个加密密钥,以加密和/或解密租户数据。数据库服务器206、210可以通信联接至不可变存储器108,这在上面结合图6进行了详细描述。
KMS 128可以是硬件和软件的任何合适的组合,以生成、分配、存储、管理和/或获取加密密钥来加密和/或解密租户数据。例如,KMS128可以生成、分配、存储和/或获取加密密钥,诸如与第一租户相关联的第一加密密钥或与第二租户相关联的第二加密密钥。KMS128可以管理租户加密密钥和/或系统加密密钥(即,实例密钥),其可用于加密跨租户数据(例如,用于加密事务日志104、临时溢出区124、存储目录116和/或块索引114的加密密钥)。在一些实施方式中,加密密钥(诸如第一加密密钥和/或第二加密密钥)可以存储在KMS128中,KMS 128可以包含和/或与以下各项通信连接:半导体内存、固态驱动器(SSD)、硬盘驱动器、光学内存、光学存储设备或任何其他合适的物理数据存储介质,或者它们的某种组合。KMS 128可以提供密钥生命周期管理,诸如密钥的轮换、密钥的删除、密钥的使用监控等。KMS 128可以支持由应用服务器202、204提供的一个或多个租户的自带密钥(BYOK)。
当前公开的主题的实施方式可以在各种部件和网络架构中实施并与之一起使用。在一些实施方式中,如上所述,图6和图8所示的系统架构可以使用图9至图10所示的部件和网络架构来实施。
图9是适于实施当前公开的主题的实施方式的示例计算机600。如这里进一步详细讨论的,计算机600可以是多个计算机网络中的单个计算机。如图9所示,计算机600可以与中央或分布式部件700(例如,服务器、云服务器、数据库、集群、应用服务器等)通信。中央部件700可以与一个或多个其他计算机通信,诸如第二计算机800,其可以包含存储设备810。第二计算机800可以是服务器、云服务器等。存储器810可以使用任何合适的易失性和非易失性物理存储介质的任何合适的组合,例如包含硬盘驱动器、固态驱动器、光学介质、闪存、磁带驱动器、寄存器以及随机存取内存等,或者它们的任何组合。
数据可以使用任何合适的文件系统或存储方案或层次结构,以任何合适的格式存储在例如存储器810中。例如,存储器810可以使用具有多层的日志结构合并(LSM)树来存储数据。进一步地,如果图9至图10所示的系统是多租户系统,则可以将存储器组织成针对租户的数据库的每个实例的独立日志结构合并树。可选地,特定服务器或系统上的所有记录的内容可以存储在单个日志结构合并树中,在这种情况下,可以使用与记录的版本相关联的唯一租户标识符来区分本文所公开的每个租户的数据。例如,唯一租户标识符可以与第一租户相关联,并且一个不同的标识符可以与第二租户相关联。较新的事务可以存储在树的最高层或顶层,而较旧的事务可以存储在树的较低层。可选地,每条记录的最新的事务或版本(即,每条记录的内容)可以存储在树的最高层,而先前版本或先前事务存储在树的较低层。
向和/或从中央部件700获得的信息可以针对每台计算机进行隔离,从而计算机600可以不与计算机800共享信息。可选地或另外,计算机600可以直接与第二计算机800通信。
计算机(例如,用户计算机、企业计算机等)600包含总线610,该总线将计算机600的主要部件互连,诸如中央处理器640、内存670(通常是RAM,但也可以包含ROM、闪存RAM等)、输入/输出控制器680、用户显示器620(诸如经由显示适配器的显示器或触摸屏)、用户输入接口660(该输入接口可以包含一个或多个控制器和相关的用户输入或设备,诸如键盘、鼠标、WiFi/蜂窝无线电、触摸屏、麦克风/扬声器等,并紧密连接至I/O控制器680)、固定存储器630(诸如硬盘、闪存、光纤通道网络、SAN设备、SCSI设备等)以及可移动介质部件650(其可操作以控制和接收光盘、闪盘驱动器等)。
如前所述,总线610使中央处理器640和内存670之间能够进行数据通信,内存670可以包含只读内存(ROM)或闪存(均未示出)和随机存取内存(RAM)(未示出)。RAM可包含操作系统和应用程序载入其中的主内存。ROM或闪存可含除其他代码外的基本输入输出系统(BIOS),该BIOS控制基本硬件操作,诸如与外围部件的交互。随计算机600驻留的应用可存储在计算机可读介质上,并经由计算机可读介质访问,诸如硬盘驱动器(例如,固定存储器630)、光盘驱动器、软盘或其他存储介质650。
固定存储器630可以与计算机600集成一体,或者可以是独立的,并且可以通过其他接口访问。网络接口690可以经由电话链路提供到远程服务器的直接连接,经由互联网服务提供商(ISP)提供到互联网的直接连接,或者经由直接网络链路提供到远程服务器的直接连接,经由POP(存在点)或其他技术提供到互联网的直接连接。网络接口690可以使用无线技术提供这种连接,包含数字蜂窝电话连接、蜂窝数字分组数据(CDPD)连接、数字卫星数据连接等。例如,如图10所示,网络接口690可以使计算机能够经由一个或多个局域网、广域网或其他网络与其他计算机通信。
许多其他设备或部件(未示出)可以以类似的方式连接(例如,数据缓存系统、应用服务器、通信网络交换机、防火墙设备、认证和/或授权服务器、计算机和/或网络安全系统等)。相反地,图10中所示的所有部件不需要存在来实践本发明。这些部件可以不同于所示的方式互连。诸如图9至图10所示的计算机的操作在本领域中是已知的,在本申请中不作详细讨论。实施本发明的代码可存储在计算机可读存储介质中,诸如内存670、固定存储器630、可移动介质650中的一个或多个,或者存储在远程存储位置。
图10示出了根据所公开主题的实施方式的示例网络排布。由云1202表示的网络中不同节点上的四个独立数据库系统1200a-1200d通过网络链路1204相互通信,并与用户(未示出)通信。每个数据库系统1200可以操作以托管数据库的多个实例,其中每个实例仅可由与特定租户(例如,第一租户、第二租户等)相关联的用户访问。每个数据库系统可以构成计算机集群以及存储区域网络(未示出)、负载平衡器和备份服务器以及防火墙、其他安全系统和认证系统。任何系统1200上的一些实例可以是处理和提交从用户或从计算元件(未示出)接收的事务的实时或生产实例,用于吸收和提供实例中存储器的数据。
进一步地,多租户系统可以在分布在整个网络中的服务器系统上具有各种租户实例,每个节点上都有一个计算系统。每个租户的实时或生产数据库实例只能在一个计算机系统上处理其事务。用于处理该实例的事务的计算系统也可以为其他租户处理其他实例的事务。
更一般地,当前公开的主题的各种实施方式可以包含或以计算机实施的过程和用于实践这些过程的装置的形式来实施。实施方式还可以以计算机程序产品的形式来实施,该计算机程序产品具有计算机程序代码,该计算机程序代码含在非暂时性和/或有形介质(诸如软盘、CD-ROM、硬盘、USB(通用串行总线)驱动器或任何其它机器可读存储介质)中实施的指令,其中,当计算机程序代码被载入计算机并由计算机执行时,该计算机成为用于实践所公开的主题的实施方式的装置。实施方式还可以以计算机程序代码的形式来实施,例如,无论是存储在存储介质中、被载入计算机和/或由计算机执行,还是通过某种传输介质传输,诸如通过电线或电缆、通过光纤或通过电磁辐射,其中,当计算机程序代码被载入计算机并由计算机执行时,该计算机成为用于实践所公开主题的实施方式的装置。当在通用微处理器上实施时,计算机程序代码段配置微处理器,以创建特定的逻辑电路。在一些配置中,存储在计算机可读存储介质上的一组计算机可读指令可以由通用处理器实施,通用处理器可以将通用处理器或含通用处理器的设备转换成经配置用以实施或执行指令的专用设备。实施方式可以使用硬件来实施,硬件可以包含处理器,诸如通用微处理器和/或专用集成电路(ASIC),其在硬件和/或固件中实施根据所公开主题的实施方式的全部或部分技术。处理器可以联接至内存,诸如RAM、ROM、闪存、硬盘或任何其他能够存储电子信息的设备。内存可以存储适于由处理器执行的指令,以执行根据所公开主题的实施方式的技术。
出于说明的目的,已经参考具体的实施方式描述了前述描述。但是,上面的说明性讨论并非旨在穷举或将所公开的主题的实施方式限制到所公开的精确形式。鉴于上述教导,可以有许多变型和变化。选择和描述这些实施方式是为了说明所公开主题的实施方式的原理及其实际应用,从而使本领域的其他技术人员能够利用这些实施方式以及具有各种变型的各种实施方式,因为这些实施方式可能适合于所设想的特定用途。

Claims (10)

1.一种管理多租户数据库系统的第一租户的第一租户数据的至少一部分的安全性的计算机化方法,所述多租户数据库系统至少存储所述第一租户的所述第一租户数据和第二租户的第二租户数据,所述第一租户的所述第一租户数据存储在与第一租户标识符相关联的所述多租户数据库系统的不可变存储器中,而所述第二租户的所述第二租户数据存储在与第二租户标识符相关联的所述多租户数据库系统的不可变存储器中,其中,所述第一租户数据和所述第二租户数据的任何部分逻辑上属于所述多租户数据库系统中的至少一个相同数据库对象,所述方法包括:
基于所述第一租户标识符,在联接至所述多租户数据库系统的内存存储器上,将所述第一租户的所述第一租户数据至少与所述第二租户的所述第二租户数据分离;
基于所述第一租户标识符,从密钥缓存内存中获取与所述第一租户相关联的第一加密密钥,以加密所述第一租户数据的一个或多个片段,其中,所述第一加密密钥不同于与所述第二租户相关联的第二加密密钥;
基于所述获取的第一加密密钥,在所述多租户数据库系统上,加密所述第一租户数据的所述一个或多个片段中的至少一个片段;
在所述多租户数据库系统上,为所述加密的所述第一租户数据的一个或多个片段中的每一个片段生成非加密的报头信息,其中,所述报头信息具有包括所述第一租户标识符的元数据;以及
将所述加密的所述第一租户数据的一个或多个片段和所述对应的非加密的报头信息存储在所述不可变存储器中。
2.根据权利要求1所述的方法,还包括:
在所述多租户数据库系统上,接收对所述第一租户数据的所述一个或多个片段的请求;
在所述多租户数据库系统上,确定通信联接至所述多租户数据库系统的块缓存内存是否包括所述请求的所述第一租户数据的一个或多个片段;以及
当确定所述请求的所述第一租户数据的一个或多个片段在所述块缓存内存中时,将其提供给所述多租户数据库系统。
3.根据权利要求2所述的方法,还包括:
当确定所述请求的所述第一租户数据的一个或多个片段不存在于所述块缓存内存中时,通过使用所述第一租户数据的所述一个或多个片段的所述非加密的报头信息的所述元数据,来识别加密的所述请求的所述第一租户数据的一个或多个片段;
从所述密钥缓存内存或密钥管理系统(KMS)中获取所述第一加密密钥,以基于所述非加密的报头信息的所述元数据,来解密所述第一租户数据的所述一个或多个片段;
使用所述获取的第一加密密钥,来解密所述第一租户数据的所述一个或多个片段;以及
将所述解密的所述第一租户数据的一个或多个片段提供给所述块缓存内存。
4.根据权利要求3所述的方法,还包括:
当认证请求者时,在所述密钥缓存内存上,授予对与所述第一租户相关联的所述第一加密密钥的访问权限。
5.根据权利要求3所述的方法,其中,当所述第一加密密钥在所述密钥缓存内存中不可用时,从所述KMS中获取第一加密密钥。
6.根据权利要求2所述的方法,还包括:
在所述多租户数据库系统上,执行从以下各项组成的组中选择的至少一项操作:筛选、排序以及索引所述块缓存内存中的所述第一租户数据的所述一个或多个片段。
7.根据权利要求1所述的方法,还包括:
在所述多租户数据库系统上,使用独立于所述第一加密密钥和所述第二加密密钥并且不与所述第一租户和所述第二租户相关联的系统密钥,来加密来自以下各项组成的组中的至少一项:所述多租户数据库的索引和事务日志。
8.根据权利要求1所述的方法,还包括:
在多租户数据库系统上,在预定时间段内或当接收到密钥改变请求时,改变所述第一加密密钥;以及
基于所述改变的密钥,将所述第一租户数据作为新版本存储在所述多租户数据库系统的所述不可变存储器中。
9.根据权利要求1所述的方法,还包括:
在所述多租户数据库系统上,通过将沙箱租户标识符与所述第一租户数据的虚拟快照以及与在所述沙箱创建时间点之后由所述沙箱租户创建的沙箱租户数据相关联,来创建沙箱租户,
其中,所述沙箱租户数据用所述第一加密密钥进行加密。
10.根据权利要求1所述的方法,还包括:
将要迁移的所述第一租户的元数据从源数据库实例传输至目标数据库实例,其中,所述目标数据库实例位于不同于所述源数据库实例的物理服务器或虚拟化服务器上;以及
在所述目标数据库实例上,修改所述第一租户的所述元数据,使得所述目标数据库实例具有指向存储器中的数据分组的信息,以便目标数据库访问所述第一租户数据。
CN202080004324.6A 2019-01-31 2020-01-10 多租户数据库管理系统中数据库加密的系统和方法 Active CN112889054B (zh)

Applications Claiming Priority (3)

Application Number Priority Date Filing Date Title
US16/263,751 US11238174B2 (en) 2019-01-31 2019-01-31 Systems and methods of database encryption in a multitenant database management system
US16/263,751 2019-01-31
PCT/US2020/013169 WO2020159694A1 (en) 2019-01-31 2020-01-10 Systems and methods of database encryption in a multitenant database management system

Publications (2)

Publication Number Publication Date
CN112889054A CN112889054A (zh) 2021-06-01
CN112889054B true CN112889054B (zh) 2023-07-04

Family

ID=69526303

Family Applications (1)

Application Number Title Priority Date Filing Date
CN202080004324.6A Active CN112889054B (zh) 2019-01-31 2020-01-10 多租户数据库管理系统中数据库加密的系统和方法

Country Status (5)

Country Link
US (2) US11238174B2 (zh)
EP (2) EP4235475A3 (zh)
JP (1) JP7193615B2 (zh)
CN (1) CN112889054B (zh)
WO (1) WO2020159694A1 (zh)

Families Citing this family (9)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US11438320B1 (en) * 2011-11-27 2022-09-06 Charles Schwab & Co., Inc. System and method for receiving information among computer systems without enabling log ins if the user identifiers are compromised
US11537724B2 (en) * 2019-03-26 2022-12-27 International Business Machines Corporation Generating data migration plan for in-place encryption of data
US11321294B2 (en) 2019-09-09 2022-05-03 Salesforce.Com, Inc. Database index repair
US11573711B2 (en) * 2020-03-23 2023-02-07 Vmware, Inc. Enhanced data encryption in distributed datastores using random tweaks stored in data blocks
US11483150B2 (en) 2020-06-01 2022-10-25 Salesforce.Com, Inc. Private key cache in secure enclave
US11880495B2 (en) * 2021-05-28 2024-01-23 Sap Se Processing log entries under group-level encryption
US20230067054A1 (en) * 2021-08-24 2023-03-02 International Business Machines Corporation Encryption of database log files
US20230336339A1 (en) * 2022-04-18 2023-10-19 Dell Products L.P. Automatic key cleanup to better utilize key table space
US20230409730A1 (en) * 2022-06-16 2023-12-21 Sap Se Native multi-tenancy for database system

Citations (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US9081805B1 (en) * 2007-05-08 2015-07-14 Progress Software Corporation Tenant-aware database for software as a service
CN106663034A (zh) * 2014-05-09 2017-05-10 亚马逊技术股份有限公司 基于企业的网络与多租户网络之间的应用程序迁移
WO2017090142A1 (ja) * 2015-11-26 2017-06-01 株式会社野村総合研究所 サービス提供システム
CN107003815A (zh) * 2014-12-09 2017-08-01 国际商业机器公司 云环境中机密数据的自动化管理
CN107431712A (zh) * 2015-03-30 2017-12-01 亚马逊技术股份有限公司 用于多租户环境的网络流日志

Family Cites Families (46)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US10007767B1 (en) * 2007-12-21 2018-06-26 EMC IP Holding Company LLC System and method for securing tenant data on a local appliance prior to delivery to a SaaS data center hosted application service
US8751826B2 (en) * 2009-04-01 2014-06-10 Salesforce.Com, Inc. Enhanced system security
US8707264B2 (en) * 2010-05-18 2014-04-22 Salesforce.Com, Inc. Methods and systems for testing methods in a multi-tenant database environment
US8909928B2 (en) 2010-06-02 2014-12-09 Vmware, Inc. Securing customer virtual machines in a multi-tenant cloud
KR20120050742A (ko) 2010-11-11 2012-05-21 삼성에스디에스 주식회사 커널 네이티브 에이피아이의 후킹 처리를 통한 디지털 저작권 관리 장치 및 방법
US8565422B2 (en) * 2010-12-03 2013-10-22 Salesforce.Com, Inc. Method and system for enryption key versioning and key rotation in a multi-tenant environment
US9460176B2 (en) * 2010-12-29 2016-10-04 Sap Se In-memory database for multi-tenancy
JP6176515B2 (ja) * 2012-04-27 2017-08-09 パナソニックIpマネジメント株式会社 無線基地局装置、無線資源管理方法、及び無線資源管理プログラム
US9350536B2 (en) 2012-08-16 2016-05-24 Digicert, Inc. Cloud key management system
US20140181992A1 (en) * 2012-12-21 2014-06-26 Michael Alexander Janson Multi-tenant content provider
US9292673B2 (en) 2013-03-15 2016-03-22 International Business Machines Corporation Virtual key management and isolation of data deployments in multi-tenant environments
US20140330936A1 (en) * 2013-05-02 2014-11-06 International Business Machines Corporation Secure isolation of tenant resources in a multi-tenant storage systemwith inter-server communication
US9411973B2 (en) * 2013-05-02 2016-08-09 International Business Machines Corporation Secure isolation of tenant resources in a multi-tenant storage system using a security gateway
US9203815B1 (en) * 2013-11-27 2015-12-01 Symantec Corporation Systems and methods for secure third-party data storage
US10771255B1 (en) * 2014-03-25 2020-09-08 Amazon Technologies, Inc. Authenticated storage operations
US9825925B2 (en) * 2014-06-11 2017-11-21 Bijit Hore Method and apparatus for securing sensitive data in a cloud storage system
US10152487B1 (en) * 2014-09-29 2018-12-11 EMC IP Holding Company LLC System and method for a cloud storage provider to safely deduplicate encrypted backup objects
JP6419633B2 (ja) * 2015-04-09 2018-11-07 株式会社日立ソリューションズ 検索システム
US10366247B2 (en) * 2015-06-02 2019-07-30 ALTR Solutions, Inc. Replacing distinct data in a relational database with a distinct reference to that data and distinct de-referencing of database data
US10042782B2 (en) * 2015-06-02 2018-08-07 ALTR Solutions, Inc. Immutable datastore for low-latency reading and writing of large data sets
US10013364B1 (en) * 2015-06-26 2018-07-03 EMC IP Holding Company LLC Securing data using per tenant encryption keys
US10157196B2 (en) * 2015-08-12 2018-12-18 Salesforce.Com, Inc. Intra-platform data migration
US20170213210A1 (en) * 2016-01-22 2017-07-27 International Business Machines Corporation Asset transfers using a multi-tenant transaction database
JP6721825B2 (ja) 2016-03-10 2020-07-15 富士通株式会社 データ保護プログラム、データ保護方法、及びデータ保護装置
JP6720744B2 (ja) 2016-07-15 2020-07-08 富士通株式会社 情報処理システム、情報処理装置、及び制御プログラム
US10296757B2 (en) * 2016-07-29 2019-05-21 Sap Se Appended key ID for key identification during data encryption
US10003585B2 (en) * 2016-08-02 2018-06-19 Samsung Electronics Co., Ltd. Systems, devices, and methods for preventing unauthorized access to storage devices
US10735394B2 (en) * 2016-08-05 2020-08-04 Oracle International Corporation Caching framework for a multi-tenant identity and data security management cloud service
US10530578B2 (en) * 2016-08-05 2020-01-07 Oracle International Corporation Key store service
US10187203B2 (en) * 2016-08-30 2019-01-22 Workday, Inc. Secure storage encryption system
US10241896B2 (en) 2016-11-08 2019-03-26 Salesforce, Inc. Formation and manipulation of test data in a database system
US10387661B2 (en) * 2017-01-09 2019-08-20 Pure Storage, Inc. Data reduction with end-to-end security
US10592681B2 (en) * 2017-01-10 2020-03-17 Snowflake Inc. Data sharing in a multi-tenant database system
US10911441B2 (en) * 2017-01-18 2021-02-02 CertifID LLC Verifying party identities for secure transactions
US11403019B2 (en) * 2017-04-21 2022-08-02 Pure Storage, Inc. Deduplication-aware per-tenant encryption
KR101966767B1 (ko) * 2017-05-31 2019-04-08 삼성에스디에스 주식회사 클라우드 서비스를 위한 암호화 키 관리 시스템
US10872066B2 (en) 2017-06-27 2020-12-22 Salesforce.Com, Inc. Systems and methods of database tenant migration
US11500836B2 (en) 2017-06-27 2022-11-15 Salesforce, Inc. Systems and methods of creation and deletion of tenants within a database
US10902016B2 (en) * 2018-02-12 2021-01-26 Artem Shamsutdinov Autonomous interdependent repositories
US10615976B2 (en) * 2018-02-23 2020-04-07 Sap Se Lightweight key management system for multi-tenant cloud environment
US11513910B2 (en) * 2018-04-26 2022-11-29 EMC IP Holding Company LLC Compliance as a service for multi-cloud backup systems
US10168949B1 (en) * 2018-06-14 2019-01-01 Rubrik, Inc. Envoy for multi-tenant compute infrastructure
US11106810B2 (en) * 2018-07-30 2021-08-31 EMC IP Holding Company LLC Multi-tenant deduplication with non-trusted storage system
US11057359B2 (en) * 2018-08-13 2021-07-06 Salesforce.Com, Inc. Key encryption key rotation
US11106658B2 (en) * 2018-11-28 2021-08-31 Snowflake Inc. Task scheduling in database systems
US11163791B2 (en) * 2019-01-23 2021-11-02 Servicenow, Inc. Transformation configuration in instance data replication with bi-directional replication support

Patent Citations (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US9081805B1 (en) * 2007-05-08 2015-07-14 Progress Software Corporation Tenant-aware database for software as a service
CN106663034A (zh) * 2014-05-09 2017-05-10 亚马逊技术股份有限公司 基于企业的网络与多租户网络之间的应用程序迁移
CN107003815A (zh) * 2014-12-09 2017-08-01 国际商业机器公司 云环境中机密数据的自动化管理
CN107431712A (zh) * 2015-03-30 2017-12-01 亚马逊技术股份有限公司 用于多租户环境的网络流日志
WO2017090142A1 (ja) * 2015-11-26 2017-06-01 株式会社野村総合研究所 サービス提供システム

Non-Patent Citations (3)

* Cited by examiner, † Cited by third party
Title
Towards Cloud, Service and Tenant Classification For Cloud Computing;Sebastian Jeuk;《2014 14th IEEE/ACM International Symposium on Cluster,Cloud and Grid Computing》;全文 *
软件即服务模式下租户多副本数据存储完整性问题研究;李琳;钱进;张永新;丁艳辉;孔兰菊;;南京大学学报(自然科学)(第02期);第118-128页 *
面向SaaS应用的数据组合隐私保护机制研究;张坤;李庆忠;史玉良;;计算机学报(第11期);第16-26页 *

Also Published As

Publication number Publication date
JP7193615B2 (ja) 2022-12-20
EP3814968A1 (en) 2021-05-05
US11841967B2 (en) 2023-12-12
US11238174B2 (en) 2022-02-01
CN112889054A (zh) 2021-06-01
EP4235475A3 (en) 2023-09-06
EP4235475A2 (en) 2023-08-30
US20200250325A1 (en) 2020-08-06
JP2021533619A (ja) 2021-12-02
US20220121766A1 (en) 2022-04-21
WO2020159694A1 (en) 2020-08-06
EP3814968B1 (en) 2023-03-22

Similar Documents

Publication Publication Date Title
CN112889054B (zh) 多租户数据库管理系统中数据库加密的系统和方法
EP3539021B1 (en) Formation and manipulation of test data in a database system
JP7053682B2 (ja) データベーステナントマイグレーションのシステム及び方法
US11270006B2 (en) Intelligent storage devices with cryptographic functionality
US8892905B2 (en) Method and apparatus for performing selective encryption/decryption in a data storage system
EP3777014B1 (en) Encryption by default in an elastic computing system
US9225691B1 (en) Deduplication of encrypted dataset on datadomain backup appliance
US20170317991A1 (en) Offloading storage encryption operations
US10503917B2 (en) Performing operations on intelligent storage with hardened interfaces
US20150370641A1 (en) Storage integrated snapshot cloning for database
US10621071B2 (en) Formation and manipulation of test data in a database system
US11418326B2 (en) Method and system for performing secure data transactions in a data cluster
Kushe et al. Evaluation of Techniques for Improving Performance and Security in Relational Databases
CN114254045A (zh) 一种基于区块链的数据存储方法、装置、设备及存储介质
Gupta et al. Advanced Features

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
CB02 Change of applicant information
CB02 Change of applicant information

Address after: California, USA

Applicant after: Shuo Power Co.

Address before: California, USA

Applicant before: SALESFORCE.COM, Inc.

GR01 Patent grant
GR01 Patent grant