访问控制系统和访问控制方法为数据库管理系统提供了多级别和强制性访问控制。访问控制技术提供了关系数据库表中的行级别的访问控制。数据库表包含安全标记列,在该列内记录了在层次型安全方案内定义的安全标记。用涉及用户的安全信息对用户的安全标记进行编码。当用户请求对行进行访问时,安全机制将用户的安全信息与行中的安全信息进行比较。如果用户的安全性优于行的安全性,则允许用户访问该行。(*该技术在2023年保护过期,可自由使用*)
【技术实现步骤摘要】
本专利技术涉及信息处理系统,具体来说,涉及在数据库管理系统中提供访问控制。
技术介绍
随着万维网(“web”)和电子商务解决方案的发展,数据库安全性和保密性变得越来越重要。在服务器上托管Web站点,被称为Web托管,是扩大数据库安全性的重要性的另一个趋势。Web服务器包括在许多相关表中存储了客户的数据的关系数据库。Web托管公司被推动将来自许多客户的数据存储在单数据库管理系统中,以便最大限度地减小其费用。然而,随着客户的数量越来越多,需要的安全性比通常由托管公司使用的数据库管理系统的安全性更高,特别是当使用数据库管理系统来托管一个以上的客户的Web站点和数据时。某些客户需要实现强制性访问控制,其中,对诸如数据库行之类的数据项的所有访问都要受到控制。许多客户还需要使用层次型的安全性方案,该方案同时支持多个级别的访问控制。这些强制性访问控制和层次型安全性方案已为大家所熟知。在国防部标准DoD5200.28-STD,1985年12月发表的Department of Defense TrustedComputer System Evaluation Criteria中对它们进行了描述,在此进行了全文引用作为参考。诸如授予汤姆逊等人的美国专利No.5,751,949中所描述的数据库之类的常规关系数据库提供了基于表和那些表的视图的安全性。可以使用视图来限制对一个或多个数据库表内的所选择的行和列的访问。例如,在汤姆逊等人的专利中,使用视图来将数据表与包含用户授权信息的安全性表联接起来。然而,诸如系统管理员之类的某些用户可以绕过视图并直接对表进行访问,从而绕过了由视图提供的访问控制。此外,数据库管理员和应用程序设计员建立具有所希望的级别的粒度的视图常常是比较麻烦的。虽然视图对于只读访问比较有效,但是,对于更新、插入和删除,视图定义起来就比较困难。对于更新控制,常常需要触发器、数据库限制和存储过程。虽然许多应用需要关系数据库内的行级别的安全性,以便单个的用户访问可以被限制于特定的行集,但是,仍需要实施强制性的安全控制。利用强制性访问控制,用户、应用程序设计员和数据库管理员都不能绕过行级别的安全机制。
技术实现思路
根据本专利技术,提供了一种控制对关系数据库的访问的方法,包括接收对数据库中的数据进行访问的用户请求,该请求包括执行数据库操作的请求和用户安全标记;基于用户安全标记,确定用户安全信息;响应用户请求,从数据库中的表中检索至少一行数据,所述至少一行具有安全标记;基于至少一个检索到的行的安全标记,确定至少一个检索到的行的行安全信息;对于至少一个检索到的行,基于用户安全信息和行安全信息,判断用户是否被授权访问该行;如果判断用户具有访问授权,则返回所述至少一行。优选情况下,请求不包含对视图的查询。优选情况下,请求不要求包含访问控制信息的表的联接,以便限制用户对数据库进行访问。在优选实施例中,数据库操作是查询。在另一个优选实施例中,数据库操作涉及行更新。优选情况下,所述确定行安全信息包括检查高速缓存中是否有对应于行的安全标记的行安全信息。优选情况下,每一个用户或行安全标记是分别以安全级别的层次结构排列的多个用户或行安全标记中的一个。优选情况下,只有在用户安全标记对应的安全级别具有大于等于检索到的行的安全标记指示的安全级别的访问权等级的情况下,才判断用户被授权访问检索到的行。在优选实施例中,只有在检索到的行的安全标记对应的安全类别是对应于用户安全标记的安全类别的真子集的情况下,才判断用户被授权访问检索到的行。优选情况下,提供了一种在具有数据管理器和数据库的数据库管理系统内使用的设备,用于判断用户是否被授权对数据库内的一行数据执行请求的操作,用户与用户安全标记关联,行具有行安全标记,该设备包括记录了安全标记层次结构的用户安全性单元;读取安全性单元,该单元连接到用户安全性单元,并位于数据管理器和数据库之间,并被配置为,只有用户安全标记在层次结构中级别的权限大于或等于行安全标记所在的层次结构中的级别的权限的情况下,才将行从数据库返回到数据管理器。在一个实施例中,安全性层次结构内的安全标记指出与安全标记关联的安全类别,其中,读取安全性单元被配置为,只有在与行安全标记关联的安全类别是与用户安全标记关联的安全类别的真子集情况下,才将请求的行从数据库返回到数据管理器。优选情况下,设备进一步包括写入安全性单元,该单元连接到数据安全性单元,并位于数据管理器和数据库之间,并被配置为,如果请求的操作是行更新操作,则将行安全标记设置为与用户安全标记相同的值。优选情况下,写入安全性单元被进一步配置为,如果用户被授权更新具有较低级别的安全标记的行,并且如果为较低级别的安全标记指定的安全类别是与用户安全标记关联的安全类别的真子集,则以低于用户安全级别的级别设置行安全标记。优选情况下,提供了一个在计算机可读的介质上实现的程序产品,用于控制对关系数据库的访问,包括用于接收对数据库中的数据进行访问的用户请求的程序指令,该请求包括执行数据库操作的请求和用户安全标记;用于根据用户安全标记确定用户安全信息的程序指令;用于响应用户请求,从数据库中的表中检索满足数据库操作的数据行的程序指令,在这些行中,每一行都具有安全标记;用于基于行的安全标记,确定每一个检索到的行的行安全信息的程序指令;对于每一个检索到的行,用于基于用户安全信息和行安全信息,判断用户是否被授权访问该行的程序指令;以及只返回判断用户具有对其进行访问的授权的那些行的程序指令。在优选实施例中,提供了一种控制对数据库的至少一行中数据的访问的方法,其中,所述至少一行与行级别的访问控制信息关联,该方法包括接收来自用户对数据库进行操作的请求;对于满足请求的数据库的每一行,通过将与用户关联的安全级别和与行关联的安全级别进行比较,对满足请求的数据库的行应用强制性访问控制规则;如果与行关联的安全级别至少是用户的安全级别的子集,则从行返回数据。优选情况下,请求不是对数据库的预定义的视图的请求,以限制对数据库的所述至少一行的访问。优选情况下,该方法不修改接收到的请求,以限制对数据库的所述至少一行的访问。优选情况下,请求是结构化查询语言(SQL)查询。在优选实施例中,数据库包括多个表,接收到的请求包括对多个表中的至少一个表进行访问的请求。优选情况下,提供了一种控制用户的对数据库中的行中的数据的访问的方法,其中,每一行都与访问级别层次结构内的第一访问级别关联,用户与访问级别层次结构内的第二访问级别关联,其中,每一个访问级别都与一个或多个权限关联,访问级别以层次方式相关,该方法包括接收来自用户对数据库进行操作的请求;通过判断与第一访问级别关联的权限是否包括在与第二访问级别关联的权限中,判断用户是否被授权对满足请求的数据库的行进行操作;并且只有在判断用户被授权对行进行操作的情况下才从行返回数据。这里所描述的系统和技术提供了关系数据库内的强制性的行级别的安全性。它们与当今所流行的常规数据库系统相比具有许多优点。它们可以提供安全性强制机制,该机制是强制性的,并且是自动的,可以实现以传统的结构化查询语言(SQL)视图或查询难以表达的安全性方案,并实现了性能优化,可以最小化与进行行级别的安全性检查关联的处理要求和消逝时间开销。这里所描本文档来自技高网...
【技术保护点】
一种控制关系数据库的访问的方法,包括:接收对数据库中的数据进行访问的用户请求,该请求包括执行数据库操作的请求和用户安全标记;基于用户安全标记,确定用户安全信息;响应所述用户请求,从数据库中的表中检索至少一行数据,所述 至少一行具有安全标记;基于至少一个检索到的行的安全标记,确定所述至少一个检索到的行的行安全信息;对于所述至少一个检索到的行,基于用户安全信息和行安全信息,判断用户是否被授权访问该行;以及如果判断用户具有访问授权,则返 回所述至少一行。
【技术特征摘要】
US 2002-9-4 10/233,3971.一种控制关系数据库的访问的方法,包括接收对数据库中的数据进行访问的用户请求,该请求包括执行数据库操作的请求和用户安全标记;基于用户安全标记,确定用户安全信息;响应所述用户请求,从数据库中的表中检索至少一行数据,所述至少一行具有安全标记;基于至少一个检索到的行的安全标记,确定所述至少一个检索到的行的行安全信息;对于所述至少一个检索到的行,基于用户安全信息和行安全信息,判断用户是否被授权访问该行;以及如果判断用户具有访问授权,则返回所述至少一行。2.根据权利要求1所述的方法,其中,每一个用户或行安全标记都是分别以安全级别的层次结构排列的多个用户或行安全标记中的一个。3.根据权利要求2所述的方法,其中,只有在用户安全标记对应的安全级别具有大于等于检索到的行的安全标记指示的安全级别的访问权等级的情况下...
【专利技术属性】
技术研发人员:库尔特科特纳,罗杰L米勒,
申请(专利权)人:国际商业机器公司,
类型:发明
国别省市:US[美国]
还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。