首页 百科知识 数据库用户权限管理规范

数据库用户权限管理规范

时间:2022-10-17 百科知识 版权反馈
【摘要】:数据库的安全性是指数据库的任何部分都不允许受到恶意侵害或未经授权的存取和修改。数据库管理系统必须提供可靠的保护措施,确保数据库的安全性。数据库管理系统必须具有防止非授权用户进入和使用数据库系统的机制,这种机制被称为系统保护机制,可通过创建用户账号和口令来实现。当数据库的数据被盗窃时,数据加密技术可以保证盗窃者无法获取数据信息的内容。数据库安全性所关心的主要是DBMS的存取控制机制。

1.4.5 数据库的安全性

数据库的安全性是指数据库的任何部分都不允许受到恶意侵害或未经授权的存取和修改。数据库管理系统必须提供可靠的保护措施,确保数据库的安全性。

一、安全性

为了确保数据库的安全性,数据库管理系统至少需要考虑以下四个方面的问题:

■ 用户权限问题

在多用户数据库系统中,数据库管理系统必须提供授权机制,为不同用户授予不同的数据库操作权限,使每个用户只能在被限定的数据集合上执行被允许的操作,防止数据库被非法访问或破坏。

■ 防止非授权用户使用系统的问题

数据库管理系统必须具有防止非授权用户进入和使用数据库系统的机制,这种机制被称为系统保护机制,可通过创建用户账号和口令来实现。

■ 统计数据库的安全性问题

统计数据库中的数据分为两类:微数据和综合(统计)数据。微数据是描述现实世界的实体、概念或事件的数据;综合(统计)数据是对微数据进行综合处理而得到的结果数据。统计数据库系统只为用户提供统计数据,不允许用户访问微数据。但有时候微数据是可以从一组统计数据中推导出来的。因此数据库管理系统必须防止用户访问或推导出统计数据库中的微数据。

■ 数据加密问题

数据加密技术是一种重要的数据保密技术,它通常用来保护通过卫星或通信网络传输的机密数据,也可以保护数据库的机密数据。当数据库的数据被盗窃时,数据加密技术可以保证盗窃者无法获取数据信息的内容。

二、数据库安全性保护范围

数据库中有关数据保护是多方面的,包括计算机系统外部环境因素和计算机内部环境因素。

(1)计算机外部环境的保护

外部环境的保护内容有:

■ 自然环境中的安全保护:加强计算机机房及其周边环境的警戒、防火、防盗。

■ 社会环境中的安全保护:建立各种法规、制度,进行安全教育,对计算机工作人员进行管理教育,使其正确授予用户访问数据库权限等。

■ 设备环境中的安全保护:及时进行设备检查、维修,部件更新。

(2)计算机内部系统保护内部系统的保护内容有:

■ 网络中数据传输时安全性问题:由于许多数据库系统容许用户通过网络进行远程访问,必须加强网络软件内部的安全性保护。

■ 计算机系统中的安全问题:病毒的入侵、黑客的攻击等等。

■ 操作系统的安全性问题:防止用户未经授权从操作系统进入数据库系统。

■ 数据库系统的安全性问题:检查用户的身份是否合法以及使用数据库的权限是否正确。

■ 应用系统中的安全性问题:各种应用程序中的安全漏洞等。

三、数据库安全性控制

在一般的计算机系统中,安全措施是一级一级层层设置的。计算机系统的安全模型有:用户标识和鉴别、存取控制、操作系统安全模型、数据密码存储。这里我们只讨论与数据库有关的用户标识和鉴定、存取控制、视图和密码存储等安全技术。

(1)用户标识与鉴别

由系统提供一定的方式让用户标识自己的名字或身份。每次用户要求进入系统时,由系统进行核对,通过鉴定后才提供机器使用权。

对于获得上机权的用户若要使用数据库时数据库管理系统还要进行用户标识和鉴定。

(2)存取控制

数据库安全性所关心的主要是DBMS的存取控制机制。数据库安全最重要的一点就是确保只有授权给有资格的用户访问数据库的权限,同时令所有未被授权的人员无法接近数据,这主要通过数据库系统的存取控制机制来实现。

存取机制主要包括两部分:定义用户权限,并将用户权限登记到数据库字典中;系统进行权限检查,拒绝用户的非法操作。

存取机制类别分为自主存取控制和强制存取控制两类。

(3)自主存取控制方法

在自主存取控制方法(DAC)中,同一用户对于不同的数据对象有不同的存取权限,不同的用户对于同一数据对象也有不同的权限,且用户可将其拥有的存取的权限转授给别人。自主存取控制比较灵活。

大型数据库管理系统几乎都支持自主存取控制。SQL(Structured Query Language)对自主存取控制提供了支持。主要通过GRANT语句和REVOKE语句实现。

■ 关系中的用户权限

用户权限主要包括数据对象和操作类型两种类型。定义用户的存取权限称为授权,通过授权规定用户可以对哪些数据进行什么样的操作。在关系系统中,数据库管理员DBA可以把建立基本表和修改基本表的权限授予用户。用户获得此权限后可以建立和修改基本表,可以创建所建表的索引和视图。关系系统中存取控制的数据对象不仅包括数据本身,如表、属性列等,还包括数据的结构,如外模式、内模式和概念模式。表1-3列出了关系系统中的存取权限。

表1-3 关系系统中的存取权限

img9

■ SQL的数据控制功能

下面讨论SQL的数据控制功能,即SQL的GRANT语句(授权)和ROVOKE语句(收权)。

数据对象的创建者自动获得对于该数据对象的所有操作权限。例如学生表的创建者自动获得对该表的SELECT、INSERT、UPDATE和DELETE等权限,并可通过

  GRANT语句将权限转授给其他用户。例如:

  GRANT SELECT ,INSERT ON 学生

  TO 张三

  WITH GRANT OPTION

其执行结果是将学生表中的SELECT和INSERT权限授予给用户张三,同时张三也获得“授权”权限,即他可将得到的权限转授给其他用户。

当用户将某权限授予给其他用户后,他可以使用REVOKE语句将权限收回。例如:

  REVOKE INSERT ON 学生 FROM 张三

其执行结果是将学生表的INSERT权限从张三处收回。

用户权限定义中数据对象范围越小授权系统越灵活。授权粒度越细,授权子系统就越灵活。但系统定义与检查权限的开销也会相应的增大。

自主存取控制能够通过授权机制有效地控制用户对敏感数据的存取,但也存在着一定的缺陷,即系统对权限的授予情况不能进行有效的控制,因而可能造成数据的无意泄露。如甲将自己的某些权限授予给乙,甲的目的只允许乙本人操作这些数据。甲的这种安全性要求得不到保证,因为乙一旦获得了这些权限,就可以将数据备份,获得自身权限内的副本,并在不征得甲同意的前提下传播副本。造成这一问题的根本原因就是:这种机制仅仅通过对数据的存取权限来进行安全控制,而数据本身并无安全性标记。强制存取控制方法就可以解决这一问题。

(4)强制存取控制方法

在强制存取控制方法(MAC)中,每一个数据对象被标以一定的密级,每一个用户也被授予某一个级别的许可证。对于任意一个对象,只有具体合法许可证的用户才可以存取。强制存取控制比较严格。

强制存取控制方法是系统所采取的强制存取检查手段,它不是用户能直接感知或进行控制的。MAC适用于那些对数据有严格固定密级分配的部门,例如军事或政府部门。

■ 主体、客体及敏感度标记

在MAC中,DBMS所管理的全部实体被分为主体和客体两大类。主体是系统中的活动实体,既包括DBMS所管理的实际用户,也包括代表用户的各进程。客体是系统中的被动实体,它受主体操纵。客体包括文件、基表、索引、视图等,对于主体和客体,DBMS为它们每一个实例(值)指派一个敏感度标记(Label)。

敏感度标记被分成若干级别,如绝密(Top Secret)、机密(Secret)、可信(Confidential)、公开(Public)等,主体的敏感度标记称为许可证级别(Clearance Level),客体的敏感度标记称为密级(Classification Level)。MAC机制就是通过对比主体的Label和客体的Label,最终决定主体是否能够存取客体。

■ 主体对客体的存取规则

当某一用户(或某一主体)以标记Label注册进入系统时,系统要求他对任何客体的存取必须遵循如下规则:仅当主体的许可证级别大于或等于客体的密级时,该主体才能读取相应的客体;仅当主体的许可证级别等于客体的级别时,该主体才能写相应的客体。前者的意义是明显的。后者的意义在不同系统中其解释有所不同。这些系统规定:仅当主体的许可证级别小于或等于客体的密级时,该主体才能写相应的客体,即用户可以为写入的数据对象赋予高于自己的许可证级别的密级。这样一旦数据被写入,该用户自己也不能再读该数据对象了。这两种规则的共同点在于它们均禁止了拥有高许可证级别的主体更新低密级的数据对象,从而防止了敏感数据的泄露。

强制存取控制是对数据本身进行密级标记,无论数据如何复制,标记和数据是一个不可分的整体,只有符合密级标记要求的用户才可以操纵数据,从而提供了更高级别的安全性。

■ 由DAC和MAC共同构成的安全机制

在实现MAC时要首先实现DAC,即DAC与MAC共同构成DBMS的安全机制。系统在安全检查时,首先进行自主存取控制检查,然后进行强制存取控制检查,两者都通过后,用户才能执行其数据存取操作。

(5)视图机制

在系统中,可以为不同的用户定义不同的视图,通过视图把数据对象限制在一定范围内,把要保密的数据对无权存取的用户隐藏起来,从而自动地对数据提供一定程度的安全保护。

视图机制间接地实现了支持存取谓词的用户权限定义。例如学生张三只能浏览数学系学生的信息,这就要求系统提供具有存取谓词的授权语句。在不直接支持存取谓词的系统中,可以先建立数学系学生的视图,然后在该视图上定义存取权限。

(6)审计

审计(Audit)就是把用户对数据库的所有操作自动记录下来放入审计日志(Audit Log)中,一旦发生数据被非法存取,DBA可以利用审计跟踪的信息,重现导致数据库现有状况的一系列事件,找出非法存取数据的人、时间和内容等。审计通常是很费时间和空间的,所以DBMS一般都将其作为可选特征,允许DBA根据应用对安全性的要求,灵活地打开或关闭审计功能。审计功能一般只用于安全性要求较高的部门。

(7)数据加密

对于高敏感度数据,例如财务数据、军事数据、国家机密,除采用上述安全性措施外,还可以采用数据加密技术。

数据加密是防止数据库中数据在存储和传输中失密的有效手段。加密的基本思想是根据一定的算法将原始数据(术语为明文,Plain Text)变换成不可直接识别的格式(术语为密文,Cipher Text),从而使得不知道解密算法的人无法获知数据的内容。加密方法有如下两种:

① 替换方法。该方法使用密钥(Encryption Key)将明文中的每一个字符转换成密文中的字符。

② 置换方法。该方法仅将明文中的字符按不同的顺序重新排列。

单独使用这两种方法中的任意一种都是不够安全的,但是将这两种方法结合起来就能提供相当高的安全性能。

目前有些数据库产品提供了数据加密例行程序,可根据用户的要求自动对存储和传输的数据进行加密处理。另一些数据库产品虽然本身未提供加密程序,但提供了接口,允许用户用其他厂商的加密程序对数据加密。

由于数据加密与解密也是比较费时的操作,而且数据加密与解密程序会占用大量系统资源,因此数据加密功能通常也作为可选特征,允许用户自由选择,只对高度机密的数据加密。

免责声明:以上内容源自网络,版权归原作者所有,如有侵犯您的原创版权请告知,我们将尽快删除相关内容。

我要反馈