授权控制可以用“谁(授权者)可以授权”来描述。表4.4授权矩阵的例子对象上的权利可以像授权规则一样记录在数据目录(字典)里。如表4.4所示,最常用的方法是将所有的权限用一个授权矩阵表示。其中,每一行表示一个授权事项,每一列代表一个对象。正像前面所提到的,Oracle也为授权标识提供了一套口令系统,在Oracle中称为用户名。Oracle为授权标识提供了更进一步的应用,并在SQL中增加了CREATE user命令。每个角色应当是表示某一功能的连贯的权限组。......
2023-10-28
在分布式环境中,附加产生的授权控制问题源于对象的分布和其他分布问题。这些问题为远程用户授权、分布授权规则管理以及视图与用户组处理等。
分布式DBMS中,给远程用户授权是十分必要的,因为在任意一个站点都可能接受程序启动,而用户可能在一个远端站点。举例来说,对于一个移动电话用户来说,无论他/她在哪里,只要使用其移动电话,移动公司都会从各地运行程序检查其用户信息。为了防止非授权用户远程存取(例如从一个不属于本分布式DBMS的站点),必须存取站点标识用户和授权,这有两种解决方案。
第一种方案是授权用户的信息(用户名和口令)记录在所有节点的目录里。在远端节点启动的本地程序必须声明用户名和口令。
第二种方案是分布式DBMS中的各个节点自己来识别和授权。各个节点自己来认证与授权,节点间有一种互信机制,即一个节点识别用户后,其他节点采信该节点的认证。节点间的通信就使用节点口令来解决。一旦启动节点被授权,就无须再对其远端用户授权。
第一种方案的开销较大,主要是目录管理的开销大,每增加一个新用户,就要实施一个分布操作,在目录中有所记载。但是,用户可以从任意节点存取数据库。
第二种方案在信息无副本时是必然的。当然,也可用在用户信息有副本时的情况。好处是可以让远程访问更有效。如果用户名和口令没有复制,即将其存放在用户访问系统的节点(即Home Site)中。后一种方案的一个假设是,用户是比较固定的、静态的,至少存取分布式数据库的大多数请求发生在同一个节点上。
分布授权规则的表示方法与集中制系统的类似,如视图定义一样,它们必须存放在目录里。存放时可以全复制,也可以部分复制,甚至不复制。后面两种情况中,规则只存放在访问对象分布的节点。全复制的优点是在编译时查询处理的过程中就可以处理授权。但由于是全复制,所以目录管理的开销增加。其他两种情况虽有利于本地访问,但是无法在编译时处理分布授权。(www.chuimin.cn)
视图也看作授权机制中考虑的数据对象。视图是组合对象,由其他基础对象组合而成,因此可以将视图存取的授权翻译成对基础对象存取的授权。如果视图定义和授权规则对所有对象都是全复制的,则翻译相当简单,而且可以在本地处理。如果视图定义(如4.2节里的视图Shanghai_Car)和基础对象定义(如4.2节里的关系Car)存放在不同的节点(如Shanghai_Car在上海,Car在北京),则翻译就困难些。这是显然的,一方面,使用时要访问一个以上的节点;另一方面,节点有自主性,万一存放视图定义或基础对象定义的节点不能用,结果翻译就不能进行。这种情况下,翻译就变成一个完全的分布式操作。某个节点断接,就可能造成翻译失败。视图上的授权依赖于视图创建者对基础对象的访问权限。一种解决方案是在每个基础对象存放的节点记录相关信息。
采用用户组方式处理授权可以简化分布式数据库管理。在集中式DBMS中,“全部用户”称为public。在分布式DBMS中,其用法相同。为了方便,可以指定节点,记作public@sites,表示能访问该节点的全体用户。实际上,public是一个特殊的用户组,其他用户组的定义可以用如下命令来定义:
Def ine GROUP<group_id>AS<l ist of subjec t ids>
显然,这里定义的用户组是public的子集。在分布式环境里,组的管理会碰到一些新问题,即组的成员分布在各个节点;而对数据对象的访问权限可以授权给多个组,它们是分布式的。如果组的信息以及授权规则全复制在所有的节点,则存取权利的推广与集中式数据库系统的类似。当然,维持这种复制的开销是很大的。如果还要维持节点的自主性和分散控制,则更困难。一种解决方案是,要求强加一个存取权利时,要到有组定义的节点上实施远程查询。另一种解决方案是,在每个包含可能被该组用户访问的数据对象的节点上复制组定义。要说明的是,这样做会降低节点的自主性。
总的来说,全复制授权有两大优点:授权控制简单,可以在编译时完成。但是,管理分布式目录的开销较大。
有关分布式数据库技术的文章
授权控制可以用“谁(授权者)可以授权”来描述。表4.4授权矩阵的例子对象上的权利可以像授权规则一样记录在数据目录(字典)里。如表4.4所示,最常用的方法是将所有的权限用一个授权矩阵表示。其中,每一行表示一个授权事项,每一列代表一个对象。正像前面所提到的,Oracle也为授权标识提供了一套口令系统,在Oracle中称为用户名。Oracle为授权标识提供了更进一步的应用,并在SQL中增加了CREATE user命令。每个角色应当是表示某一功能的连贯的权限组。......
2023-10-28
与Napster一样,Gnutella也是一个音乐共享系统,但其实现方式有所不同。Gnutella是一个纯无中心P2P系统,主要功能是文件共享。Gnutella系统具有如下特点。一方面,每个查询会广播到尽可能多的节点,Gnutella有能力得到所有潜在结果。......
2023-10-28
关于如何利用中间件集成多数据库,下面举一个使用CORBA集成的例子。参考文献[1]中提出的基于CORBA的多数据库系统体系结构,称为CBMA。CBMA是典型的多数据库系统体系结构,加入CBMA的数据库仍具有自治性,其上原来的应用程序仍能继续运行。MOTM由CORBA的ORB、多数据库系统事务管理器、负载平衡和安全管理等功能模块组成,其中多数据库系统事务管理器、负载平衡和安全管理都是作为ORB的软构件实现的。......
2023-10-28
有多种并发控制算法的分类方式。按照同步原语可以将并发控制算法分成两类:基于互斥存取共享数据的算法和将事务排序按规则执行的算法。图9.10并发控制算法的分类●在主本封锁中,将每个封锁单元的某个副本指定为主本,在访问该单元时主本必须封锁。这些算法可以分成基本TO、多版本TO和保守TO等。实际上,在某些基于封锁的算法中也使用时标,因为这样可以改进效率和并发性,我们称为混合算法。......
2023-10-28
可以把RMI看成是远程过程调用的Java版本,RMI能够按照请求传递对象。RMI按以下三个层次实现。CORBA与Java/RMI的主要区别在于以下两个方面。Java起因于一个研究计划,目的是开发适合各种网络设备和嵌入式系统的先进软件。......
2023-10-28
ANSI SQL标准提供了安全系统最基本的访问控制级别,主要有以下几种。授权标识是一种区别访问数据库不同部分的基本方法,应用SQL的这种特征,根据不同的访问控制可以将数据库分给各个模式。要执行模块中的SQL语句,必须对授权标识授予必要的权限。1992 SQL标准增加了一条取消权限的REVOKE语句,使用该语句可选择性地逐级取消被授权者的权限。......
2023-10-28
ROWA协议是强加单副本一致性的协议,它把一个逻辑读变成对任意一个副本的读操作,把一个逻辑写变成对所有副本的写操作,从而让所有副本有同一个值。ROWA协议简单优雅,但有一个致命缺陷:只要有一个副本不能用,更新事务就不能终止。实际上已经提出了这个协议的不少变种,有一个协议称为可用副本协议。因此,协调者在提交前需进行验证。ROWA-A协议比简单ROWA协议更能抗故障,包括网络分割。另一类严格副本控制协议是基于选举的。......
2023-10-28
在数据库安全里,访问控制扮演着重要角色。访问控制就提供这种保护功能。访问控制系统需要关注三个方面:访问控制策略、访问控制模型和访问控制机制。访问控制策略定义高级规则,用于核实访问请求是否被核准或拒绝。访问控制策略通过访问控制模型来实现规范,通过访问控制机制来强制实施。这样,访问策略改变后,访问控制机制依然有效。访问控制系统主要具有如下特征。这些特征给访问控制机制的设计与开发迎来了新的挑战。......
2023-10-28
相关推荐