当前位置:eNet硅谷动力 > 网络安全频道 > Oracle数据库
ORACLE中利用角色增强系统安全性
2004-07-20 23:37 来源:enet论坛 [收藏到E起摘]
【编者按】
   数据安全性是指保护数据以防止非法的使用,避免造成数据有意或无意的丢失、泄露或破坏。由于数据库系统中集中存放有大量的数据,这些数据又为众多用户所共享,所以安全约束是一个极为突出的问题。

ORACLE数据库系统在实现数据库安全性管理方面采取的基本措施有:


通过验证用户名称和口令,防止非ORACLE用户注册到ORACLE数据库,对数据库进行非法存取操作。


授予用户一定的权限,例如CONNECT,RESOURCE等,限制用户操纵数据库的权力。


授予用户对数据库实体(如表、表空间、过程等)的存取执行权限,阻止用户访问非授权数据。


提供数据库实体存取审计机制,使数据库管理员可以监视数据库中数据的存取情况和系统资源的使用情况。


采用视图机制,限制存取基表的行和列集合。

----在实际应用中,许多系统往往采用假用户(即非数据库用户)身份来管理,而真实用户的身份和登录口令就隐藏在应用系统中,或经过各种压缩加密等处理的配置文件中。但这样往往留下隐患,只要从分析应用程序入手,最终会分析出系统使用的数据库用户和口令,那么其安全性也就消失了。另一方面,系统代码是程序员写出来的,如果程序员有破坏意图,这种模式没有一丝的安全,因为他通过自己掌握的代码不经分析就轻而易举的获得登录用的数据库用户和口令。

----而采用真实数据库用户,存在着权限分配上的难度,特别是用户数和应用表数都很多时,这时必然要使用角色来管理应用权限的分配。当然不能直接将权限或角色直接分配给用户,否则用户可以不同过应用系统,而采用SQL*PLUS等前端工具进入系统,进行一些没有经过应用系统检查的操作,产生的结果可能不符合应用逻辑。


----我们在实践中发现,可以采用另一种方式利用角色功能,来防止上面出现的安全“漏洞”。在这种方式下,用户采用自己的标识和口令注册,但在未得到授权的角色前,是没有操纵数据库的任何权限。而授权用户使用的角色是埋在应用程序中的,只有应用程序才知道角色的名称和口令,从而激活角色,使用户拥有相应的权限。在应用系统之外,用户可以连接到ORACLE,但没有激活相应的角色,他是不能做任何事情的,而开发人员不知道用户的标识和口令,他没有办法登录到ORACLE,即使他能够推算出角色的标识和口令。


----下面根据一个例子给出具体的实现过程:


----我们假设用户xiaoli在工作中能够对工资表account.paytable(account是表paytable的拥有者)有查询和更新的权限,而这些权限我们不直接授予xiaoli,而是构造一个角色(比如考勤员checkerrole),这个角色恰好适合于xiaoli,再将角色授予xiaoli,但角色在激活时需要口令,该口令不对xiaoli公开。每个用户需要一个缺省的角色,是用户连接到ORACLE时的缺省角色。这个角色只有CONNECT权限,我们假为defaultrole。


----下面给出具体的操作SQL:


(1)设定各种角色,及其权限

CREATE ROLE checkerrole IDENTIFIEDBYxm361001;

CREATE ROLE defaultrole IDENTIFIEDBYdefaultrole;

GRANTSELECT,UPDATEONaccount.paytableTOcheckerrole;

GRANTCONNECTTOdefaultrole;

(2)创建用户

CREATEUSERxiaoliIDENTIFIEDBYxiaoli;

(3)授权

GRANTcheckerroleTOxiaoli;

GRANTdefaultroleTOxiaoli;

(4)设定用户缺省的角色

ALTERUSERxiaoliDEFAULTROLEdefaultrole;

(5)注册过程

CONNECTxiaoli/xiaoli@oracle

此时用户只有其缺省角色的权限。

(6)激活角色

SETROLEcheckerroleIDENTIFIEDBYxm361001;


----操作成功后,xiaoli拥有checkerrole的权限。


----这里的角色和口令是固定的,在应用系统中可以由应用管理人员自行设置则更为方便安全。


----上面给出的是在SQL*PLUS下的操作过程,在实际中还是要与应用系统联系在一起。我们不讨论用户和角色的创建怎样在应用开发语言中的实现过程,在这里给出用户登录时的POWERBUILDER代码,理解了这个例子,前者的实现也不难。


Transactiongtr_Oracle7

gtr_Oracle7=createTransaction

gtr_Oracle7.DBMS="O73"

gtr_Oracle7.database=""

gtr_Oracle7.UserID=ls_UserID

//通过对话框取得的用户标识

gtr_Oracle7.DBPass=ls_Passwd

//通过对话框取得的用户口令

gtr_Oracle7.LogID=ls_UserID

gtr_Oracle7.LogPass=ls_Passwd

gtr_Oracle7.ServerName="@oracle"

//在SQL*NET中创建的别名

gtr_Oracle7.DBParm=""

ConnectUsinggtr_Oracle7;

ifgtr_Orale7.sqlcode=-1then

MessageBox("错误","没有注册到数据库系统!")

return-1

endif

//ls_Role和ls_RolePasswd为从配置文件中

或通过其它途径获得的用户的角色名和口令

ExecuteImmediate"SETROLE"+ls_Role+

"IDENTIFIEDBY"+ls_RolePasswd

Usinggtr_Oracle7;

Ifgtr_Oracle7.sqlcode<>0then

MessageBox("错误","没有激活相应的数据库系统角色!")

DisconnectUsinggtr_Oracle7;

return-1

Endif

Return1//成功注册并激活角色!


【责任编辑 李旭海】


投稿信箱:内容合作:010—65245588—3137
 





1、Linux网络安全技巧
2、“SSH”让远程控制更安全
3、W2kUtilManExp攻击程序分析
4、Linux御敌策略
5、Linux安全技巧11则
6、提升主动入侵防护IPS不是概念炒作
7、apache的..%5c漏洞原因源代码分析

 信息化手册
· 专家教你QQ聊天防盗五大绝
· 校园网如何部署GSN全局安
· 什么是CIO?
· 浅谈CRM系统应用中的四大
· 架构、构件、组件、框架、
· DSM领域定义建模和MDA模型
· 企业信息化管理“新领域”
· 软件测试步骤介绍
· 影响软件测试效率的因素
· 软件测试的基本原则
 信息化查询
应用分类:
重点项目
ERP CRM 电子政务 HR 无线 网络安全 服务器 存储 VoIP 智能卡 视频会议
财务管理 远程教育 网络建设
重点行业
电信 金融证券 广电 政府
服装 石化 汽车 邮政
制造业 房地产 医疗 商业
宾馆旅游 教育 民航 工商税务 公安 电力 保险 仓储 海关 人事 其它
对此感兴趣】 【 到论坛发表评论 】 【 E-mail给朋友】 【 回频道首页 】 【 关闭窗口





垃圾邮件
何时不再来

宽待接入方式
一览

DDos
攻击分析与防御

政府采购
打开节能绿色通道

新媒体梦想
照进手机电视的现实

从选型到实施
全面解析CRM
信息化优秀案例
2005 信息化最具影响力品牌
——思科政府网络安全解决方案

2005 物流行业专业服务奖
——金蝶物流服务行业解决方案

2005 制造行业最佳项目实施奖
——神州数码PDM系统应用案例

2005 教育信息化优秀服务商
——NEC校园网络建设成功案例
漏洞播报
1、蠕虫Win32/Pipown注入winlogon.
2、病毒Win32/Seresp改变URL 妨碍用
3、“泽拉丁变种JR”发送垃圾邮件让
4、“QQ通行证变种YRV”窃取用户QQ
5、蠕虫Win32.Looked.KP定期下载运
6、冒充“超级兔子” 突破QQ软键盘
7、自动运行木马下载器变种YTZ通过
8、“杀软禁闭者204800”改系统时间
9、微软承认Excel 2007存在漏洞 不
10、Cisco Unified MeetingPlace跨站
精彩文章推荐
1、手机辐射标准 有望今年年内出台
2、上海有线互动电视 计划明年推广
3、中电华通:运营3.5GHz的机遇来临
4、夺三项目 WAPI联盟完成产业布局
5、专家称:要警惕WCDMA势力封杀TD
6、大唐电信投入13亿元担保豪赌3G
7、把握用户需求 是IPTV成功的关键
8、美宽带市场 落后于世界先进水平
9、黄金周用手机WAP可订购小额保险
10、互联网 改变了电信业的游戏规则
eNet商城促销

AP与Gateway双模支持WDS及POE供电

48个10/100Mbps快速以太网端口

GPRS上网卡;最高传送速度85.6Kbp

极具性价比防火墙中小企业最佳选择
热门关键字:笔记本 | 手机 | 笔记本电脑 | 数码 | 数码相机 | 服务器| 主板 | CPU | 音箱 | 显示器 | 一体机 | 服务器 | 信息化 | 解决方案 | 游戏
关于eNet | 广告服务 | 版权声明 | 加入eNet | 联系我们 | 建议/投诉 | 网站导航 | 加入收藏

网站合作、内容监督、商务咨询、投诉建议:010-65245588
合作建议:hezuo@mail.enet.com.cn
Copyright © 1998--2008 硅谷动力公司版权所有 京ICP证000044号

京ICP证000044号