资源预览内容
第1页 / 共3页
第2页 / 共3页
第3页 / 共3页
亲,该文档总共3页全部预览完了,如果喜欢就下载吧!
资源描述
PDF下载中心 Page 1 of 3 数据库的安全控制策略浅谈计算机系统的安全性一直都是令开发者头痛的问题,特别是在数据库系统中,由于数据大量集中存放,且为众多用户直接共享,安全性问题更为突出。安全性问题给我们带来的危害无须多言,世界上多家大型银行都在不同程度上遭受到非法入侵者的袭击,但由于商业原因,这些银行都不愿意公布损失程度,使安全性问题更难以解决。Sybase 作为一种大型数据库系统,其安全性控制策略较为典型。本文以 Sybase 数据库为例简要介绍在大型数据库中常见的安全性控制策略。 安全性控制的层次结构 Sybase 数据库为开发者提供了有效的安全性控制策略,既注重数据访问的安全性和监督用户的登录,又兼顾了用户在使用数据时对速度的要求。Sybase 中的安全性是依靠分层解决的,它的安全措施也是一级一级层层设置的,真正做到了层层设防。第一层是注册和用户许可,保护对服务器的基本存取;第二层是存取控制,对不同用户设定不同的权限,使数据库得到最大限度的保护;第三层是增加限制数据存取的视图和存储过程,在数据库与用户之间建立一道屏障。 安全性问题的基本原则 Sybase 基于上述层次结构的安全体系,提出以下几点实施安全的原则: 选择性访问控制(Discretionary Access Controls DAC) ,DAC 用来决定用户是否有权访问数据库对象; 验证,验证就是保证只有授权的合法用户才能注册和访问; 授权,对不同的用户访问数据库授予不同的权限; 审计,监视系统发生的一切事件。 Sybase 的安全控制策略 基于上述四点原则,Sybase 提供了四种基本策略进行安全性控制。 1.在创建服务器时,Sybase 将所有权限都分配给系统管理员,系统管理员可以在服务器上增加注册者(Logins)( 只有系统管理员有此权限) 。Logins 可以登录服务器但不能访问数据库。数据库属主(DBO) 有权增加用户(users) , users 可以使用分配给它的数据库。当 users访数据库时,首先以 Logins 身份进入服务器,系统自动打开默认数据库, Logins 身份转化为 users 身份。 PDF下载中心 Page 2 of 3 2.在用户登录后,系统要通过口令进行验证,以防止非法用户盗用他人的用户名进行登录。这一验证步骤在登录时的注册对话框中出现,注册与验证同时进行,用户名与口令有一个不符,登录请求被拒绝。 3.权限使得用户在数据库中活动范围仅被容许在小范围内,大大提高了数据库的安全性。在Sybase 系统中,对象的所有者或创建者自动被授予对对象的许可权。所有者则有权决定把许可权授予其他用户。 Sybase 提供了 GRANT 和 REVOKE 命令,以便授予或取消许可权。数据库所有者和系统管理员享有特殊许可权,包括数据库所有者(Database Owner,DBO)对自己所拥有的数据库中的一切对象具有全部许可权;系统管理员(System Administrantion,SA)享有服务器内的所有数据库的一切对象的许可权。 4.Sybase 提供了 Audit Server,它是能够全面审计跟踪服务器上一切活动的工具,在某些情况下,我们难以阻止非法操作的发生,但至少可以监视非法操作,并采取跟踪措施,找出非法执行操作的人。 除了以上四点基本策略,Sybase 数据库中还提供了两种对象视图和存储过程用于增强系统的安全性。 视图和存储过程像数据库中的其他对象,也要进行权限设定,这样用户只能取得对视图和存储过程的授权,而无法访问底层表。视图可以限制底层表的可见列,从而限制用户能查询的数据列的种类,还能通过应用 Where 子句限制表返回的行。 下面以具体实例说明 Sybase 的安全性控制策略。假设开发一个新项目,需要建一个服务器,命名为 Server,系统自动产生 SA,并要求输入口令( 在此我们均假设口令为 Null)。SA 通过 Logins 对话框 (或用 SQL 语句) 为服务器增加注册 Logins,则 Logins 有权访问 Sybase,SA 创建数据库 DB(SA 在数据库 DB 中的身份为数据库所有者 DBO),同时创建两个用户USER_1(设置登录名为 Login,默认服务器为 DB)和 USER_2 这两个用户只能访问数据库DB。DB 中有两张表 TABLE_1(COLUMN_1 INT,COLUMN_2 CHAR(5) 和 TABLE_2。 USER 1要访问 DB 时,首先以 Login 登录服务器,默认数据库 DB 被打开,Login 的身份就会化为 USER1 。在完成了登录和验证后,我们可以通过授权进行安全性控制。授权命令要由数据库属主 SA 发出:GRANT ALL ON TABLE 1,TABLE 2 TO USER 1 则USER1 拥有对 TABLE1 , TABLE2 的所有权限。当然, SA 也可以收回权限: REVODE DELETE ON TABLE1 FROM USER 1,样,USER1 就不能对 TABLE 1 进行删除操作。 视图和存储过程就象架设在用户与底层表之间的一道桥梁,用户只能对视图和存储过程进行操作,而无法直接访问底层表。下面创建一个视图人为例子。 CREATE VIEW VIEW 1 AS SELECT COLUMN1 FROM TABLE 1 GRANT ALL ON VIEW1 TO USER 2 PDF下载中心 Page 3 of 3 USER2 通过 VIEW 1 可以访问 COLUMN1 而无法访问 COLUMN 2,这就是 VIEW1 的屏作用。再用存储过程举一个屏蔽行的例子。 CREATE PROCEDURE PROC1 AS SELECT FROM TABLE1 WHERE (COLUMN11) GRANT EXECUTE ON PROC1 TO USER 2 当用户查询时,只能看到 COLUMN1 列值为 1 的行,其他行已经被 PROC1 屏蔽掉了。结语 虽然 Sybase 为我们提供了强大的安全体系保障,但我们也要看到,安全问题不可能通过系统得到彻底解决,并且过分注重安全问题反而会降低系统效率。如何运用系统提供的安全策略就有赖于开发者的智慧了。
网站客服QQ:2055934822
金锄头文库版权所有
经营许可证:蜀ICP备13022795号 | 川公网安备 51140202000112号