GBase 8s支持的事务隔离级别有哪些?

2.4、如何将日期转字符

2.5、如何将字符转日期

HH表示12小时进制,HH24表示采用24小时进制,MM表示月份,MI表示分钟;

3.4、返回DATE的某一部份内容

ADD_MONTHS是一个比较有意思的函数,它会自动处理大小月及闰月,如下所示

对于date类型,将返回本月最后一天的日期值;
对于datetime 类型,将返回本周最后一天的当前时间值;

对于date类型,将返回下一个指定周几的日期值;
对于datetime 类型,将返回下一个指定周几的当前时间值;

用户的关键业务系统,特别是OLTP系统,都要求提供7×24不间断的应用服务,这就要求数据库系统能够提供强大的高可用能力。这种能力不仅仅体现在主机及备机的接管方面,同时要能够提供远程容灾能力,以及本地的负载均衡能力。

针对上述对数据库的要求,通过不断的发展与创新,GBase 8s提供了业界领先的高可用集群技术SDS,HDR,RSS。

SDS(Shared Disk Secondary)技术与 HDR、RSS 不同,SDS 采用和主机共享磁盘方式,避免了数据重复存储的问题,节省了空间,同时安装、配置更加简单。而且,当主机发生故障后,它可以快速实现接管,另外,可以非常容易地配置多个SDS,可以实现了负载均衡的功能。

由于SDS备用节点利用了主服务器的磁盘并且可以轻松快速地启动,因而非常适合规模扩展场景,由于SDS备用服务器非常接近主服务器(即它们共享相同的磁盘),因此最适合在主服务器遇到问题时作为故障转移服务器。

HDR 技术通过复制数据库的事务日志的方式实现了主、备机互相接管的功能。当主机工作时,备机提供只读功能,可以对外提供查询、报表等服务,分担主机的负载;当主机发生故障,备机会自动接管主机服务。

RSS(Remote Standalone Secondary)技术是GBase 8s数据库提供的一种远程灾备技术。它扩展了以前 HDR 只支持主、备两台机器,系统可以支持多台RSS备机,进一步提高了高可用性。

RSS在很多方面都与HDR相似。将日志发送到RSS的方式与主服务器将日志发送到HDR辅助服务器的方式很相似。但是,RSS采用SMX异步通信框架,因此其对主服务器的影响达到最小。出于该原因,主服务器和RSS辅助服务器之间事务落实或检查点均不是同步进行的。换句话说,不保证在主服务器上落实的任何事务也在同一时间在RSS辅助服务器上得到落实。因为RSS辅助服务器是异步进行更新的,所以RSS辅助服务器不能直接提升为主服务器。相反,它可以提升为HDR辅助服务器,然后可提升为主服务器。另外,HDR 辅助服务器可降级为RS辅助服务器。

GBase 8s的数据存储加密采用库内加密的方式,在数据库管理系统的内核存储引擎级进行数据加解密处理,从而对于合法用户来讲是完全透明的,因此也称为透明加密。

应用层软件不使用数据库管理员帐号,通过对应用层软件用户的授权管理,应用层软件只能访问与其业务功能相关的数据。GBase 8s保证应用层软件安全编码,GBase 8s安全管理员可使用强制访问控制管理命令或操作, 完成主客体安全标记及安全策略定义等安全操作,对用户敏感数据提供数据加密和保护,防范SQL注入。

应用层软件在使用非法用户对数据库进行访问的时候,是无法获取已加密的数据。

身份鉴别是证实用户或进程声称的身份是否真实的过程。计算机系统的用户在进入系统或访问不同保护级别的系统资源时,系统将确认该用户的身份是否真实、合法且唯一,以防止用户的非法入侵行为。因此从计算机系统角度来看,身份认证是安全防御的第一道防线,是防止非法访问的有效保障措施。而从用户的角度来看,身份认证是用户访问计算机系统或网络的第一道关卡。身份认证是数据库系统对访问者授权的前提,也是访问控制机制有效实施的基础。

身份验证除了基本的密码验证,GBase8s 还提供很多身份验证模块,如 PAM、LDAP、SSO,还提供了非系统用户访问系统的验证方式。PAM(Pluggable Authentication Modules)框架提供了一个通用的方法来验证用户登录系统服务。PAM可用于整合服务与不同的认证技术,如RSA,DCE,Kerberos,和基于智能卡的身份认证。通过三权分立方式来平衡管理员的权力,提高数据库的安全指数。访问控制可以在保证授权用户可以获得合法的资源的同时,拒绝非授权用户的非法访问,从而保证了数据的保密性、完整性和可用性。

在GBase 8s中,每个数据库用户都有一个不可重复的唯一性用户标识,并在DBMS的整个生命周期实现该用户标识的唯一性。

按照基本鉴别,不可伪造鉴别及一次性使用鉴别要求进行用户身份鉴别,用户在使用DBMS时必须首先给出用户标识,通过检验合格后才能进入使用DBMS。用户身份鉴别采用了用户密码及数据证书双重认证的鉴别机制。

数据库用户的密码使用杂凑算法加密处理后存储在GBase 8s的系统表中,从而保证了密码自身的安全性。

采用访问控制表访问方式以实现自主访问控制,即采用如下表所示的访问控制表。

根据访问控制表,每个主体拥有一定操作权限,并可将权限授予(或收回)另一个主体,称为授权。

当一个主体访问某个客体时,自主访问控制根据访问控制表检查,以确认主体对客体访问的操作是否在表中允许,若为允许操作,则访问为合法,否则为非法操作,此时访问不能进行。

目前自主访问控制的主体粒度为用户级,客体粒度为字段(属性)级。  

数据库往往工作在一个公共的环境中,其中存在大量的用户操作,如数据库管理员主要做数据管理维护工作,也有普通用户做一定授权下的数据修改和数据查询。而每个数据库服务器上可建立多个不同类别的数据库, 而每个数据库中也可以生成多个存储过程、 表、视图等。如何保证数据的安全可靠,防止非法存取所造成的破坏和数据泄露,如何进行权限的划分和设置,这是安全管理的重点,也是数据库可靠运行的保证。

使用数据库的授权(访问权限):可以控制用户在数据上和数据库对象上执行操作的操作组。可分为数据库级权限、所有权特权、表级权限、列级权限。使用授予/撤销语句以授予数据库、表、视图或过程的权限,或撤销用户或从另一个角色中的作用。角色包括DBSA–数据库系统管理员组;dbsso–数据库系统安全员组;AAO–审计分析人员组等。

GBase 8s启用角色隔离,在启动安装过程之前设置INF_ROLE_SEP环境变量,或者在交互式安装过程中启用它。只能通过卸载、重新安装GBase 8s禁用角色隔离。角色隔离在 Windows上使用用户账户,在UNIX/Linux上使用组账户。如果已经启用了角色隔离,则安装过程会询问这些用户和组账户的信息。

GBase 8s将传统的“超级管理员”权限划分为数据库服务器管理员(DBSA)、数据库系统安全维护员(DBSSO)和审计分析员(AAO)三种。三种管理员角色相互配合、互相制约,有效杜绝了超级用户权限滥用的问题。

DBSA有数据的管理权,相当于“行政权”,控制实例的一般操作。他们可以授予和取消普通用户数据访问的权限,执行数据管理的各种操作。他们仍然能做一些特殊的需要数据库级权限的操作,例如备份整个数据库的数据。但是传统的数据库管理员 “万能”的权力被大大削减,包括创建新用户的权限也会被收回。

DBSSO拥有安全规则的制定权,相当于“立法权”,和由DBSA管理用户权限不同的是,他们在数据库原有的权限管理之外,对数据的访问控制做更周密和灵活的规则设置,也就是决定要审计什么。例如指定某些敏感数据的集合只能被指定的用户访问,如果没有被指定,则即使是DBSA也无法访问。又例如,即使是数据的所有者,也可以被安全管理员限制不能删除自己的数据。安全管理员可以规定某些操作只能在某个时间段内执行,或者某些操作只能在指定的IP地址上执行。但是安全管理员不能为用户授予各种权限,也就是说,如果要想让某个用户(包括安全管理员自己)看到另一个用户的数据,则还必须由另一个用户自身或者DBSA先对该用户授权。这是一种互相制约的机制。DBSA可以创建新用户,可以指定新用户为某些敏感数据的允许访问者,这是个必要条件。但是并不意味着这个新用户就可以看到这些敏感数据,其还需要得到DBSA的授权。而DBSA也不再能随意查询或修改其他用户的数据。DBSA原来的种种特权也可以被DBSSO根据实际需求通过命令规则进行限制。

AAO拥有数据操作的审计权,相当于“司法权”,负责监视审计记录。他们监督前两类用户的操作,如果发现有不符合法规或内部控制要求的活动,则可以调查这些活动的细节。这些活动可能包括DBSA将权限授给不合适的用户,或者DBSSO临时取消某些安全规则,以方便某些用户执行非法操作等。AAO和DBSSO一样,本身都不能执行对其他用户的具体数据的操作,这是一种平衡。但是AAO拥有一套机制,可以保护审计记录数据不会被数据库管理员或者安全管理员删除或者篡改。

对于普通的数据库用户,则相当于平民大众,他们的日常操作不会受到任何影响,所有访问数据库的应用程序也不需要做任何修改。但是他们对敏感数据的所有操作,也可以被记录下来,受到审计管理员的审计和监督。

还有几个用户虽然不属于角色p隔离,但是可能需要为他们制订计划:数据库管理员DBA管理实例上的数据库,操作系统管理员OSA 要满足操作系统需求,系统用户则为需要获得数据的任何用户。

GBase 8s中的主体(数据库用户)与客体(数据对象)均需标以敏感标记(简称标记),标记分为安全等级标记与范畴标记,等级标记是用正整数表示,而范畴标记则用集合表示。

由负责强制访问控制管理的安全管理员创建全局等级与全局范畴,并利用所创建的等级与范畴标记系统中的主体(代理)和客体。

基于标签的行级访问控制

基于标签的访问控制,基于标签的访问控制(LBAC)是一种访问控制的形式,使您可以控制谁有读、谁有写访问单个行和列数据(数据标记)。用户被授予标签。基于标签比较,用户可以访问数据。也可以得到更精细的控制,而不仅仅是基于表级。可以使用户遵守规则,如只有某些用户可以看到某些行或列。

强制访问控制(MAC)

强制访问控制(MAC)功能提供了客体(数据对象)在主体(数据库用户)之间共享的控制,与自主访问控制(DAC)不同的是强制访问控制由安全管理员管理,自主访问控制尽管也作为系统安全策略的一部分,但主要由客体的拥有者管理。强制访问控制通过无法绕开的访问控制限制来防止各种直接和间接的攻击,一个用户无权将任何数据资源的访问权授予别的用户。GBase 8s在传统的自主访问控制基础上增加了安全标记及强制访问控制功能。

GBase 8s的强制访问控制模型以BLP模型作为核心基础,并加以适当的扩充,模型的主要内容为:

在GBase 8s中主体是指数据库用户,客体包括数据表、视图、存储过程和函数等。

l 安全标记(层次等级与非层次范畴)

敏感标记又称安全标记,每个主体、客体均有标记,标记分为安全等级标记与范畴标记,等级标记是用正整数表示,而范畴标记则用集合表示。标记是由层次等级标记I及非层次范畴标记S的二元组组成:(I,S),它们间有偏序关系。

l 强制访问控制安全策略

Bell-La Padula模型的基本安全策略是“下读上写”,在GBase 8s中,基于实用性和灵活性的考虑对安全策略进行了扩充,除了采用向下读、向上写原则外,还设置有向上读向下写原则,以及将写分为插入,修改/删除两种操作而形成的下面四种安全访问策略:

下读上写其它(修改/删除)同写;

下读上写其它(修改/删除)同读;

上读下写其它(修改/删除)同写;

上读下写其它(修改/删除)同读。

同时还增设一种初始策略:下读相等写其它(修改/删除)同写,以及另一种自定义策略。

某些特定用户在一段时间内可以信赖他们不会把某些敏感数据向外扩散,因此可以让他们具有对这些数据的相应操作,即使这时不符合“下读上写”的原则,是基于灵活性、实用性考虑的一种补充。

当主体访问客体时,强制访问控制需按安全访问策略模型作安全检查,只有当符合模型要求时访问才能进行,否则为非法,访问不能进行。

目前强制访问控制的主体粒度为用户级,客体粒度为表级。

GBase 8s提供一系列强有力的方法来确保数据库的完整性。

l 物理存储完整性保护

每一个页数据的存储结构如下:

Page Trailer存储了本页的校验码信息,当向页中写入数据时将页的校验码信息写到Page Trailer中;当从页中读取数据时,首先重新计算该页的校验码信息,然后和Page Trailer的校验码信息进行对比,如果不相等,说明此页的完整性信息被破坏了,如果相等,说明该页的数据完整性得到了保证,可正常访问,GBase 8s通过页中保存校验码信息的方式来检查以库结构形式存储在数据库中的用户数据是否出现完整性错误。  

GBase 8s采用两阶段提交协议确保事务完整性。

GBase 8s支持ACID事务模式确保每个独立事务的数据完整性与有效性,具备完善的提交、回滚机制,结合重做日志和回滚段共同作用确保在灾难恢复时数据保持一致性。

GBase 8s提供SQL92标准中规定的四种事务隔离级别,目前默认的隔离级别是READ COMMITTED,此隔离级别保证查询语句只能看到查询开始及前提交的数据而无法看到未提交的数据或者在查询执行时其它并行事务提交做的改变。这也是目前Oracle与SQL SERVER的默认事务隔离级别。数据管理员可以通过提升事务隔离级别的方式获取更高的数据完整性保障。

GBase 8s支持外键功能,用来确保数据的参考完整性。

GBase 8s的数据存储加密采用库内加密的方式,在数据库管理系统的内核存储引擎级进行数据加解密处理,从而对于合法用户来讲是完全透明的,因此也可以称为透明加密。

现有的透明存储加密包括如下技术特点:

l 透明存储加密:存储加密由数据库内核在后端安全存储引擎中实现,对于合法用户来说完全透明,不影响合法数据库用户的前端操作,不存在功能损失;  

l 多密钥:支持库、表等不同数据粒度的存储加密,不同数据对象可采用不同的加密密钥,如一表一密,可有效防止单点突破,保证更高的数据安全性;

l 硬件加密:通过集成国家密码管理局审批的密码卡为安全数据库提供了高强度的加密函数及有效的密钥管理;

l 完善的密钥保护:采用多级密钥管理机制,主密钥存储在安全硬件之内,正常运行情况下密钥不以明文方式出现在加密卡外;

l 加密数据无膨胀:加密后密文与加密前明文的大小相同,防止了密文膨胀的问题。

l 由于采用了较为合理的优化机制,GBase 8s存储加密功能对性能造成的负面影响可控制在15%之内。

我要回帖

更多关于 数据库的事务隔离级别 的文章

 

随机推荐