通行证: 用户 密码 域名空间  下载中心 社区论坛 信息公告 my小屋
联系我们
设为首页
加入收藏

 

qq,asp,php,jsp,xml,sql,.net,编程 程序 网页图象 建站经验 私服
首页 | 新闻资讯 | 编程开发 | 网页设计 | 图形图象 | 网络媒体 | 网站模板 | 数 据 库 | 投稿
论坛 | 操作系统 | 系统优化 | 网络安全 | 黑客技术 | 硬件学堂 | 硬件报价 | 服 务 器 | 地图
专题 | 应用软件 | 聊天通讯 | q q 专栏 | 建站经验 | 在线工具 | 站长club | 注 册 表 | 旧版
社会 | 游戏娱乐 | 设计欣赏 | 疑难解答 | 社区论坛 | 网络赚钱 | 网站地图 | 广告服务 | 服务
当前位置:首页>>编程开发>>sql专区>>正文 新版上线![旧版]
注:打开慢时请稍等
在oracle中利用角色增强应用系统安全性

http://www.iyit.net  日期:2006-5-3 19:26:51  来源:  点击:
参加讨论】 ----数据安全性是指保护数据以防止非法的使用,避免造成数据有意或无意的丢失、泄露或破坏。由于数据库系统中集中存放有大量的数据,这些数据又为众多用户所共享,所以安全约束是一个极为突出的问题。


----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//成功注册并激活角色!



编辑:黑鹰 [发送给好友] [打印本页] [关闭窗口] [返回顶部]
上一篇:远程检测ms sql server账号安全性
下一篇:怎样才能限制sql server只能让指定的机器连接
转载请注明来源:www.iyit.net
特别声明: 本站除部分特别声明禁止转载的专稿外的其他文章可以自由转载,但请务必注明出处和原始作者。文章版权归文章原始作者所有。对于被本站转载文章的个人和网站,我们表示深深的谢意。如果本站转载的文章有版权问题请联系编辑人员,我们尽快予以更正。

 相关文章
js 216网页安全色调色板 dw 风格 js 216网页安全色调色板 dw 风格 web网页配色方案及安全色谱
sql server 7.0与以前的版本相比,安全 设置proxy server和sql server实现互联 microsoft sql server 7.0安全问题    
mysql安全性指南(3)(转)             mysql安全性指南 (2)(转)            mysql安全性指南 (1)(转)           
远程检测ms sql server账号安全性      sql server安全规划全攻略             使用sql server 7.0建立一个安全的数据
xml web service 安全性 cgi教学:cgi安全问题(八) cgi教学:cgi安全问题(七)
cgi教学:cgi安全问题(六) cgi教学:cgi安全问题(五) cgi教学:cgi安全问题(四)
cgi教学:cgi安全问题(三) cgi教学:cgi安全问题(二) cgi教学:cgi安全问题(一)
cgi教程(9)编写安全的cgi脚本 cgi的安全(二) cgi的安全(一)
最新更新 热点排行 推荐新闻
sql server 7.0与以前的版本相比,安全
设置proxy server和sql server实现互联
microsoft sql server 7.0安全问题   
mysql安全性指南(3)(转)           
mysql安全性指南 (2)(转)          
去除dw mx 2004表格宽度辅助
驯服不听话的网页表格
dw mx 2004代码编辑新功能
细品dw mx 2004内建fw技术
用 javascript 写的一个映射表类
dreamweaver里使用层的一些建议
表格边框魔鬼教程
用dreamweaver进行网页优化
用dreamweaver制作拖拽效果
寻找dreamweaver鲜为人知的小秘诀
sql server 7.0与以前的版本相比,安全
sql简明教程(6)
sql简明教程(5)
sql简明教程(4)
sql简明教程(3)
qq珊瑚虫外挂4.0版本发布!
多个广告位招商!
摄影后期系列一:1分钟为数码相片去红眼
教您显示器亮度对比度的调节
qq挂机说明
asp进度条
photoshop通道抠图:给秀发飞扬的mm照
新版上线,今日正式开通!!!
更多精彩图文广告等着您!
asp中使用sql语句教程
sql简明教程(1)
第二十章 开发delphi对象式数据管理功
sql简明教程(1)
vbscript和javascript互相调用 
jsp教程(四)-jsp actions的使用
操作系统被入侵后的修复过程
五一别忘电脑防毒 养成良好上网习惯
google对ie浏览器将捆绑搜索功能表担忧
新版上线,今日正式开通!!!
用photoshop创意图形“岁月”
摄影后期系列一:1分钟为数码相片去红眼

 友情链接
设置首 页 - 版权声明 - 广告服务 - 关于我们 - 联系我们 - 友情连接
copyrights © 2004-2006 iyit.net all rights reserved.
网站合作、广告联系qq:147007642、466949678
易特网络技术 点击这里给我发消息