IP Library Granted Patent US 12,223,073
Granted Patent B2
US 12,223,073 · App. 17/567,022 · Granted Feb 11, 2025

Database management engine for a database management system

Inventors: Oron Golan (Meitar Halamish, IL); Aviram Fireberger (Karmia, IL); Aviad Pines (Jerusalem, IL); Adir Atias (Migdal Ha'Emek, IL); Evgeny Lutsky (Tel-Aviv, IL)
Assignee: MICROSOFT TECHNOLOGY LICENSING, LLC
G06F21/6218G06F11/1469G06F2201/84
View Patent ↗
Loading inventors, assignments & file history…
Monitor This Case
Get email alerts when status or documents change.
Order Certified Copies
Most orders are placed with the USPTO same day — all within 24 business hours.
Order via The Patent Place →
Pre-filled with this patent's details
Quick Facts
Patent No.
US 12,223,073
App. No.
17/567,022
Granted
Feb 11, 2025
Kind
B2
Abstract

Methods, systems, and computer storage media provide a privacy compliance notification indicating a database's level of compliance with a privacy policy after restoring the database to the database's backup copy. The database is associated with a database management engine. The database supports privacy-based first-class data entities. The privacy-based first-class data entities are database entities having privacy system-level metadata properties associated with data operations in a database language syntax. The privacy compliance notification may be generated based on determining whether a privacy database operation associated with a database journal and a privacy journal has been executed on a database since the database was restored to a backup copy of the database. The database transaction journal includes a transaction log of database operations executed against the database, and the privacy journal includes the database operations logged as privacy database operations associated with the plurality of privacy-based first-class data entities.

Claims (58)

1. A computerized system comprising:

one or more computer processors; and

computer memory storing computer-useable instructions that, when used by the one or more computer processors, cause the one or more computer processors to perform operations comprising:

accessing, at a database management engine, a database that supports a privacy-based first-class data entity having at least one privacy system-level metadata property;

executing at a respective timestamp a privacy database operation on the database, the privacy database operation is associated with the privacy-based first-class data entity and a privacy system-level metadata property, the privacy database operation comprises at least one of a data definition language (DDL) command, a data control language (DCL) command, a transition control language (TCL) command, a command specifying a relational database entity, or a command specifying a value for the privacy system-level metadata property;

based on executing the privacy database operation, recording, in a privacy journal, the privacy database operation, wherein the privacy journal is configured to log the privacy database operation associated with the privacy-based first-class data entity and the privacy system-level metadata property;

restoring the database to a backup copy of the database corresponding to a backup version of the database having an earlier timestamp prior to the respective timestamp;

based on restoring the database to the backup copy, identifying, in the privacy journal, the privacy database operation that has the respective timestamp later than the earlier timestamp of the backup copy of the database and that has not been executed on the database since the restore; and

based on the earlier timestamp, the respective timestamp, and the identification of the privacy database operation that has not been executed on the database since the restore, generating a privacy compliance notification specifying that the database is noncompliant.

2. The system of claim 1 , wherein the privacy compliance notification indicates that the database is not compliant because the privacy database operation has not been executed on the database since the restore.

3. The system of claim 1 , wherein a first privacy-based first-class data entity is a privacy type associated with privacy management operations defined in a privacy policy; and

wherein a second privacy-based first-class data entity tracks privacy metadata associated with privacy database operations, wherein the privacy metadata is stored with a corresponding privacy database operation in the privacy journal.

4. The system of claim 1 , wherein recording the privacy database operation in the privacy journal comprises recording a pointer in the privacy journal, the pointer pointing to an entry in a database transaction journal that corresponds to the privacy database operation.

5. The system of claim 1 , wherein identifying the privacy database operation that has not been executed on the database since the restore is based on detecting an error in playing-back database operations in a database transaction journal of the database, wherein the privacy journal comprises a subset of database operations in the database transaction journal.

6. The system of claim 1 , wherein identifying the privacy database operation that has not been executed on the database since the restore is based on:

playing-back database operations of a database transaction journal that were executed after the backup copy was generated;

detecting an error in playing-back the database operations;

comparing un-played database operations in the database transaction journal to a plurality of privacy database operations in the privacy journal; and

identifying the privacy database operation in the privacy journal based on the privacy database operation matching an un-played database operation in the database transaction journal.

7. One or more computer-storage media having computer-executable instructions embodied thereon that, when executed by a computing system having a processor and memory, cause the computing system to:

access, at a database management engine, a database that supports a privacy-based first-class data entity having at least one privacy system-level metadata property;

generate a backup copy of the database at an earlier timestamp, the backup copy is associated with a database transaction journal configured to log at least one database operation and a privacy journal configured to log at least one privacy database operation associated with the privacy-based first-class data entity and the at least one privacy system-level metadata property;

execute, at a respective timestamp later than the earlier timestamp, a database operation on the database, the database operation is associated with the privacy-based first-class data entity and the at least one privacy system-level metadata property, the database operation comprises at least one of a data definition language (DDL) command, a data control language (DCL) command, a transition control language (TCL) command, a command specifying a relational database entity, or a command specifying a value for the privacy system-level metadata property;

based on executing the database operation, record, in the database transaction journal and the privacy journal, the database operation, the database operation is recorded in the privacy journal as a privacy database operation;

subsequent to the database operation being executed a the respective timestamp, detect an error in the database;

based on detecting the error in the database, restore the database to the backup copy of the database generated at the earlier timestamp;

based on restoring the database to the backup copy, determine that the privacy database operation has not been executed on the database since the restore;

based on the earlier timestamp, the respective timestamp, and determining that the privacy database operation has not been executed on the database since the restore, generate a privacy compliance notification specifying that the database is noncompliant; and

cause a security mitigation action to be performed.

8. The media of claim 7 , wherein the privacy-based first-class data entity comprises:

a first privacy-based first-class data entity that is a privacy type associated with privacy management operations defined in a privacy policy, and

a second privacy-based first-class data entity that tracks privacy metadata associated with database operations, wherein the privacy metadata is stored with a corresponding privacy database operation in the privacy journal.

9. The media of claim 7 , wherein recording the database operation in the privacy journal comprises recording a pointer in the privacy journal, the pointer points to an entry in the database transaction journal that corresponds to the database operation.

10. The media of claim 7 , wherein determining that the privacy database operation has not been executed on the database since the restore is based on:

playing-back database operations of the database transaction journal that were executed after the backup copy was generated;

detecting an error in playing-back the database operations;

comparing un-played database operations in the database transaction journal to the privacy journal; and

identifying the privacy database operation in the privacy journal based on the privacy database operation matching an un-played database operation in the database transaction journal.

11. The media of claim 7 , wherein the computer-executable instructions further cause the processor to:

determine that there are no privacy database operations in the privacy journal that have not been executed on the database since the restore; and

based on determining that there are no privacy database that have not been executed on the database since the restore, generate the compliance notification that indicates that the database is compliant because that are no privacy database operations that have not been executed on the database since the restore.

12. The media of claim 7 , wherein the computer-executable instructions further cause the processor to:

determine that a privacy database operation has not been executed on the database since the restore; and

based on determining that the privacy database operation has not been executed on the database since the restore, generate the compliance notification indicates that the database is not compliant because the privacy database operation has not been executed on the database since the restore.

13. A computer-implemented method, comprising:

accessing, at a database management engine, a database that supports a privacy-based first-class data entity having a privacy system-level metadata property;

based on a restoration operation executed on the database to restore the database to a backup copy of the database associated with an earlier timestamp, identifying, in a privacy journal, a privacy database operation that has a respective timestamp later than the earlier timestamp associated with the backup copy of the database and that has not been executed on the database since the restore, wherein the privacy database operation comprises at least one of a data definition language (DDL) command, a data control language (DCL) command, a transition control language (TCL) command, a command specifying a relational database entity, or a command specifying a value for the privacy system-level metadata property; and

based on the earlier timestamp, the respective timestamp, and identifying privacy database operation that has not been executed on the database since the restore, causing a security mitigation action to be performed.

14. The method of claim 13 , wherein the privacy system-level metadata properties are associated with data operations formatted in DDL, structured query language (SQL), DLC, or TLC syntax.

15. The method of claim 13 , wherein a first privacy-based first-class data entity is a privacy type associated with privacy management operations defined in a privacy policy; and wherein a second privacy-based first-class data entity that tracks privacy metadata associated with database operations, wherein the privacy metadata is stored with a corresponding privacy database operation in the privacy journal.

16. The method of claim 13 , wherein the privacy database operation in the privacy journal is a pointer in the privacy journal, the pointer points to an entry in a database transaction journal that corresponds to a database operation executed on the database.

17. The method of claim 13 , wherein identifying the privacy database operation that has not been executed on the database since the restore is based detecting an error in playing-back database operations in a database transaction journal of the database, wherein the privacy journal comprises a subset of database operations in the database transaction journal.

18. The method of claim 13 , wherein causing a security mitigation operation to be performed comprises generating a privacy compliance notification associated with the database, wherein the privacy compliance notification indicates that the database is not compliant because the privacy database operation has not been executed on the database since the restore.

19. The system of claim 1 , wherein the operations further comprise determining that the privacy database operation not having been executed on the database since the restore is noncompliant with a privacy policy, wherein the privacy compliance notification is generated based on the noncompliance with the privacy policy.

20. The system of claim 1 , wherein the operations further comprise generating a security mitigation action, wherein generating the security mitigation action comprises at least one of:

aggregating data associated with the privacy database operation that has been determined to have not been performed on the backup copy of the database;

generating instructions indicative of a database operation performed on the database; or

performing the database operation.

Assignments (1)
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Jan 11, 2022
From: GOLAN, ORON; FIREBERGER, AVIRAM; PINES, AVIAD; ATIAS, ADIR; LUTSKY, EVGENY
To: MICROSOFT TECHNOLOGY LICENSING, LLC,
Reel/Frame 058614/0250 →
Continuity (1)
Related Publication 20230214511A1 · Jul 6, 2023
References Cited (28)
US 7620668B2 · Kathuria et al. · 2009 [cited by applicant]
US 10803196B2 · Bodegas Martinez et al. · 2020 [cited by applicant]
US 20160306709A1 · Shaull · 2016 [cited by examiner]
US 20200057864A1 · Parthasarathy · 2020 [cited by applicant]
US 20200167240A1 · Haridas · 2020 [cited by examiner]
US 20200257594A1 · Tobias et al. · 2020 [cited by applicant]
US 20200380160A1 · Kraus et al. · 2020 [cited by applicant]
US 20210026982A1 · Amarendran et al. · 2021 [cited by applicant]
US 20210034585A1 · Downs et al. · 2021 [cited by applicant]
US 20210081432A1 · Grunwald · 2021 [cited by examiner]
US 20210099461A1 · Schwartz et al. · 2021 [cited by applicant]
US 20230195926A1 · Mehta · 2023 [cited by examiner]
EP 1089196A2 · 2001 [cited by applicant]
“Accelerate Innovation with the Commercial Marketplace”, Retrieved from: https://web.archive.org/web/20210826102858/https:/azure.microsoft.com/en-us/marketplace/, Aug. 26, 2021, 5 Pages. [cited by applicant]
“Azure Information Protection”, Retrieved from: https://web.archive.org/web/20210826103222/https:/azure.microsoft.com/en-us/services/information-protection/, Aug. 26, 2021, 4 Pages. [cited by applicant]
“Azure Policy”, Retrieved from: https://web.archive.org/web/20210826103829/https:/azure.microsoft.com/en-us/services/azure-policy/, Aug. 26, 2021, 6 Pages. [cited by applicant]
“Azure Security Center”, Retrieved from: https://web.archive.org/web/20210826102617/https:/azure.microsoft.com/en-us/services/security-center/, Aug. 26, 2021, 9 Pages. [cited by applicant]
“GDPR Data Backup Requirements”, Retrieved from: https://www.compliancejunction.com/gdpr-data-backup-requirements/, Apr. 20, 2018, 3 Pages. [cited by applicant]
“How to Keep Your Data Backup GDPR Compliant”, Retrieved from: https://www.softwareone.com/en/blog/all-articles/2018/08/09/how-to-keep-your-data-backup-gdpr-compliant, Jul. 28, 2021, 7 Pages. [cited by applicant]
“How To Use Import-Export Command and CSV Files in GDPR Guard”, Retrieved from: https://www.veritas.com/support/en_US/article.100044194, Oct. 30, 2018, 5 Pages. [cited by applicant]
“Application as Filed in U.S. Appl. No. 15/931,020”, Filed Date: May 13, 2020, 62 Pages. [cited by applicant]
Bozhidar, Plamenov B. , “GDPR—A Practical Guide For Developers”, Retrieved from: https://techblog.bozho.net/gdpr-practical-guide-developers/, Nov. 29, 2017, 28 Pages. [cited by applicant]
Griffee, et al., “Microsoft Compliance Manager (Classic)”, Retrieved from: https://web.archive.org/web/20210524144356/https://docs.microsoft.com/en-us/microsoft-365/compliance/meet-data-protection-and-regulatory-reqs-us… [cited by applicant]
Masek, et al., “SAP Business Objects in the Era of GDPR 10 Steps to Ensure and Maintain Compliance”, Retrieved from: https://360suite.io/wp-content/uploads/2020/02/360suite-Whitepaper-BusinessObjects-In-The-Era-Of-GDPR-… [cited by applicant]
Politou, et al., “Backups and the Right to be Forgotten in the GDPR: An Uneasy Relationship”, In Journal of Computer Law & Security Review, vol. 34, Issue 6, Sep. 8, 2018, pp. 1-11. [cited by applicant]
Staimer, Marc, “Are You Ready to Comply with GDPR Requirements?”, Retrieved from: https://searchdatabackup.techtarget.com/feature/Are-you-ready-to-comply-with-GDPR-requirements, Feb. 12, 2018, 6 Pages. [cited by applicant]
“GDPR + Backup and Restore”, Retrieved from: https://www.reddit.com/r/gdpr/comments/7f3g3i/gdpr_backup_and_restore/, Nov. 24, 2017, 2 Pages. [cited by applicant]
“International Search Report and Written Opinion Issued in PCT Application No. PCT/US22/051891”, Mailed Date: Apr. 18, 2023, 12 Pages. [cited by applicant]