BR112020027062B1 - Sistema e método para classificação de segurança de dados - Google Patents

Sistema e método para classificação de segurança de dados Download PDF

Info

Publication number
BR112020027062B1
BR112020027062B1 BR112020027062-8A BR112020027062A BR112020027062B1 BR 112020027062 B1 BR112020027062 B1 BR 112020027062B1 BR 112020027062 A BR112020027062 A BR 112020027062A BR 112020027062 B1 BR112020027062 B1 BR 112020027062B1
Authority
BR
Brazil
Prior art keywords
data field
level
data
security
query
Prior art date
Application number
BR112020027062-8A
Other languages
English (en)
Other versions
BR112020027062A2 (pt
Inventor
Dong Li
Huaiyu Zhu
Jing Chen
Original Assignee
Beijing DIDI Infinity Technology and Development Co., Ltd
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 Beijing DIDI Infinity Technology and Development Co., Ltd filed Critical Beijing DIDI Infinity Technology and Development Co., Ltd
Publication of BR112020027062A2 publication Critical patent/BR112020027062A2/pt
Publication of BR112020027062B1 publication Critical patent/BR112020027062B1/pt

Links

Images

Classifications

    • 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/22Indexing; Data structures therefor; Storage structures
    • G06F16/2228Indexing structures
    • G06F16/2246Trees, e.g. B+trees
    • 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/22Indexing; Data structures therefor; Storage structures
    • G06F16/2282Tablespace storage structures; Management thereof
    • 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
    • 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

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Databases & Information Systems (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • Software Systems (AREA)
  • Data Mining & Analysis (AREA)
  • Health & Medical Sciences (AREA)
  • Bioethics (AREA)
  • General Health & Medical Sciences (AREA)
  • Computer Hardware Design (AREA)
  • Computer Security & Cryptography (AREA)
  • Computational Linguistics (AREA)
  • Information Retrieval, Db Structures And Fs Structures Therefor (AREA)

Abstract

"SISTEMA E MÉTODO PARA CLASSIFICAÇÃO DE SEGURANÇA DE DADOS". Sistemas e métodos são fornecidos para classificação de segurança de dados. Um método exemplar para classificação de segurança de dados, implementável por um computador, pode compreender o recebimento de um pedido para acessar um campo de dados de consulta, procurando o campo de dados de consulta de uma tabela de nível de segurança, em resposta ao encontrar o campo de dados de consulta da tabela de nível de segurança, obter a partir da tabela de nível de segurança um nível de segurança correspondente ao campo de dados de consulta e em resposta a não encontrar o campo de dados de consulta da tabela de nível de segurança, determinar um nível de segurança correspondente ao campo de dados de consulta com base, pelo menos, em uma árvore de linhagem e na tabela de nível de segurança. A árvore de linhagem pode rastrear o campo de dados de consulta para um ou mais campos de dados fonte e a tabela de nível de dados de segurança pode compreender um ou mais níveis de segurança correspondentes a um ou mais campos de dados de fonte.

Description

PEDIDO CORRELATO
[001] Este pedido reivindica o benefício de prioridade para o Pedido US Número 16/036.865, depositado em 16 de julho de 2018, e intitulado "System and Method for Data Security Grading", cujo conteúdo é incorporado ao presente documento como referência em sua totalidade.
CAMPO TÉCNICO
[002] Esta revelação geralmente se refere aos métodos e dispositivos para classificação de segurança de dados.
ANTECEDENTES
[003] A segurança dos dados é essencial para a maioria das operações online em grande escala, que podem gerar novos dados constantemente. Com a rápida expansão dos tamanhos dos dados, atribuir níveis de segurança adequados aos campos de dados torna-se extremamente desafiador. Os métodos tradicionais com base em regras são inadequados para lidar com o número crescente de novos conjuntos de dados produzidos diariamente. Entre muitos outros desafios, as tabelas ou campos de dados existentes têm nomes criados por diferentes usuários e não são intuitivos quanto ao seu conteúdo. Além disso, o conteúdo do conjunto de dados pode mudar de tempos em tempos, o que requer uma reescrita das regras criadas. Portanto, as tecnologias atuais são incapazes de classificar campos de dados com os níveis de segurança adequados em tempo hábil, expondo os dados online a riscos significativos.
SUMÁRIO
[004] Várias formas de realização da presente revelação podem incluir sistemas, métodos e mídia legível por computador não transitória para classificação de segurança de dados. De acordo com um aspecto, um método exemplar para classificação de segurança de dados, implementável por um computador, pode compreender o recebimento de uma solicitação para acessar um campo de dados de consulta, procurando o campo de dados de consulta a partir de uma tabela de nível de segurança, em resposta a encontrar o campo de dados de consulta da tabela de nível de segurança, obtendo da tabela de nível de segurança um nível de segurança correspondente ao campo de dados de consulta, e em resposta a não encontrar o campo de dados de consulta da tabela de nível de segurança, determinar um nível de segurança correspondente ao campo de dados de consulta com base, pelo menos, em uma árvore de linhagem e a tabela de nível de segurança. A árvore de linhagem pode rastrear o campo de dados de consulta para um ou mais campos de dados fonte e a tabela de nível de dados de segurança pode compreender um ou mais níveis de segurança correspondentes a um ou mais campos de dados fonte.
[005] Em algumas formas de realização, a árvore de linhagem pode rastrear um campo de dados derivados para um ou mais campos de dados superiores (parent data fields) de primeiro nível, sendo cada campo de dados superiores de primeiro nível o campo de dados fonte ou um campo de dados derivado de primeiro nível e o campo de dados derivado de um ou mais campos de dados superiores de primeiro nível, com base em uma função derivada; para o campo de dados derivados de primeiro nível, a árvore de linhagem pode rastrear o campo de dados derivados de primeiro nível para um ou mais campos de dados superiores de segundo nível, sendo cada campo de dados superiores de segundo nível, o campo de dados fonte ou um campo de dados derivados de segundo nível, e o campo de dados derivado de primeiro nível derivado de um ou mais campos de dados superiores de segundo nível com base em outra função de derivação; o rastreamento pode ser replicável em qualquer campo de dados derivados até rastrear para um ou mais dos campos de dados fonte; e a árvore de linhagem compreende as funções derivadas.
[006] Em algumas formas de realização, determinar o nível de segurança correspondente ao campo de dados de consulta com base, pelo menos, na árvore de linhagem e a tabela de nível de segurança pode compreender, para cada campo de dados derivados em qualquer nível, obter o nível de segurança do campo de dados derivados com base, pelo menos, em (1) a função de derivação do campo de dados derivados e (2) os níveis de segurança dos campos de dados superiores de primeiro nível do campo de dados derivados e determinar um dos campos de dados derivados correspondendo ao campo de dados de consulta e usando os dados derivados determinados nível de segurança do campo como o nível de segurança do campo de dados de consulta.
[007] Em algumas formas de realização, o nível de segurança do campo de dados derivados obtidos é o mais alto dos níveis de segurança dos campos de dados superiores de primeiro nível do campo de dados derivados.
[008] De acordo com outro aspecto, um método para classificação de segurança de dados, implementável por um computador, pode compreender a classificação de um ou mais níveis de segurança de um ou mais campos de dados fonte em um espaço de dados de acordo com uma ou mais regras, o espaço de dados compreendendo ainda um ou mais campos de dados derivados, cada um contendo dados derivados de um ou mais campos de dados superiores, em que o campo de dados superiores é o campo de dados fonte ou outro campo de dados derivados; para um campo de dados de consulta, registrar uma instrução SQL (Structured Query Language) para produzir o campo de dados de consulta; analisar a instrução SQL; construir uma árvore de linhagem com base na instrução SQL analisada, a árvore de linhagem rastreando o campo de dados de consulta para um ou mais campos de dados superiores; e determinar um nível de segurança do campo de dados de consulta com base, pelo menos, na árvore de linhagem e um ou mais níveis de segurança de um ou mais campos de dados superiores do campo de dados de consulta.
[009] Em algumas formas de realização, a determinação do nível de segurança do campo de dados de consulta com base, pelo menos, na árvore de linhagem e um ou mais níveis de segurança de um ou mais campos de dados superiores do campo de dados de consulta pode compreender (1) determinar um ou mais Nth (enésimos) níveis de segurança correspondentes a um ou mais campos de dados derivados de Nth nível que derivam de um ou mais campos de dados fonte na árvore de linhagem, com base em uma ou mais funções de derivação de Nth nível correspondentes e os níveis de segurança de um ou mais campos de dados fonte, (2) determinar um ou mais (N-1)th níveis de segurança correspondentes a um ou mais campos de dados derivados de (N-1)th nível que derivam de um ou mais campos de dados fonte e/ou os campos de dados derivados de Nth nível na árvore de linhagem, com base em uma ou mais funções de derivação correspondentes (N- 1)th e os níveis de segurança de um ou mais campos de dados fonte e/ou um ou mais níveis de segurança enésima, e repetir a etapa (2) na árvore de linhagem para os dados de consulta campo para determinar o nível de segurança do campo de dados da consulta.
[010] Em algumas formas de realização, analisar a instrução SQL pode compreender a conversão da instrução SQL em uma árvore de sintaxe abstrata, e construir a árvore de linhagem com base na instrução SQL analisada pode compreender atravessar a árvore de sintaxe abstrata para identificar relações de derivação entre o campo de dados de consulta e um ou mais campos de dados fonte e/ou campos de dados derivados.
[011] Em algumas formas de realização, os níveis de segurança do campo de dados de consulta e os campos de dados derivados podem ser determinados com base em campos de dados superiores imediatos.
[012] De acordo com outro aspecto, um sistema para classificação de segurança de dados pode compreender um processador configurado para receber uma solicitação para acessar um campo de dados de consulta, procurar o campo de dados de consulta a partir de uma tabela de nível de segurança, em resposta a encontrar o campo de dados de consulta do sistema de tabela de nível, obter da tabela de nível de segurança um nível de segurança correspondente ao campo de dados de consulta e, em resposta a não encontrar o campo de dados de consulta da tabela de nível de segurança, determinar um nível de segurança correspondente ao campo de dados de consulta com base, pelo menos, em uma árvore de linhagem e a tabela de nível de segurança. A árvore de linhagem pode rastrear o campo de dados de consulta para um ou mais campos de dados fonte e a tabela de nível de dados de segurança pode compreender um ou mais níveis de segurança correspondentes a um ou mais campos de dados fonte.
[013] De acordo com outro aspecto, um sistema para classificação de segurança de dados pode compreender um processador configurado para classificar um ou mais níveis de segurança de um ou mais campos de dados fonte em um espaço de dados, de acordo com uma ou mais regras, o espaço de dados compreendendo ainda um ou mais campos de dados, cada um contendo dados derivados de um ou mais campos de dados superiores, em que o campo de dados superiores é o campo de dados fonte ou outro campo de dados derivado, para um campo de dados de consulta, registrar uma instrução SQL (Structured Query Language) para produzir os dados de consulta campo, analisar a instrução SQL, construir uma árvore de linhagem com base na instrução SQL analisada, a árvore de linhagem rastreando o campo de dados de consulta para um ou mais campos de dados superiores e determinar um nível de segurança do campo de dados de consulta com base, pelo menos, na árvore de linhagem e um ou mais níveis de segurança de um ou mais campos de dados superiores do campo de dados de consulta.
[014] De acordo com outro aspecto, um meio de armazenamento legível por computador não transitório acoplado a um processador pode compreender instruções que, quando executadas pelo processador, fazem com que o processador execute um método para classificação de segurança de dados. O método pode compreender o recebimento de uma solicitação para acessar um campo de dados de consulta, procurando o campo de dados de consulta de uma tabela de nível de segurança, em resposta a encontrar o campo de dados de consulta da tabela de nível de segurança, obtendo da tabela de nível de segurança um nível de segurança correspondente para o campo de dados de consulta, e em resposta a não encontrar o campo de dados de consulta da tabela de nível de segurança, determinar um nível de segurança correspondente ao campo de dados de consulta com base, pelo menos, em uma árvore de linhagem e a tabela de nível de segurança. A árvore de linhagem pode rastrear o campo de dados de consulta para um ou mais campos de dados de fonte e a tabela de nível de dados de segurança pode compreender um ou mais níveis de segurança correspondentes a um ou mais campos de dados fonte.
[015] De acordo com outro aspecto, um meio de armazenamento legível por computador não transitório acoplado a um processador pode compreender instruções que, quando executadas pelo processador, fazem com que o processador execute um método para classificação de segurança de dados. O método pode compreender a classificação de um ou mais níveis de segurança de um ou mais campos de dados fonte, em um espaço de dados de acordo com uma ou mais regras, o espaço de dados compreendendo ainda um ou mais campos de dados derivados, cada um contendo dados derivados de um ou mais campos de dados superiores, em que o campo de dados superiores é o campo de dados fonte ou outro campo de dados derivados, para um campo de dados de consulta, gravar uma instrução SQL (Structured Query Language) para produzir o campo de dados de consulta, analisando a instrução SQL, construir uma árvore de linhagem com base em a instrução SQL analisada, a árvore de linhagem rastreando o campo de dados de consulta para um ou mais campos de dados superiores e determinar um nível de segurança do campo de dados de consulta com base, pelo menos, na árvore de linhagem e um ou mais níveis de segurança de um ou mais campos de dados superiores do campo de dados da consulta.
[016] De acordo com outro aspecto, um método para classificação de segurança de dados, implementável por um computador, pode compreender (1) receber uma consulta associada a um campo de dados de consulta e (2) determinar um nível de segurança do campo de dados de consulta com base em: um ou mais respectivos níveis de segurança de um ou mais campos de dados de nível superior imediato do campo de dados de consulta e uma função de derivação que deriva dados no campo de dados de consulta, a partir de dados em um ou mais campos de dados de nível superior imediatos.
[017] Em algumas formas de realização, a etapa (2) pode compreender (3) para cada um dos um ou mais campos de dados de nível superior imediato que é um campo de dados fonte, aplicação de um nível de segurança associado a cada campo de dados fonte para a determinação da etapa (2), e (4) para cada um dos um ou mais campos de dados de nível superior imediatos que não são um campo de dados fonte, repetir a etapa (2) tratando o campo de dados de nível superior imediato como o campo de dados de consulta, até obter, apenas, campos de dados de fonte para os campos de dados de nível superior imediato e aplicação da etapa (3).
[018] Estas e outras características dos sistemas, métodos e mídia legível por computador não transitória revelados neste documento, bem como os métodos de operação e funções dos elementos de estrutura relacionados e a combinação de partes e economias de fabricação, se tornarão mais aparentes após consideração da seguinte descrição e das reivindicações anexas com referência aos desenhos anexos, todos os quais fazem parte deste relatório descritivo, em que números de referência semelhantes designam partes correspondentes nas várias figuras. Deve ser expressamente entendido, no entanto, que os desenhos são para fins de ilustração e apenas descrição e não pretendem ser uma definição dos limites da invenção.
BREVE DESCRIÇÃO DOS DESENHOS
[019] Certas características de várias formas de realização da presente tecnologia são estabelecidas com particularidade nas reivindicações anexas. Uma melhor compreensão das características e vantagens da tecnologia será obtida como referência à seguinte descrição detalhada que estabelece formas de realização ilustrativas, nas quais os princípios da invenção são utilizados, e os desenhos anexos dos quais:
[020] A Figura 1 ilustra um ambiente exemplar para classificação de segurança de dados, de acordo com várias formas de realização.
[021] A Figura 2 ilustra um sistema exemplar para classificação de segurança de dados, de acordo com várias formas de realização.
[022] A Figura 3A ilustra uma árvore de linhagem exemplar para classificação de segurança de dados, de acordo com várias formas de realização.
[023] A Figura 3B ilustra outro exemplo de árvore de linhagem para classificação de segurança de dados, de acordo com várias formas de realização.
[024] A Figura 4A ilustra um fluxograma de um método exemplar para classificação de segurança de dados, de acordo com várias formas de realização.
[025] A Figura 4B ilustra um fluxograma de outro método exemplar para classificação de segurança de dados, de acordo com várias formas de realização.
[026] A Figura 4C ilustra um fluxograma de outro método exemplar para classificação de segurança de dados, de acordo com várias formas de realização.
[027] A Figura 5 ilustra um diagrama de blocos de um sistema de computador exemplar, no qual qualquer uma das formas de realização descritas no presente documento pode ser implementada.
DESCRIÇÃO DETALHADA
[028] Os métodos existentes de classificação de segurança de dados com base em regras são inadequados para fornecer proteção para uma grande quantidade de dados que estão sujeitos a alterações. As regras tradicionais rigidamente baseadas em recursos ou propriedades de um campo de dados geralmente perdem seus efeitos nas alterações no conteúdo dos dados. Além disso, os nomes de tabela ou campo comumente chamados nas regras podem capturar de forma imprecisa ou insuficiente o conteúdo de dados correspondente. Como tal, as técnicas de classificação de segurança de dados existentes exigem atualizações constantes das regras e, no entanto, ainda apresentam os dados armazenados sob riscos potenciais.
[029] Os sistemas e métodos revelados para classificação de segurança de dados, pelo menos, mitigam as desvantagens acima nas tecnologias atuais. Em várias formas de realização, alguns conjuntos de dados derivados que compreendem campos de dados derivados podem ser criados a partir de um determinado número de conjuntos de dados fonte compreendendo campos de dados fonte e mais conjuntos de dados derivados podem ser criados a partir de um ou mais conjuntos de dados derivados existentes e/ou conjuntos de dados fonte. Um espaço de dados exemplar pode compreender milhares de campos de dados fonte e milhões de campos de dados derivados. Para classificar com eficiência esses campos de dados derivados, os métodos revelados podem incorporar a linhagem de dados no processo de classificação, onde a linhagem de dados pode rastrear cada campo de dados derivados para um ou mais campos de dados fonte de determinados níveis de segurança, diretamente ou por meio de um ou mais campos de dados derivados intermediários. Pelos métodos revelados, os níveis de segurança classificados para campos de dados fonte podem ser propagados automaticamente através dos campos de dados derivados intermediários em vários níveis de acordo com suas relações de derivação para alcançar qualquer campo de dados derivados, conforme consultado e podem ser ajustados dinamicamente em resposta a qualquer mudança nas relações de derivação ou o conteúdo dos dados. Assim, os métodos revelados evitam a criação constante de regras de classificação tradicionais para campos de dados derivados recém-adicionados ou alterados e podem evitar classificações errôneas que dependem de nomes de tabela ou campo. No geral, a segurança dos dados pode ser significativamente aprimorada.
[030] A figura 1 ilustra um ambiente 100 exemplar para classificação de segurança de dados, de acordo com várias formas de realização. Como mostrado na figura 1, o sistema exemplar 100 pode compreender, pelo menos, um sistema de computação 102 que inclui um ou mais processadores 104 e memória 106. A memória 106 pode ser não transitória e legível por computador. A memória 106 pode armazenar instruções que, quando executadas por um ou mais processadores 104, fazem com que um ou mais processadores 104 executem várias operações descritas no presente documento. O sistema 102 pode ser implementado em ou como vários dispositivos, como telefone celular, tablet, servidor, computador, dispositivo vestível (relógio inteligente), etc. O sistema 102 pode ser instalado com software apropriado (por exemplo, programa de transferência de dados etc.) e/ou hardware (por exemplo, conexões com fio, conexões sem fio etc.) para acessar outros dispositivos do sistema 100.
[031] O sistema 100 pode incluir um ou mais armazenamentos de dados (por exemplo, um armazenamento de dados 108) e um ou mais dispositivos de computação (por exemplo, um dispositivo de computação 109) que são acessíveis ao sistema 102. Em algumas formas de realização, o sistema 102 pode ser configurado para obter dados do armazenamento de dados 108 (por exemplo, um banco de dados em nuvem) e/ou o dispositivo de computação 109 (por exemplo, um servidor, um telefone móvel, um computador de veículo).
[032] O sistema 100 pode incluir ainda um ou mais dispositivos de computação (por exemplo, um dispositivo de computação 107) acoplado ao sistema 102. Em algumas formas de realização, o sistema 107 pode ser implementado como um servidor, um telefone móvel, um computador de veículo, um tablet, um dispositivo vestível (relógio inteligente), etc.
[033] Em algumas formas de realização, o sistema 102 e um ou mais dos dispositivos de computação (por exemplo, o dispositivo de computação 109) podem ser integrados em um único dispositivo ou sistema. Alternativamente, o sistema 102 e um ou mais dispositivos de computação podem operar como dispositivos separados. O um ou mais armazenadores de dados (por exemplo, o armazenamento de dados 108) podem estar em qualquer lugar acessível ao sistema 102, por exemplo, na memória 106, no dispositivo de computação 109, em outro dispositivo (por exemplo, dispositivo de armazenamento de rede) acoplado ao sistema 102, ou outro local de armazenamento (por exemplo, sistema de armazenamento com base em nuvem, sistema de arquivos de rede etc.), etc. O sistema 102 pode ser implementado como um único sistema ou múltiplos sistemas acoplados uns aos outros. Um espaço de dados que compreende vários conjuntos de dados fonte e conjuntos de dados derivados pode ser fornecido pelo único sistema ou distribuído por vários sistemas. Em geral, o sistema 102, o dispositivo de computação 109, o armazenamento de dados 108 e o sistema 107 podem ser capazes de se comunicar um com o outro através de uma ou mais redes com ou sem fio (por exemplo, a Internet) através das quais os dados podem ser comunicados.
[034] A figura 2 ilustra um sistema exemplar 200 para classificação de segurança de dados, de acordo com várias formas de realização. As operações mostradas na figura 2 e apresentados a seguir têm o objetivo de serem ilustrativas. Em várias formas de realização, o sistema 102 pode ser configurado para implementar um espaço de dados (por exemplo, armazém de dados). O espaço de dados pode compreender dados coletados de sistemas fora do armazém de dados (por exemplo, do armazenamento de dados 108 ou do dispositivo de computação 109) e organizados de acordo com os campos de dados fonte (por exemplo, nome do funcionário, salário ou outros campos de dados armazenados em formato de tabela). Em algumas formas de realização, um campo de dados pode ser considerado como uma coluna em uma tabela de dados que armazena várias entradas de dados. O sistema 102 pode ser configurado para implementar várias etapas e métodos de classificação de segurança de dados descritos no presente documento.
[035] Em várias formas de realização, o dispositivo de computação 107 pode consultar o sistema 102 quanto ao nível de segurança de certos dados ou de certos campos de dados no espaço de dados. Alternativamente, o dispositivo de computação 107 pode consultar o sistema 102 para certos dados no espaço de dados. O sistema 102 pode autenticar o usuário atual do dispositivo de computação 107, por exemplo, com base nas informações de login e determinar se a autorização do usuário atual satisfaz o nível de segurança dos dados consultados. Correspondentemente, o sistema 102 pode retornar os dados ou negar acesso e retornar os resultados correspondentes.
[036] Em algumas formas de realização, o sistema 102 pode receber uma solicitação para acessar um determinado campo de dados (o "campo de dados de consulta"). O campo de dados pode ser associado a uma categoria de entradas de dados de um espaço de dados (por exemplo, um armazém de dados) armazenado na memória 106 e/ou vários outros espaços de armazenamento. O espaço de dados pode armazenar os dados em vários formatos (por exemplo, conjuntos de dados tabulares) e organizados pelos campos de dados. Por exemplo, para o campo de dados “empregar nome”, os dados correspondentes no campo de dados podem incluir “John Doe”, “Luke Webb”, etc. Quando alguns ou todos os dados no campo de dados são consultados por um usuário, o nível de segurança do campo de dados é necessário para determinar se o usuário, conforme autenticado, tem autorização para acessar os dados. No presente documento, o sistema 102 pode pesquisar o campo de dados de consulta a partir de uma tabela de nível de segurança. A tabela de nível de segurança pode ser armazenada na memória 106 ou de outra forma acessível ao processador 104. A tabela de nível de segurança pode incluir níveis de segurança de vários campos de dados fonte. Por exemplo, dados brutos coletados de sistemas fora do armazém de dados podem ser considerados como dados fonte e atribuídos aos campos de dados fonte correspondentes. Os níveis de segurança dos campos de dados fonte podem ser determinados com base em regras. Por exemplo, uma regra para a classificação de campos de dados fonte pode ser que qualquer campo de dados contendo a palavra “ID” em seu nome de campo seja atribuído ao nível de segurança mais alto. Um versado na técnica pode apreciar a aplicação de vários outros métodos alternativos para classificar os níveis de segurança dos campos de dados fonte.
[037] No presente documento, depois de pesquisar a tabela de nível de segurança, o sistema 102 pode, em resposta à localização do campo de dados de consulta da tabela de nível de segurança, obter da tabela de nível de segurança um nível de segurança correspondente ao campo de dados de consulta. Em resposta a não encontrar o campo de dados de consulta na tabela de nível de segurança, determinar um nível de segurança correspondente ao campo de dados de consulta com base, pelo menos, em uma árvore de linhagem e na tabela de nível de segurança. A árvore de linhagem pode rastrear o campo de dados de consulta para um ou mais campos de dados fonte e a tabela de nível de dados de segurança pode compreender um ou mais níveis de segurança correspondentes a um ou mais campos de dados fonte. Conforme descrito, o espaço de dados pode compreender campos de dados fonte e campos de dados derivados. Alguns campos de dados derivados podem ser obtidos de um ou mais campos de dados fonte e mais campos de dados derivados podem ser obtidos de um ou mais campos de dados derivados existentes e/ou um ou mais campos de dados fonte. Assim, qualquer campo de dados derivados pode ser rastreado de volta, em uma ou mais extremidades por meio de camadas de campos de dados derivados intermediários, se necessário, para eventualmente alcançar o (s) campo (s) de dados fonte em sua árvore de linhagem. Além disso, cada derivação pode corresponder a uma função de derivação, e a função de derivação pode ser associada a uma conversão do (s) nível (es) de segurança do (s) campo (s) de dados superiores para o nível de segurança do campo de dados originado (filho). Assim, os níveis de segurança do (s) campo (s) de dados fonte podem ser usados para obter os níveis de segurança da próxima camada de campos de dados derivados e aplicados recursivamente à próxima camada para obter os níveis de segurança de todos os campos de dados derivados.
[038] Com referência à figura 3A, figura 3A ilustra uma árvore de linhagem exemplar para classificação de segurança de dados, de acordo com várias formas de realização. As operações mostradas na figura 3A e apresentadas abaixo têm a intenção de ser ilustrativas. Esta figura ilustra a árvore de linhagem para o campo de dados derivado D0. Nesta figura, todos os campos de dados fonte estão em círculos e todos os campos de dados derivados estão em quadrados. Os campos de dados fonte podem ser considerados como raízes da árvore de linhagem, e os campos de dados derivados podem ser considerados como ramos ou folhas. Em algumas formas de realização, a árvore de linhagem pode rastrear um campo de dados derivados (por exemplo, campo de dados D0) para um ou mais campos de dados superiores de primeiro nível (por exemplo, campos de dados D1A, D1B e O1) que estão imediatamente acima dos dados arquivados D0. Cada primeiro campo de dados superiores de primeiro nível pode ser o campo de dados fonte (por exemplo, O1) ou um campo de dados derivado de primeiro nível (por exemplo, campos de dados D1A e D1B), e o campo de dados derivado pode derivar de um ou mais campos de superiores de primeiro nível com base em uma função derivada. Para o campo de dados derivados de primeiro nível, a árvore de linhagem pode rastrear o campo de dados derivados de primeiro nível para um ou mais campos de dados superiores de segundo nível (por exemplo, rastrear o campo de dados D1A para o campo de dados D2A, rastrear o campo de dados D1B para o campo de dados D2A e O2), sendo cada campo de dados superiores de segundo nível o campo de dados fonte ou um campo de dados derivado de segundo nível, e o campo de dados derivado de primeiro nível derivado de um ou mais campos de dados superiores de segundo nível com base em outra função derivada. O rastreamento pode ser replicável em qualquer campo de dados derivados até rastrear para um ou mais dos campos de dados fonte (por exemplo, o campo de dados D2A pode ser posteriormente rastreado para O3 e O1 e nenhum rastreamento adicional é necessário a partir dos campos de dados fonte). Os vários níveis de campos de dados derivados são relativos ao campo de dados DO. Ou seja, o nível pode ser o número de caminhos com setas necessários na árvore de linhagem para alcançar o campo de dados DO. Cada seta pode se referir a uma derivação correspondente a uma função derivada, apontando de um campo de dados superiores para um campo de dados originado (qualquer campo de dados fonte ou campo de dados derivados pode ser um campo de dados superiores, e apenas um campo de dados derivado pode ser um campo de dados originado). A função de derivação pode ser qualquer algoritmo ou equivalente, como soma, adição, multiplicação, contagem etc., conforme designado por um usuário. Por exemplo, o campo de dados D1A pode ser uma soma das entradas de dados no campo de dados D2A. Para outro exemplo, o campo de dados D2A e o campo de dados O2 podem ter o mesmo número de entradas e o campo de dados D1B pode ser uma adição uma a uma das entradas de dados de D2A e das entradas de dados de O2.
[039] Além disso, a árvore de linhagem pode compreender as funções de derivação, cada uma associada a uma conversão de nível de segurança do (s) campo (s) de dados superiores correspondente (s) para o campo de dados originado. Essa relação correspondente pode ser armazenada em uma tabela. Por exemplo, para a função de soma (somando entradas em dois ou mais campos de dados superiores em um campo de data originado), o nível de segurança de dados mais alto entre os campos de dados superiores é passado para o nível de segurança do campo de dados originado. Ou seja, o nível de segurança do campo de dados derivados obtidos pode ser o mais alto dos níveis de segurança dos campos de dados superiores de primeiro nível. Para outro exemplo, para a função de contagem (contando um número de entradas de dados em um campo de dados superiores para obter um campo de dados originado), o nível de segurança do campo de dados originado pode ser definido para um nível arbitrariamente baixo. Assim, a determinação o nível de segurança correspondente ao campo de dados de consulta com base, pelo menos, na árvore de linhagem e a tabela de nível de segurança pode compreender, para cada campo de dados derivados em qualquer nível, obter o nível de segurança do campo de dados derivados com base, pelo menos, em (1) a função derivada do campo de dados derivados e (2) níveis de segurança dos campos de dados superiores de primeiro nível do campo de dados derivados. Tal algoritmo de determinação pode ser aplicado recursivamente camada por camada para, eventualmente, vincular aos níveis de segurança conhecidos dos campos de dados fonte na tabela de nível de segurança às raízes da árvore de linhagem e, portanto, conectando os níveis de segurança dos campos de fonte, o nível de segurança do campo de dados D0 pode ser obtido. Além disso, os níveis de segurança de qualquer campo de dados derivados podem ser atualizados automaticamente e dinamicamente, com qualquer alteração nos dados (por exemplo, alteração das entradas de dados, alteração das funções de derivação, adição de campos de dados etc.).
[040] Em algumas formas de realização, a determinação do nível de segurança correspondente ao campo de dados de consulta com base, pelo menos, na árvore de linhagem e a tabela de nível de segurança pode compreender ainda determinar um dos campos de dados derivados (por exemplo, o campo de dados D0) correspondente ao campo de dados de consulta e usando o nível de segurança do campo de dados derivados determinados como o nível de segurança do campo de dados de consulta. Ou seja, se o campo de dados da consulta for D0, o nível de segurança do D0 pode ser invocado para processar a consulta. Em algumas outras formas de realização, como descrito acima, se o campo de dados de consulta corresponder a um campo de dados armazenados na tabela de nível de segurança, o nível de segurança correspondente ao campo de dados armazenados pode ser obtido diretamente a partir da tabela de nível de segurança como o nível de segurança correspondente ao campo de dados da consulta.
[041] Com referência à figura 2, a fim de retornar com precisão o nível de segurança do campo de dados de consulta, o sistema 102 pode ser configurado para executar várias etapas com antecedência. Em algumas formas de realização, o sistema 102 pode classificar um ou mais níveis de segurança de um ou mais campos de dados fonte em um espaço de dados de acordo com uma ou mais regras. Conforme descrito acima, além dos campos de dados fonte, o espaço de dados pode compreender ainda um ou mais campos de dados derivados, cada um contendo dados derivados de um ou mais campos de dados superiores, em que o campo de dados superiores é o campo de dados fonte ou outro dado derivado campo. Ao receber uma consulta para um campo de dados de consulta, o sistema 102 pode gravar campo de dados derivado existente e o número contado pode se tornar um campo de dados recém-derivado. A gravação pode ser realizada em tempo real. Então, o sistema 102 pode analisar a instrução SQL (por uma instrução SQL (Structured Query Language) para produzir o campo de dados de consulta. Por exemplo, uma instrução SQL pode compreender a contagem de um número de entradas de dados em um exemplo, convertendo a instrução SQL em uma árvore de sintaxe abstrata) e construir uma árvore de linhagem com base na instrução SQL analisada, a árvore de linhagem rastreando o campo de dados de consulta para um ou mais campos de dados superiores. Por exemplo, para analisar a instrução SQL, o sistema 102 pode converter a instrução SQL em uma árvore de sintaxe abstrata e para construir a árvore de linhagem, o sistema 102 pode percorrer a árvore de sintaxe abstrata para identificar relações de derivação entre o campo de dados de consulta e um ou mais dos campos de dados fonte e/ou campos de dados derivados. Por conseguinte, o sistema 102 pode determinar um nível de segurança do campo de dados de consulta com base, pelo menos, na árvore de linhagem e um ou mais níveis de segurança de um ou mais campos de dados superiores do campo de dados de consulta.
[042] Com referência à figura 3B, a figura 3B ilustra outra árvore de linhagem exemplar para classificação de segurança de dados, de acordo com várias formas de realização. As operações mostradas na figura 3B e apresentadas abaixo têm o propósito ilustrativo. Os símbolos na figura 3B são semelhantes aos da figura 3A descrita acima. A árvore de linhagem ilustrada na figura 3B pode ser considerada como uma generalização da árvore de linhagem ilustrada na figura 3A. Em algumas formas de realização, para determinar o nível de segurança do campo de dados de consulta com base, pelo menos, na árvore de linhagem e um ou mais níveis de segurança de um ou mais campos de dados superiores do campo de dados de consulta, o sistema 102 pode: (1) determinar um ou mais Nth níveis de segurança correspondentes a um ou mais campos de dados derivados de Nth nível derivados de um ou mais campos de dados fonte na árvore de linhagem com base em uma ou mais funções de derivação de enésimas e os níveis de segurança de um ou mais campos de dados fonte; (2) determinar um ou mais (N-1)th níveis de segurança correspondentes a um ou mais campos de dados derivados de (N-1)th nível derivando de um ou mais campos de dados fonte e/ou os campos de dados derivados de Nth nível na árvore de linhagem com base em uma ou mais funções de derivação (N-1)th correspondentes e os níveis de segurança de um ou mais campos de dados fonte e/ou um ou mais Nth níveis de segurança; e repetir a etapa (2) na árvore de linhagem em direção ao campo de dados de consulta para determinar o nível de segurança do campo de dados de consulta. Aqui, os níveis de segurança do campo de dados de consulta e os campos de dados derivados podem ser determinados com base nos campos de dados superiores imediatos (campos de dados superiores apontando diretamente para o campo de dados originado). Por exemplo, os níveis de segurança dos campos de dados de Nth nível podem ser obtidos daqueles dos campos de dados fonte, os níveis de segurança dos campos de dados de nível (N-1)th podem ser obtidos daqueles dos campos de dados de nível N, e assim por diante para obter o nível de segurança de D0. Nesta figura, o nível de um campo de dados originado está um nível abaixo do nível mais baixo de seu campo de dados superiores. Por exemplo, o campo de dados D (N-1)th B deriva do campo de dados fonte OC e do campo de dados derivados DNB. Uma vez que o campo de dados DNB de Nth nível é o mais baixo entre todos os campos de dados superiores do campo de dados D (N-1)th B (aqui, nível original > Nth nível > (N-1)th nível), o nível do campo de dados D (N-1)th B é (N-1)th.
[043] Como tal, o nível de segurança de qualquer campo de dados derivados pode ser determinado com base em seu rastreamento de árvore de linhagem para os níveis de segurança de um ou mais campos de dados fonte. No espaço de dados, cada árvore de linhagem individual pode capturar a mudança dinâmica do campo de dados derivado correspondente. Uma vez que o número de campos de dados fonte pode ser mais estável e muito menor em tamanho do que os campos de dados derivados, a classificação dos campos de dados fonte pode ser preenchida com antecedência e aplicada às árvores de linhagem para obter os níveis de segurança dos campos de dados derivados de acordo com os vários níveis de funções de derivação.
[044] A figura 4A ilustra um fluxograma de um método exemplar 400, de acordo com várias formas de realização da presente revelação. O método 400 pode ser implementado em vários ambientes, incluindo, por exemplo, o ambiente 100 da figura 1. O método exemplar 400 pode ser implementado por um ou mais componentes do sistema 102 (por exemplo, o processador 104, a memória 106). O método exemplar 400 pode ser implementado por vários sistemas semelhantes ao sistema 102 (por exemplo, um computador). As operações do método 400 apresentadas abaixo se destinam a ser ilustrativas. Dependendo da implementação, o método exemplar 400 pode incluir etapas adicionais, menos ou alternativas realizadas em várias ordens ou em paralelo.
[045] No bloco 402, um pedido para acessar um campo de dados de consulta pode ser recebido. No bloco 404, o campo de dados de consulta pode ser pesquisado a partir de uma tabela de nível de segurança. No bloco 406, em resposta a encontrar o campo de dados de consulta da tabela de nível de segurança, um nível de segurança correspondente ao campo de dados de consulta pode ser obtido a partir da tabela de nível de segurança. No bloco 408, em resposta a não encontrar o campo de dados de consulta da tabela de nível de segurança, um nível de segurança correspondente ao campo de dados de consulta pode ser determinado com base, pelo menos, em uma árvore de linhagem e na tabela de nível de segurança. A árvore de linhagem pode rastrear o campo de dados de consulta para um ou mais campos de dados fonte e a tabela de nível de dados de segurança pode compreender um ou mais níveis de segurança correspondentes a um ou mais campos de dados fonte.
[046] A figura 4B ilustra um fluxograma de um método exemplar 410, de acordo com várias formas de realização da presente revelação. O método 410 pode ser implementado em vários ambientes, incluindo, por exemplo, o ambiente 100 da figura 1. O método exemplar 410 pode ser implementado por um ou mais componentes do sistema 102 (por exemplo, o processador 104, a memória 106). O método exemplar 410 pode ser implementado por vários sistemas semelhantes ao sistema 102 (por exemplo, um computador). As operações do método 410 apresentadas abaixo têm como objetivo ser ilustrativas. Dependendo da implementação, o método exemplar 410 pode incluir etapas adicionais, menos ou alternativas realizadas em várias ordens ou em paralelo.
[047] No bloco 412, um ou mais níveis de segurança de um ou mais campos de dados fonte em um espaço de dados podem ser classificados de acordo com uma ou mais regras, o espaço de dados compreendendo ainda um ou mais campos de dados derivados, cada um contendo dados derivados de um ou mais campos de dados superiores, em que o campo de dados superiores é o campo de dados fonte ou outro campo de dados derivados. No bloco 414, para um campo de dados de consulta, uma instrução SQL (Structured Query Language) para produzir o campo de dados de consulta pode ser gravada. No bloco 416, a instrução SQL pode ser analisada. No bloco 418, uma árvore de linhagem com base na instrução SQL analisada pode ser construída, a árvore de linhagem rastreando o campo de dados de consulta para um ou mais campos de dados superiores. No bloco 419, um nível de segurança do campo de dados de consulta pode ser determinado com base, pelo menos, na árvore de linhagem e um ou mais níveis de segurança de um ou mais campos de dados superiores do campo de dados de consulta.
[048] A figura 4C ilustra um fluxograma de um método exemplar 420, de acordo com várias formas de realização da presente revelação. O método 420 pode ser implementado em vários ambientes, incluindo, por exemplo, o ambiente 100 da figura 1. O método exemplar 420 pode ser implementado por um ou mais componentes do sistema 102 (por exemplo, o processador 104, a memória 106). O método exemplar 420 pode ser implementado por vários sistemas semelhantes ao sistema 102 (por exemplo, um computador). As operações do método 420 apresentadas abaixo têm como objetivo ser ilustrativas. Dependendo da implementação, o método exemplar 420 pode incluir etapas adicionais, menos ou alternativas realizadas em várias ordens ou em paralelo.
[049] No bloco 422, uma consulta associada a um campo de dados de consulta pode ser recebida. Por exemplo, a consulta pode invocar certos dados no campo de dados da consulta, certas propriedades do campo de dados da consulta etc. No bloco 424, um nível de segurança do campo de dados de consulta pode ser determinado com base em: um ou mais respectivos níveis de segurança de um ou mais campos de dados de nível superior imediato do campo de dados de consulta e uma função de derivação derivando dados no campo de dados de consulta dos dados em um ou mais campos de dados de nível superior imediatos. Conforme descrito acima, os campos de dados de consulta podem ser rastreados até seus campos de dados superiores de primeiro nível (um ou mais campos de dados de nível superior imediatos), que podem incluir campos de dados fonte e/ou campos de dados derivados de primeiro nível. Os campos de dados derivados de primeiro nível podem ser rastreados de forma semelhante a seus um ou mais campos de dados de nível superior imediato, respectivamente, e cada frente de rastreamento pode terminar nos campos de dados fonte. Aqui, os níveis de segurança dos campos de dados intermediários (os campos de dados na árvore de linhagem do campo de dados de consulta, exceto os campos de dados fonte e o campo de dados de consulta) podem ser gerados dinamicamente e obtidos quando o campo de dados de consulta é recebido, e não podem necessariamente ser pré-armazenados e pesquisados. Em algumas formas de realização, para cada um dos um ou mais campos de dados de nível superior imediato que é um campo de dados fonte, um nível de segurança associado a cada campo de dados fonte para determinação do bloco 424 pode ser aplicado. Para cada um dos um ou mais campos de dados de nível superior imediatos que não são um campo de dados fonte, o bloco 424 pode ser repetido tratando o campo de dados de nível superior imediato como o campo de dados de consulta, até que apenas os campos de dados fonte sejam obtidos para os campos de dados de nível superior imediatos e um nível de segurança associado a cada campo de dados fonte pode ser aplicado para determinação do bloco 424.
[050] As técnicas descritas no presente documento são implementadas por um ou mais dispositivos de computação para fins especiais. Os dispositivos de computação para fins especiais podem ser conectados para executar as técnicas ou podem incluir circuitos ou dispositivos eletrônicos digitais, como um ou mais circuitos integrados específicos de aplicação (ASICs) ou matrizes de portas programáveis de campo (FPGAs) que são persistentemente programadas para executar as técnicas ou podem incluir um ou mais processadores de hardware programados para executar as técnicas de acordo com as instruções do programa no firmware, memória, outro armazenamento ou uma combinação. Esses dispositivos de computação para fins especiais também podem combinar lógica com fio personalizado, ASICs ou FPGAs com programação personalizada para realizar as técnicas. Os dispositivos de computação para fins especiais podem ser sistemas de computador desktop, sistemas de computador servidor, sistemas de computador portátil, dispositivos portáteis, dispositivos de rede ou qualquer outro dispositivo ou combinação de dispositivos que incorporam lógica de programa e/ou com fio para implementar as técnicas. Os dispositivos de computação são geralmente controlados e coordenados por software de sistema operacional. Os sistemas operacionais convencionais controlam e agendam processos de computador para execução, realizam gerenciamento de memória, fornecem sistema de arquivos, rede, serviços de I/O e fornecem uma funcionalidade de interface de usuário, como uma interface gráfica de usuário ("GUI"), entre outras coisas.
[051] A figura 5 é um diagrama de blocos que ilustra um sistema de computador 500 no qual qualquer uma das formas de realização descritas no presente documento pode ser implementada. O sistema 500 pode corresponder ao sistema 102 descrito acima. O sistema de computador 500 inclui um barramento 502 ou outro mecanismo de comunicação para comunicar informações, um ou mais processadores de hardware 504 acoplados ao barramento 502 para processar informações. O (s) processador (es) de hardware 504 pode(m) ser, por exemplo, um ou mais microprocessadores de uso geral. O (s) processador (es) 504 pode (m) corresponder ao processador 104 descrito acima.
[052] O sistema de computador 500 também inclui uma memória principal 506, tal como uma memória de acesso aleatório (RAM), cache e/ou outros dispositivos de armazenamento dinâmico, acoplada ao barramento 502 para armazenar informações e instruções a serem executadas pelo processador 504. A memória principal 506 também pode ser usada para armazenar variáveis temporárias ou outras informações intermediárias durante a execução de instruções a serem executadas pelo processador 504. Tais instruções, quando armazenadas em mídia de armazenamento acessível ao processador 504, renderizam o sistema de computador 500 em uma máquina de propósito especial que é personalizada para realizar as operações especificadas nas instruções. O sistema de computador 500 inclui ainda uma memória somente leitura (ROM) 508 ou outro dispositivo de armazenamento estático acoplado ao barramento 502 para armazenar informações estáticas e instruções para o processador 504. Um dispositivo de armazenamento 510, como um disco magnético, disco óptico ou pendrive USB (flash drive), etc., é fornecido e acoplado ao barramento 502 para armazenar informações e instruções. A memória principal 506, a ROM 508 e/ou o armazenamento 510 podem corresponder à memória 106 descrita acima.
[053] O sistema de computador 500 pode implementar as técnicas descritas neste documento usando lógica com fio personalizado, um ou mais ASICs ou FPGAs, firmware e/ou lógica de programa que em combinação com o sistema de computador faz ou programa o sistema de computador 500 para ser uma máquina de propósito especial. De acordo com uma forma de realização, as técnicas do presente documento são realizadas pelo sistema de computador 500, em resposta ao (s) processador (es) 504 executando uma ou mais sequências de uma ou mais instruções contidas na memória principal 506. Tais instruções podem ser lidas na memória principal 506 a partir de outro meio de armazenamento, como o dispositivo de armazenamento 510. A execução das sequências de instruções contidas na memória principal 506 faz com que o (s) processador (es) 504 realizem as etapas do processo descritas no presente documento. Em formas de realização alternativas, os circuitos com fio podem ser usados no lugar ou em combinação com as instruções do software.
[054] A memória principal 506, a ROM 508 e/ou o armazenamento 510 podem incluir meios de armazenamento não transitórios. O termo "mídia não transitória" e termos semelhantes, conforme usados neste documento, referem-se a qualquer mídia que armazena dados e/ou instruções que fazem com que uma máquina opere de uma maneira específica. Tais meios não transitórios podem compreender meios não voláteis e/ou meios voláteis. A mídia não volátil inclui, por exemplo, discos ópticos ou magnéticos, como o dispositivo de armazenamento 510. A mídia volátil inclui memória dinâmica, como a memória principal 506. Formas comuns de mídia não transitória incluem, por exemplo, um disquete, um disco flexível, disco rígido, unidade de estado sólido, fita magnética ou qualquer outro meio de armazenamento de dados magnéticos, um CD-ROM, qualquer outro meio de armazenamento de dados ópticos, qualquer meio físico com padrões de orifícios, uma RAM, uma PROM e EPROM, uma FLASH-EPROM, NVRAM, qualquer outro chip de memória ou cartucho e versões em rede dessas.
[055] O sistema de computador 500 também inclui uma interface de rede 518 acoplada ao barramento 502. A interface de rede 518 fornece um acoplamento de comunicação de dados bidirecional a um ou mais links de rede que estão conectados a uma ou mais redes locais. Por exemplo, a interface de rede 518 pode ser uma placa de rede digital de serviços integrados (ISDN), modem a cabo, modem via satélite ou um modem para fornecer uma conexão de comunicação de dados a um tipo correspondente de linha telefônica. Como outro exemplo, a interface de rede 518 pode ser uma placa de rede local (LAN) para fornecer conexão de comunicação de dados a uma LAN compatível (ou componente WAN para comunicar com uma WAN). Links sem fio também podem ser implementados. Em qualquer implementação, a interface de rede 518 envia e recebe eletricidade, sinais eletromagnéticos ou ópticos que transportam fluxos de dados digitais que representam vários tipos de informações.
[056] O sistema de computador 500 pode enviar mensagens e receber dados, incluindo código de programa, através da (s) rede (s), link de rede e interface de rede 518. No exemplo da Internet, um servidor pode transmitir um código solicitado para um programa de aplicativo através da Internet, do ISP, da rede local e da interface de rede 518.
[057] O código recebido pode ser executado pelo processador 504 conforme é recebido e/ou armazenado no dispositivo de armazenamento 510 ou outro armazenamento não volátil para execução posterior.
[058] Cada um dos processos, métodos e algoritmos descritos nas seções anteriores podem ser incorporados e total ou parcialmente automatizados por módulos de código executados por um ou mais sistemas de computador ou processadores de computador que compreendem hardware de computador. Os processos e algoritmos podem ser implementados parcial ou totalmente em circuitos específicos do aplicativo.
[059] Os vários recursos e processos descritos acima podem ser usados independentemente uns dos outros ou podem ser combinados de várias maneiras. Todas as combinações e subcombinações possíveis se destinam a cair dentro do escopo desta revelação. Além disso, certos métodos ou blocos de processo podem ser omitidos em algumas implementações. Os métodos e processos descritos neste documento também não estão limitados a qualquer sequência particular, e os blocos ou estados relacionados aos mesmos podem ser realizados em outras sequências que são apropriadas. Por exemplo, os blocos ou estados descritos podem ser executados em uma ordem diferente daquela especificamente revelada, ou vários blocos ou estados podem ser combinados em um único bloco ou estado. Os blocos ou estados exemplares podem ser executados em série, em paralelo ou de alguma outra maneira. Blocos ou estados podem ser adicionados ou removidos das formas de realização exemplares reveladas. Os sistemas e componentes exemplares descritos neste documento podem ser configurados de forma diferente do descrito. Por exemplo, os elementos podem ser adicionados, removidos ou reorganizados em comparação com as formas de realização exemplares reveladas.
[060] As várias operações de métodos exemplares descritos neste documento podem ser realizadas, pelo menos parcialmente, por um algoritmo. O algoritmo pode ser compreendido em códigos de programa ou instruções armazenadas em uma memória (por exemplo, um meio de armazenamento legível por computador não transitório descrito acima). Esse algoritmo pode compreender um algoritmo de aprendizado de máquina. Em algumas formas de realização, um algoritmo de aprendizado de máquina pode não programar explicitamente os computadores para executar uma função, mas pode aprender a partir dos dados de treinamento a fazer um modelo de predições que executa a função.
[061] As várias operações dos métodos exemplares descritos neste documento podem ser realizadas, pelo menos parcialmente, por um ou mais processadores que são temporariamente configurados (por exemplo, por software) ou permanentemente configurados para executar as operações relevantes. Se configurados temporária ou permanentemente, tais processadores podem constituir motores implementados por processador que operam para realizar uma ou mais operações ou funções descritas no presente documento.
[062] Da mesma forma, os métodos descritos neste documento podem ser pelo menos parcialmente implementados em processador, com um processador ou processadores específicos sendo um exemplo de hardware. Por exemplo, pelo menos algumas das operações de um método podem ser realizadas por um ou mais processadores ou motores implementados por processador. Além disso, um ou mais processadores também podem operar para suportar o desempenho das operações relevantes em um ambiente de "computação em nuvem" ou como um "software as a service" (SaaS). Por exemplo, pelo menos algumas das operações podem ser realizadas por um grupo de computadores (como exemplos de máquinas, incluindo processadores), com essas operações sendo acessíveis através de uma rede (por exemplo, a Internet) e através de uma ou mais interfaces apropriadas (por exemplo, uma interface de programa de aplicativo (API)).
[063] O desempenho de algumas das operações pode ser distribuído entre os processadores, não apenas residindo em uma única máquina, mas implantado em várias máquinas. Em algumas formas de realização exemplares, os processadores ou motores implementados por processador podem estar localizados em uma única localização geográfica (por exemplo, dentro de um ambiente doméstico, um ambiente de escritório ou um campo de servidores). Em outras formas de realização exemplares, os processadores ou motores implementados por processador podem ser distribuídos em uma série de localizações geográficas.
[064] Ao longo deste relatório descritivo, várias instâncias podem implementar componentes, operações ou estruturas descritas como uma única instância. Embora as operações individuais de um ou mais métodos sejam ilustradas e descritas como operações separadas, uma ou mais das operações individuais podem ser realizadas simultaneamente e nada requer que as operações sejam realizadas na ordem ilustrada. Estruturas e funcionalidades apresentadas como componentes separados em configurações exemplares podem ser implementadas como uma estrutura ou componente combinado. Da mesma forma, estruturas e funcionalidades apresentadas como um único componente podem ser implementadas como componentes separados. Estas e outras variações, modificações, acréscimos e melhorias estão dentro do escopo do assunto aqui.
[065] Embora uma visão geral do assunto tenha sido descrita com referência às formas de realização exemplares específicas, várias modificações e mudanças podem ser feitas a essas formas de realização, sem se afastar do escopo mais amplo de formas de realização da presente revelação. Tais formas de realização da matéria podem ser referidas neste documento, individual ou coletivamente, pelo termo "invenção", meramente por conveniência e sem a intenção de limitar voluntariamente o escopo deste pedido a qualquer revelação ou conceito único se mais de um for, de fato, revelado.
[066] As formas de realização ilustradas neste documento são descritas em detalhes suficientes para permitir que os versados na técnica pratiquem os ensinamentos revelados. Outras formas de realização podem ser usadas e derivadas das mesmas, de modo que substituições e mudanças estruturais e lógicas possam ser feitas sem se afastar do escopo desta revelação. A Descrição Detalhada, portanto, não deve ser tomada em um sentido limitante, e o escopo de várias formas de realização é definido apenas pelas reivindicações anexas, juntamente com a gama completa de equivalentes aos quais tais reivindicações têm direito.
[067] Quaisquer descrições de processos, elementos ou blocos nos fluxogramas descritos no presente documento e/ou representados nas figuras anexas devem ser entendidos como potencialmente representando módulos, segmentos ou porções de código que incluem uma ou mais instruções executáveis para implementar funções lógicas ou etapas específicas no processo. Implementações alternativas estão incluídas dentro do escopo das formas de realização descritas neste documento, em que elementos ou funções podem ser excluídos, executados fora da ordem mostrada ou discutida, incluindo substancial e simultaneamente ou, em ordem reversa, dependendo da funcionalidade envolvida, como seria entendido por aqueles versados na técnica.
[068] Conforme usado neste documento, o termo "ou" pode ser interpretado em um sentido inclusivo ou exclusivo. Além disso, várias instâncias podem ser fornecidas para recursos, operações ou estruturas descritas no presente documento como uma única instância. Além disso, os limites entre vários recursos, operações, mecanismos e armazenamentos de dados são um tanto arbitrários e operações específicas são ilustradas em um contexto de configurações ilustrativas específicas. Outras alocações de funcionalidade são previstas e podem cair dentro do escopo de várias formas de realização da presente revelação. Em geral, as estruturas e a funcionalidade apresentadas como recursos separados nas configurações exemplares podem ser implementadas como uma estrutura ou recurso combinado. Da mesma forma, estruturas e funcionalidades apresentadas como um único recurso podem ser implementadas como recursos separados. Estas e outras variações, modificações, adições e melhorias se encontram no escopo das formas de realização da presente revelação, conforme representado pelas reivindicações anexas. O relatório descritivo e os desenhos devem ser considerados como ilustrativos e ao restritivos.
[069] Linguagem condicional, como, entre outros, "pode", "poderia", a menos que especificamente declarado de outra forma, ou de outra forma entendida dentro do contexto como usado, é geralmente destinada a transmitir que certas formas de realização incluem, enquanto outras formas de realização não incluem certos recursos, elementos e/ou etapas. Assim, tal linguagem condicional geralmente não se destina a implicar que recursos, elementos e/ou etapas são de alguma forma necessários para uma ou mais formas de realização ou que uma ou mais formas de realização incluem, necessariamente, lógica para decidir, com ou sem entrada ou solicitação do usuário, se esses recursos, elementos e/ou etapas estão incluídos ou devem ser realizados em qualquer forma de realização particular.

Claims (6)

1. Método para classificação de segurança de dados, implementável por um computador, o método CARACTERIZADO pelo fato de que compreende: receber uma solicitação para acessar um campo de dados de consulta; pesquisar pelo campo de dados de consulta a partir de uma tabela de nível de segurança; em resposta a encontrar o campo de dados de consulta da tabela de nível de segurança, obter a partir da tabela de nível de segurança um nível de segurança correspondente ao campo de dados de consulta; e em resposta a não encontrar o campo de dados de consulta da tabela de nível de segurança, determinar um nível de segurança correspondente ao campo de dados de consulta com base, pelo menos, na tabela de nível de segurança e em uma árvore de linhagem rastreando o campo de dados de consulta para um ou mais campos de dados fonte, em que: a árvore de linhagem rastreia o campo de dados de consulta para um ou mais campos de dados superiores (parent data fields) de primeiro nível, o cada campo de dados superiores de primeiro nível sendo um dentre um ou mais campos de dados fonte ou um campo de dados derivado de primeiro nível e o campo de dados de consulta derivando a partir dos um ou mais campos de dados superiores de primeiro nível com base em uma primeira função de derivação; para o campo de dados derivados de primeiro nível, a árvore de linhagem rastreia o campo de dados derivados de primeiro nível para um ou mais campos de dados superiores de segundo nível, o cada campo de dados superiores de segundo nível sendo um dentre um ou mais campos de dados fonte ou um campo de dados derivado de segundo nível e o campo de dados derivados de primeiro nível derivando a partir de um ou mais campos de dados superiores de segundo nível com base em uma segunda função de derivação; o rastreio é replicável em qualquer campo de dados derivados até rastrear o um ou mais campos de dados fonte; a árvore de linhagem compreende a primeira e a segunda funções de derivação; e a tabela de nível de dados de segurança compreende um ou mais níveis de segurança correspondentes a um ou mais campos de dados fonte.
2. Método de acordo com a reivindicação 1, CARACTERIZADO pelo fato de que determinar o nível de segurança correspondente ao campo de dados de consulta com base pelo menos na árvore de linhagem e a tabela de nível de segurança compreende: para cada campo de dados derivados em qualquer nível, obter o nível de segurança do campo de dados derivados com base em pelo menos (1) a função de derivação do campo de dados derivados e (2) níveis de segurança dos campos de dados superiores de primeiro nível do campo de dados derivados; e determinar um dos campos de dados derivados correspondentes ao campo de dados de consulta e usar o nível de segurança do campo de dados derivados determinado como o nível de segurança do campo de dados de consulta.
3. Método de acordo com a reivindicação 2, CARACTERIZADO pelo fato de que: o nível de segurança do campo de dados derivado obtido é o mais alto dos níveis de segurança dos campos de dados superiores de primeiro nível do campo de dados derivado.
4. Sistema para classificação de segurança de dados, CARACTERIZADO pelo fato de que compreende um processador configurado para: receber uma solicitação para acessar um campo de dados de consulta; pesquisar pelo campo de dados de consulta a partir de uma tabela de nível de segurança; em resposta a encontrar o campo de dados de consulta a partir da tabela de nível de segurança, obter a partir da tabela de nível de segurança um nível de segurança correspondente ao campo de dados de consulta; e em resposta a não encontrar o campo de dados de consulta da tabela de nível de segurança, determinar um nível de segurança correspondente ao campo de dados de consulta com base, pelo menos, na tabela de nível de segurança e em uma arvore de linhagem rastreando o campo de dados de consulta para um ou mais campos de dados fonte, em que: a árvore de linhagem rastreia o campo de dados de consulta para um ou mais campos de dados superiores (parent data fields) de primeiro nível, o cada campo de dados superiores de primeiro nível sendo um dentre um ou mais campos de dados fonte ou um campo de dados derivado de primeiro nível e o campo de dados de consulta derivando a partir dos um ou mais campos de dados superiores de primeiro nível com base em uma primeira função de derivação; para o campo de dados derivados de primeiro nível, a árvore de linhagem rastreia o campo de dados derivados de primeiro nível para um ou mais campos de dados superiores de segundo nível, o cada campo de dados superiores de segundo nível sendo um dentre um ou mais campos de dados fonte ou um campo de dados derivado de segundo nível e o campo de dados derivados de primeiro nível derivando a partir do um ou mais campos de dados superiores de segundo nível com base em uma segunda função de derivação; o rastreio é replicável em qualquer campo de dados derivados até rastrear o um ou mais campos de dados fonte; a árvore de linhagem compreende a primeira e a segunda funções de derivação; e a tabela de nível de dados de segurança compreende um ou mais níveis de segurança correspondentes a um ou mais campos de dados fonte.
5. Sistema de acordo com a reivindicação 4, CARACTERIZADO pelo fato de que para determinar o nível de segurança correspondente ao campo de dados de consulta com base, pelo menos, na árvore de linhagem e na tabela de nível de segurança, o processador é configurado para: para cada campo de dados derivados em qualquer nível, obter o nível de segurança do campo de dados derivados com base, pelo menos em, (1) a função de derivação do campo de dados derivados e (2) níveis de segurança dos campos de dados superiores de primeiro nível do campo de dados derivados; e determinar um dos campos de dados derivados correspondentes ao campo de dados de consulta e usar o nível de segurança do campo de dados derivados determinados como o nível de segurança do campo de dados de consulta.
6. Sistema de acordo com a reivindicação 5, CARACTERIZADO pelo fato de que: o nível de segurança do campo de dados derivados obtido é o mais alto dos níveis de segurança dos campos de dados superiores de primeiro nível do campo de dados derivados.
BR112020027062-8A 2018-07-16 2018-12-29 Sistema e método para classificação de segurança de dados BR112020027062B1 (pt)

Applications Claiming Priority (3)

Application Number Priority Date Filing Date Title
US16/036,865 US10922430B2 (en) 2018-07-16 2018-07-16 System and method for data security grading
US16/036,865 2018-07-16
PCT/US2018/068075 WO2020018144A1 (en) 2018-07-16 2018-12-29 System and method for data security grading

Publications (2)

Publication Number Publication Date
BR112020027062A2 BR112020027062A2 (pt) 2021-03-30
BR112020027062B1 true BR112020027062B1 (pt) 2022-05-03

Family

ID=69139162

Family Applications (1)

Application Number Title Priority Date Filing Date
BR112020027062-8A BR112020027062B1 (pt) 2018-07-16 2018-12-29 Sistema e método para classificação de segurança de dados

Country Status (3)

Country Link
US (2) US10922430B2 (pt)
BR (1) BR112020027062B1 (pt)
WO (1) WO2020018144A1 (pt)

Families Citing this family (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US11960507B2 (en) * 2020-01-17 2024-04-16 International Business Machines Corporation Hierarchical data
CN113177220B (zh) * 2021-05-27 2021-12-17 深圳市数存科技有限公司 一种可进行远程数据保护的业务安全系统

Family Cites Families (8)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US5878415A (en) 1997-03-20 1999-03-02 Novell, Inc. Controlling access to objects in a hierarchical database
WO2002078286A2 (en) 2001-03-27 2002-10-03 Bea Systems, Inc. System and method for managing objects and resources with access rights embedded in nodes within a hierarchical tree structure
US20050132054A1 (en) 2003-12-10 2005-06-16 International Business Machines Corporation Fine-grained authorization by traversing generational relationships
US8887271B2 (en) * 2009-06-15 2014-11-11 Sap Se Method and system for managing object level security using an object definition hierarchy
CN104077284A (zh) 2013-03-26 2014-10-01 中国移动通信集团湖北有限公司 一种数据安全访问方法及系统
US9111104B2 (en) 2013-03-29 2015-08-18 Jive Software, Inc. Entitlements determination via access control lists
US9998472B2 (en) 2015-05-28 2018-06-12 Google Llc Search personalization and an enterprise knowledge graph
US10713376B2 (en) * 2016-04-14 2020-07-14 Salesforce.Com, Inc. Fine grain security for analytic data sets

Also Published As

Publication number Publication date
US20200019722A1 (en) 2020-01-16
US11449628B2 (en) 2022-09-20
US20210165903A1 (en) 2021-06-03
US10922430B2 (en) 2021-02-16
BR112020027062A2 (pt) 2021-03-30
CN112639786A (zh) 2021-04-09
WO2020018144A1 (en) 2020-01-23

Similar Documents

Publication Publication Date Title
Saeedi et al. Using link features for entity clustering in knowledge graphs
Krishnaraj et al. An efficient radix trie‐based semantic visual indexing model for large‐scale image retrieval in cloud environment
Xing et al. A node influence based label propagation algorithm for community detection in networks
US20180232262A1 (en) Mapping heterogeneous application-program interfaces to a database
US20200349183A1 (en) Clustering and dynamic re-clustering of similar textual documents
US9965641B2 (en) Policy-based data-centric access control in a sorted, distributed key-value data store
AU2019213302A1 (en) Filtering data lineage diagrams
US11392620B2 (en) Clustering log messages using probabilistic data structures
US10437933B1 (en) Multi-domain machine translation system with training data clustering and dynamic domain adaptation
AU2018253478A1 (en) Testing insecure computing environments using random data sets generated from characterizations of real data sets
US9992232B2 (en) Policy block creation with context-sensitive policy line classification
US10311093B2 (en) Entity resolution from documents
BR112020027062B1 (pt) Sistema e método para classificação de segurança de dados
US20180077251A1 (en) Social signature
Thacker et al. Performance of elasticsearch in cloud environment with ngram and non-ngram indexing
Rehman et al. Performance evaluation of frequent subgraph discovery techniques
Tabei et al. Sketchsort: Fast all pairs similarity search for large databases of molecular fingerprints
WO2016177027A1 (zh) 批量数据查询方法和装置
CN112348041A (zh) 日志分类、日志分类训练方法及装置、设备、存储介质
US11216413B1 (en) Processing platform configured for data set management utilizing metadata-based data set operational signatures
San Román Guzmán et al. Design of a New Distributed NoSQL Database with Distributed Hash Tables
US10366059B2 (en) Record schemas identification in non-relational database
Ma et al. Blockchain retrieval model based on elastic bloom filter
Thacker et al. Review of Elasticsearch Performance Variating the Indexing Methods
CN112639786B (zh) 智能地标

Legal Events

Date Code Title Description
B09A Decision: intention to grant [chapter 9.1 patent gazette]
B16A Patent or certificate of addition of invention granted [chapter 16.1 patent gazette]

Free format text: PRAZO DE VALIDADE: 20 (VINTE) ANOS CONTADOS A PARTIR DE 29/12/2018, OBSERVADAS AS CONDICOES LEGAIS.