📜  统计数据库安全

📅  最后修改于: 2021-07-05 08:23:35             🧑  作者: Mango

先决条件–数据库安全性的控制方法

某些数据库可能包含某个国家/地区的个人的机密或机密数据(例如Aadhar号码,PAN卡号),并且攻击者不得访问此数据库。因此,因此应该保护它免受用户访问。

包含大量人口详细信息的数据库称为统计数据库,主要用于生成有关各种人口的统计信息。但是允许用户检索某些人口统计信息,例如特定州/地区人口的平均值及其总和,计数,最大值,最小值和标准差等。

道德的黑客有责任监视统计数据库的安全性,不允许统计用户访问个人数据,例如数据库中特定人员的收入,电话号码,特定人员的借记卡号码,因为统计数据库安全技术禁止检索个人数据。 DBMS还负责提供有关个人数据的机密性。

统计查询:
仅允许诸如COUNT,SUM,MIN,MAX,AVERAGE和STANDARD DEVIATION之类的聚合函数的查询称为统计查询。统计查询主要用于了解人口统计信息,以及在公司/行业中维护员工数据库等。

例子 –
考虑以下统计查询示例,其中EMP_SALARY是包含公司每个员工收入的机密数据库。

查询1:

SELECT COUNT(*) 
FROM EMP_SALARY
WHERE Emp-department = '3';

查询2:

SELECT AVG(income) 
FROM EMP_SALARY 
WHERE Emp-id = '2'; 

在这里,攻击者可以操纵“哪里”条件,如果攻击者知道特定雇员的ID /姓名,则有机会访问单个雇员的收入或雇员的机密数据。

通过使用以下措施,减少了从统计查询中访问单个信息的可能性–

  1. 数据库分区–这意味着数据库记录不能成批存储在单个记录中。根据记录的机密性,必须将其分成一些最小大小的组。

    数据库分区的优点是查询可以引用任何完整的组或组集,但是查询无法访问组内记录的子集。因此,攻击者最多可以访问一个或两个私有程度较低的组。

  2. 如果每当由选择条件指定的总体中的元组数低于某个阈值时,都不允许进行统计查询。
  3. 禁止重复引用相同元组的查询序列。