第 13卷 第 2期
2005年 4月
电脑与信息技术
COMPUTERANDINFORMATIONTECHNOLOGY
Vol.13 No.2
Apzil
================================================================
2005
收稿日期:2005 01 24
作者简介:赵 敏(1978 ),女,安徽庐江人,在读研究生,主要研究方向为 JAVA计算;王余旺(1959 ),男,安徽潜山人,副教授,硕
士生导师,长期从事 JAVA计算方面的研究;刁兴春(1964 ),男,江苏泰兴人,研究员,硕士生导师,长期从事计算机应用方面的研究。
文章编号:1005 1228(2005)02 0054 03
基于 C/S与 B/S模式的
人力资源管理系统的数据库安全性研究
赵 敏1,3,王余旺2,刁兴春3
(1.安徽理工大学计算机科学与技术系,安徽 淮南 232001;2.安徽理工大学网络
中心,安徽 淮南 232001;3.解放军理工大学第 63研究所 3室,江苏 南京 210007)
摘 要:文章结合 DELPHI安全机制和 ORACLE9安全机制,讨论了在基于 C/S与 B/S模式
的人力资源管理系统中实现数据库的安全管理的方法,最后介绍了分别在 C/S与 B/S模式下
实现安全管理的实用技术。
关键词:数据库安全管理;ORACLE;角色;视图;Web服务
中图分类号:TP309 文献标识码:A
DatabasesecurityresearchonHumanResource
ManagementSystembasedonC/SandB/Smode
ZHAOMin1,3,WANGYu wang2,DIAOXing chun3
(1.TheDepartmentofComputerScienceandTechnology,AnhuiUniv.ofSci.andTech.,
HuainanAuhui 232001,China;2.TheCenterofNetworkAnhuiUniv.ofSci.
andTech.,HuainanAuhui 232001,China;3.63thResearchInstitute,
PLAUniv,.ofSci.&Tech.,NanjingJiangsu 210007,China)
Abstract:Thispapercombinesthesecuritymechanism ofDELPHIandORACLE9,then
discussestheimplementationwayofdatabasesecuritymanagementinHumanResource
ManagementSystem basedonC/SandB/Smodel.Finally,thispaperintroducesthe
practicalitytechnologyofimplementationsecuritymanagementunderC/SandB/Smode
respectively.
Keywords:databasesecuritymanagement;ORACLE;role;view;Webservice
0 引言
根据我军现有的网络资源的情况,综合网管
系统所管辖的各专业网系遍布于国内的多个省份
和地区,从整个体系结构看是一个多级多层的结
构,信息资源彼此分割,没有形成统一的数据管理
系统,数据的一致性差,因此迫切需要建立军事通
信网络人力资源管理系统。由于系统的特殊性,保
证数据库数据的安全可靠和正确有效是一项非常
重要的工作。数据库存放着大量重要的信息资源,
供不同的用户享用,因此存在不安全和危险性。在
用户共享资源时可能会出现:未授权用户对数据
的访问;授权用户超出了他们的访问权限,进行更
新活动;特别是非法用户绕过安全内核,窃取信息
资源等现象都会带来不可估量的严重后果。在过
去,单一的 C/S模式存在着跨平台性和可扩展性
差,很难进行各部门之间的信息交流;而单一的
B/S结构的管理系统中,HTML难于加密,易被
窃取和截获,使得系统安全性难以保证。因此我们
开发了 C/S与 B/S模式相结合的人力资源管理
系 统,系 统 人 员 首 先 通 过 C/S模 式 来 设 置
ORACLEDBMS,实现 C/S模式下的数据库安全
管理;一般用户通过 B/S模式根据其权限来查询
数 据库。这样既能利用B/S系统操作方便、查询
第 1期 赵 敏等:基于 C/S与 B/S模式的人力资源管理系统的数据库安全性研究
================================================================
·55·
速度快的特点,又能充分利用数据库系统本身所
提供的强大的数据库安全管理机制,可以更加完
善地实现数据库安全管理。
1 数据库安全管理的实现
(1)数据库安全管理的内容
数据库安全管理主要包括:
a.建立并管理 ORACLE9数据库用户的帐
目;
b.使用 ORACLE9的特权、对象特权和角色
来管理数据库系统的安全。
(2)数据库安全管理的实现步骤
用户要联入 ORACLE9数据库,必须具有合
法的用户名和口令,并且只能实施为其授予的权
限,其主要步骤如下:
a.根据用户单位的实际情况和具体要求,由
系统开发人员事先建立相应的角色,并为每种角
色 授 予 不 同 的 系 统 特 权。如:DBA 特 权、
RESOURCE特权,CONNECT特权等。
b.为每种角色授予
特权,如:Select特权、
Update特权、Insert特权、Delete特权等。
c.为不同的用户授予不同的角色。
2 利用 DBMS自身的安全机制
系统安全控制模型如图 1所示:
图 1 系统安全控制模型
2.1 用户身份鉴别
数据库中的数据是处在 DBMS的统一管理
和控制之下的,一个操作系统的用户要想访问数
据库中的资源,还必须办理数据库系统的相应"注
册手续"。例如在 ORACLE9中,用 CREATE
USERZM IDENTITFIEDBYZHAO;语句来创
建用户 ZM,口令 ZHAO;然后赋予用户 ZM 系统
管理员权限:
GRANTDBOTOZM;
这样用户 ZM 就可以以 DBO身份来对数据
库中的数据进行操作,如:创建数据库表,而其他
的用户则没有权限访问这些表。而在实际情况中,
其他的用户需要使用到 ZM 用户建立的某些表。
我们采取以用户 ZM 进入数据库,然后建立一个
用户表,管理其他用户的用户名和口令,再分别对
这些用户进行权限赋予。这样其他用户就可以在
验证身份之后,根据其权限对用户 ZM 建立的某
些表进行操作。
2.2 视图机制
视图自动地为数据库系统提供了一层保护设
施,利用视图可以隐藏不想让别人操纵的信息。在
此笔者通过具体的例子来阐述视图是如何提供系
统的安全性保护的。
在人力资源管理系统中,被授权用户可以看
到当年优秀士兵名单,但是不能进行任何修改。系
统 中 创 建 了 两 个 表:ZM.excellentsolider和
ZM.planmanoeuvremanager。前者是优秀士兵
表,后者是计划调动管理表。故而创建指定某年的
优秀士兵视图的语句如下:
CREATE OR REPLACE VIEW
ZM.excellentsolider viewas
SELECT
SYSDATEasjoinupdate,name,id,distinction,sex,
borndate,hometown,
encouragements,punishes,curunit
FROM ZM.excellentsolider
UNION
joinupdate,name,id,ditinctionsex,borndate,
hometown,
encouragements,publishes,curunit
FROM ZM.planmanoeuvremanager;
2.3 存取控制
由于系统用户所处的位置不一样,所做的工
作不相同,因此需要限制每个用户的存取权限,以
防止不合法使用造成数据的泄露、更改或破坏。例
如:
GRANT CREATE SESSION,CREATE TABLE,
CREATE,CREATEVIEW,CREATEANYINDEXTO
ZM;
以上语句授予某工作人员 ZM 某些系统权
限。
GRANTALLPRIVELEGES ONOLIDERINFO
TOZM WITHGRANTOPTION;
以上语句授予用户 ZM对象权限。
系统按内容控制来实现访问控制,也就是由
数据内容来决定用户能否进行访问,而不仅仅是
数据的名称。例如在保密规则中,任何人只能查阅
·56· 电脑与信息技术 第 13
================================================================
卷
下级的
;任何领导只能查阅、修改他所管理的
单位的数据。在访问规则中使用谓词,一条访问规
则可以写成四元组(s,o,t,p),其中,s是发出访问
请求的主体(用户),o是访问对象,t是访问类型,
p是谓词。访问规则指示:在谓词p为真时,主体s
有权对 o进行 t类型的访问。
2.4 角色管理
人力资源数据库是一个拥有很多用户的大规
模数据库,并且 ORACLE9提供 70多种系统权
限,因此必须根据单位的具体情况对这些用户进
行分组,首先根据部队级别大致分为三级:总部、
军区、下属单位,在每一级中根据用户的级别进行
角色分组,由系统管理员为每种角色分配系统权
限和对象权限。
3 在 C/S模式下数据库系统的安全管理
在利用 DELPHI开发用户安全管理界面时,
要求在应用系统中建立用户表、功能表和权限分
配表。但是所建立的用户不是独立的,而是与数据
库安全机制中的用户相关联,即在应用系统中向
用户表中添加用户的同时,在数据库中也创建一
个与之相对应的用户,使用户的登录及用户权限
的验证通过数据库系统来完成。这样不仅能利用
数据库本身所提供的强大的安全机制,又将数据
库的安全集成于应用系统中。
用 DELPHI实现数据库安全管理,主要是实
现数据库与 ORACLEDBMS的接口。具体步骤
如下:
(1)在应用系统中创建新用户,并将此用户注
册到 ORACLEDBMS中:
Table1.Append;
Table1.FieldValues['yonghuming']:= Edit1.text;
Table1.FieldValues ['yonghukouling'] : =
Edit2.text;
Table1.FieldValues ['yonghuquanxian'] : =
Edit3.text;
Table1.Post;
IfTable1.FeildValues['yonghuquanxian'].Values=
'管理员 '
Thensql.add('grantdbato’+ Edit1.text);
(2)菜单访问权限控制
在操作界面上,每一菜单对应一个或若干个
事务,但同一事务只对应一个菜单项。不同身份的
用户完成的工作不同,所需要执行的菜单项也必
然不同。某些用户对一些菜单是无权操作的,如果
用户可以随便点击任何一个菜单项,则有可能出
现越权。本系统采用下面的办法解决这个问题:首
先,使菜单中的每一项分别与一个字母一一对应,
然后在数据库中建立用户字典,如图 2所示。QX
字段记录的是用户对各个菜单项的执行权限,例
如,001号用户的权限字段的值为 A,则说明 001
号用户对于与字母 A相对应的菜单项有执行的
权限,在菜单生成时,先对照用户字典查看该用户
的执行权限。这样就可以有效的控制用户对菜单
的执行权限,不会发生越权执行的现象。
序号 字段名 类型 说明 备注
1 YHBH Char(4) 用户编号
2 YHXM Varchar(8) 用户姓名
3 KL Char(8) 密码
4 QX Char(26) 权限
图 2 用户字典
4 在 B/S模式下的安全管理
在 B/S模式下,采用面向服务的架构即 Web
服务,使各级人力资源信息无需进行汇总,用户直
接通过网络即可检索出有效的数据。通过身份验
证来控制用户进入系统,用户根据系统管理员赋
予的权限只能进行相应的查询操作,而不直接对
数据库进行更新操作,这样既提高了数据的查询
速度,又增强了数据库的安全性。
5 小结
人力资源管理系统采用了多级安全控制,除
了用户安全管理和数据库安全管理之外,还需采
用网络安全管理策略,如:防火墙技术,数据加密
技术,数字签名等。将数据安全管理集中在 C/S
端的应用系统中,结合 DELPHI安全控制和
ORACLE9的安全机制,在 B/S端用户通过浏览
器即可以进行查询,这样不仅提高了系统的安全
性、可靠性、实用性、可操作性,而且给开发和维护
带来了巨大的效益。
参考文献:
[1] 东方人华 .ORACLE9入门与提高[M].北京:清华大学出
版社,2003.
[2] 任旭钧,王永生,冯泽波,译 .DELPHI5开发人员指南[M]
.北京:机械工业出版社,2002.
[3] 赵广利,赵焕忠 .基于 ORACLE数据库安全管理技术的实
现[J].计算机工程与应用,2000.
[4] 安志敏 .安全技术及其在数据库应用系统中的设计与实现
[D].大连:大连理工大学学报,2000.8,42 44.