网络数据库的访问控制

来源:百度文库 编辑:神马文学网 时间:2024/05/01 21:28:02

网络数据库的访问控制
访问控制(access control)是通过某种途径允许或限制用户访问能力及范围的一种方法。访问控制的目的是使用户只能进行经过授权的相关数据库操作。
访问控制系统一般包括:
(1)主体(subject):发出访问操作、存取要求的主动方,通常指用户或用户的某个进程。
(2)客体(object):被调用的程序或欲存取的数据访问。
(3)安全访问政策:一套规则,用以确定一个主体是否对客体拥有访问能力。
网络数据库访问控制方式
访问控制方式有自主访问控制(DAC,Discretionary Access Control)、强制访问控制(MAC,Mandatory Access Control)和基于角色访问控制(RBAC,Role-Based Access Control)。
1. 自主访问控制
DAC是基于用户身份或所属工作组来进行访问控制的一种手段。具有某种访问特权的用户可以把该种访问许可传递给其他用户。
DAC允许使用者在没有系统管理员参与的情况下对他们所控制的对象进行权限修改,这就造成信息在移动过程中其访问权限关系会被改变。如用户A可将其对目标O的访问权限传递给用户B,从而使原来对O没有访问权限的B可以访问O。
2. 强制访问控制
MAC对于不同类型的信息采取不同层次的安全策略。MAC基于被访问对象的信任度进行权限控制,不同的信任度对应不同的访问权限。MAC给每个访问主体和客体分级,指定其信任度。MAC通过比较主体和客体的信任度来决定一个主体能否访问某个客体,具体遵循以下两条规则:
(1)仅当主体的信任度大于或等于客体的信任度时,主体才能对客体进行读操作,即所谓的“向下读取规则”。
(2)仅当主体的信任度小于或等于客体的信任度时,主体才能对客体进行写操作,即所谓的“向上写入规则”。
3. 基于角色访问控制
在RBAC中,引入了角色这一重要概念。所谓“角色”,就是一个或一群用户在组织内可执行操作的集合。角色可以根据组织中不同的工作创建,然后根据用户的职责分配角色,用户可以轻松地进行角色转换。RBAC根据用户在组织内所处的角色进行访问授权与控制。只有系统管理员有权定义和分配角色。用户与客体无直接联系,只有通过角色才享有该角色所对应的权限,从而访问相应的客体。
(1)RBAC的特点
① 以角色作为访问控制的主体。用户以什么样的角色对资源进行访问,决定了用户拥有的权限以及可执行的操作。
② 角色继承。在角色继承关系中,处于最上面的角色拥有最大的访问权限,越下端的角色拥有的权限越小。
③ 最小权限原则。最小权限原则是指用户所拥有的权力不能超过他履行职责时所需的权限。
④ 职责分离。“职责分离”有静态和动态两种实现方式。静态职责分离是指只有当一个角色与用户所属的其他角色彼此不互斥时,这个角色才能授权给该用户。动态职责分离是指只有当一个角色与一主体的任何一个当前活跃角色都不互斥时,该角色才能成为该主体的另一个活跃角色。
⑤ 角色容量。在一个特定的时间段内,有一些角色只能由一定人数的用户占用。
(2)RBAC的优势
RBAC的最大优势在于授权管理的便利性。一旦一个RBAC系统建立起来后,主要的管理工作即为授权或取消用户的角色。
RBAC的另一优势在于系统管理员在一种比较抽象的层次上控制访问,与企业通常的业务管理相类似。
Oracle数据库访问控制简介
Oracle系统的安全性管理采用了基于角色的访问控制方法。Oracle提供了三种标准角色:CONNECT,RESOURCE,DBA。CONNECT是Oracle的简单权限,它只有在对其它表有访问权时才有意义。拥有CONNECT角色的用户可建立表、视图、序号、同义词、数据库链接等。拥有RESOURCE角色的用户可建立表、视图、存储过程、触发器、函数、索引等。拥有DBA角色的用户拥有系统所有的权限。
在实际应用中,我们采用下列访问控制方案:
(1)根据应用系统特点,建立几个核心用户,将表、视图、存储过程、触发器、序号生成器等数据库对象建立在相应的核心用户中。
(2)根据系统用户的特点,建立各种类型的角色,并将核心用户中的数据库对象的相应权限及一些系统权限授予相应角色。
(3)建立一个通用用户默认角色,该角色只有CONNECT权限,将该角色授予任一角色,并设置成默认角色。在每次与数据库中断连接之前,屏蔽其他角色,只有该角色有效;在与数据库连接后,只有该角色有效,其后根据用户的需要,在应用程序中设置其他角色有效