知识大全 数据库中利用角色增强应用系统安全

Posted

篇首语:盛年不重来,一日难再晨,及时当勉励,岁月不待人。本文由小常识网(cha138.com)小编为大家整理,主要介绍了知识大全 数据库中利用角色增强应用系统安全相关的知识,希望对你有一定的参考价值。

  数据安全性是指保护数据以防止非法的使用 避免造成数据有意或无意的丢失 泄露或破坏 由于数据库系统中集中存放有大量的数据 这些数据又为众多用户所共享 所以安全约束是一个极为突出的问题

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

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

  授予用户一定的权限 例如connect resource等 限制用户操纵数据库的权力

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

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

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

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

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

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

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

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

  下面给出具体的操作SQL

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

          CREATE ROLE checkerrole IDENTIFIEDBYxm            ;     CREATE ROLE defaultrole IDENTIFIEDBYdefaultrole;     GRANTSELECT  UPDATEONaccount  paytableTOcheckerrole;     GRANTCONNECTTOdefaultrole;  
      ( )创建用户       
          CREATEUSERxiaoliIDENTIFIEDBYxiaoli;  
     ( )授权       
          GRANTcheckerroleTOxiaoli;     GRANTdefaultroleTOxiaoli;  
      ( )设定用户缺省的角色      
         ALTERUSERxiaoliDEFAULTROLEdefaultrole;  
     ( )注册过程      
          CONNECTxiaoli/xiaoli@Oracle  
     此时用户只有其缺省角色的权限

  ( )激活角色

    

         SETROLEcheckerroleIDENTIFIEDBYxm            ;  
     操作成功后 xiaoli拥有checkerrole的权限      这里的角色和口令是固定的 在应用系统中可以由应用管理人员自行设置则更为方便安全 cha138/Article/program/SQL/201311/16394

相关参考

知识大全 ORACLE数据库中权限和角色的全面解析

ORACLE数据库中权限和角色的全面解析  以下文字资料是由(全榜网网www.cha138.com)小编为大家搜集整理后发布的内容,让我们赶快一起来看一下吧!  Orac

知识大全 数据库在网格计算中的角色

  网格计算是很多厂商都在推崇的计算方式的发展方向其核心内容就是把计算发展成为一种公共设施就像我们日常所使用的水和电一样网格计算的目标就是把计算发展成为一种公共设施一种日常用品它是普遍存在的这是从客户

知识大全 了解Oracle存储过程中的角色

了解Oracle存储过程中的角色  以下文字资料是由(全榜网网www.cha138.com)小编为大家搜集整理后发布的内容,让我们赶快一起来看一下吧!  角色(数据库权限

知识大全 如何消除Oracle数据库的安全隐患

如何消除Oracle数据库的安全隐患  以下文字资料是由(全榜网网www.cha138.com)小编为大家搜集整理后发布的内容,让我们赶快一起来看一下吧!  一用户角色的

知识大全 数据库中安全知识介绍

  数据库系统是在操作系统平台之上的最重要的系统软件数据库系统的安全可以说是十分重要的曾经有句话这样说如果网络遍地是金钱那么金钱就在数据库服务器中随着无纸化业务环境的不断扩大人们在数据库中存储著越来越

怎样有效利用基础数据库中的数据?

各类教育机构(学校)怎样有效利用基础数据库中的数据?各类教育机构(学校)一方面通过各种管理信息系统直观、有效、全面地利用基础数据,另一方面通过大规模应用和伴随式收集,使学校真正成为各级教育基础数据库的

知识大全 数据库领域的其他角色

SQL实战新手入门:数据库领域的其他角色  以下文字资料是由(全榜网网www.cha138.com)小编为大家搜集整理后发布的内容,让我们赶快一起来看一下吧!  数据库领

知识大全 利用作业备份和恢复数据库

  备份和恢复是数据库管理员维护数据库安全性和完整性的重要操作虽然各种数据库系统本身提供了备份和恢复数据库的功能但是操作步骤比较烦琐本文以SQLServer为例总结了常用的几种备份和恢复数据库的方法分

各级教育行政部门将怎样有效利用基础数据库中的数据?

各级教育行政部门将怎样有效利用基础数据库中的数据?教育部通过建设国家教育管理信息系统,在决策支持、业务管理、监测监管、评估评价、公共服务等方面深度应用各类教育基础数据,为深化教育领域综合改革的各项举措

演练过程中,依据扮演的角色和承担的任务不同,参演人员包括( )

演练过程中,依据扮演的角色和承担的任务不同,参演人员包括()。A.演练人员B.控制人员C.模拟人员D.培训人员E.观摩人员答案:ABCE【知识点】应急演练的类型和演练内容【答案依据】《安全生产应急管理