- 浏览: 1001465 次
- 性别:
- 来自: 北京
文章分类
- 全部博客 (529)
- 服务器 (8)
- jsp (1)
- java (6)
- AIX (1)
- solaris (3)
- linux学习 (53)
- javaScript (2)
- hibernate (1)
- 数据库 (74)
- sql语句 (8)
- oracle 学习 (75)
- oracle 案例 (42)
- oracle 管理 (42)
- Oracle RAC (27)
- oracle data guard (12)
- oracle 参数讲解 (14)
- Oracle 字符集 (8)
- oracle性能调优 (24)
- oracle备份与恢复 (12)
- oracle Tablespace (9)
- oracle性能诊断艺术 (1)
- oracle 11g学习 (5)
- oracle streams (1)
- oracle upgrade and downgrade (4)
- db2学习 (13)
- db2命令学习 (2)
- mysql (28)
- sql server (30)
- sql server 2008 (0)
- 工具 (10)
- 操作系统 (3)
- c++ (1)
- stock (1)
- 生活 (5)
- HADOOP (2)
最新评论
-
massjcy:
...
如何将ubuntu文件夹中文名改为英文 -
skypiea:
谢谢。。。
终于解决了。。。
Oracle 10.2.0.4(5)EM不能启动的解决方案(Patch 8350262) -
qwe_rt:
引用vi /etc/sysconfig/network 请问 ...
Linux操作系统下配置静态IP上网 -
liuqiang:
sudo killall -9 apache2
ps 和 kill 命令详解 -
dazuiba:
引用*绝杀 kill -9 PID 当使用此命令时,一定要通过 ...
ps 和 kill 命令详解
◆Oracle服务器实用例程的安全性
以下是保护Oracle服务器不被非法用户使用的几条建议:
(1) 确保$ORACLE_HOME/bin目录下的所有程序的拥有权归Oracle软件拥有者所有;
(2) 给所有用户实用便程(sqiplus,sqiforms,exp,imp等)711权限,使服务器上所有的用户都可访问Oracle服务器;
(3) 给所有的DBA实用例程(比如SQL*DBA)700权限。Oracle服务器和Unix组当访问本地的服务时,您可以通过在操作系统下把Oracle服务器的角色映射到Unix的组的方式来使用Unix管理服务器的安全性,这种方法适应于本地访问。
在Unix中指定Oracle服务器角色的格式如下:
ora_sid_role[_dla]
其中 sid 是您Oracle数据库的oracle_sid;
role 是Oracle服务器中角色的名字;
d (可选)表示这个角色是缺省值;a (可选)表示这个角色带有WITH ADMIN选项,您只可以把这个角色授予其他角色,不能是其他用户。
以下是在/etc/group文件中设置的例子:
|
词组“ora_test_osoper_d”表示组的名字;词组“NONE”表示这个组的密码;数字1表示这个组的ID;接下来的是这个组的成员。前两行是Oracle服务器角色的例子,使用test作为sid,osoper和osdba作为Oracle服务器角色的名字。osoper是分配给用户的缺省角色,osdba带有WITH ADMIN选项。为了使这些数据库角色起作用,您必须shutdown您的数据库系统,设置Oracle数据库参数文件 initORACLE_SID.ora中os_roles参数为True,然后重新启动您的数据库。如果您想让这些角色有connect internal权限,运行orapwd为这些角色设置密码。当您尝试connect internal时,您键入的密码表示了角色所对应的权限。
◆SQL*DBA命令的安全性
如果您没有SQL*PLUS应用程序,您也可以使用SQL*DBA作SQL查权限相关的命令只能分配给Oracle软件拥有者和DBA组的用户,因为这些命令被授予了特殊的系统权限。
(1) startup
(2) shutdown
(3) connect internal
◆数据库文件的安全性
Oracle软件的拥有者应该这些数据库文件($ORACLE_HOME/dbs/*.dbf)设置这些文件的使用权限为0600:文件的拥有者可读可写,同组的和其他组的用户没有写的权限。
Oracle软件的拥有者应该拥有包含数据库文件的目录,为了增加安全性,建议收回同组和其他组用户对这些文件的可读权限。
◆网络安全性
当处理网络安全性时,以下是额外要考虑的几个问题。
(1) 在网络上使用密码在网上的远端用户可以通过加密或不加密方式键入密码,当您用不加密方式键入密码时,您的密码很有可能被非法用户截获,导致破坏了系统的安全性。
(2) 网络上的DBA权限控制您可以通过下列两种方式对网络上的DBA权限进行控制:
A 设置成拒绝远程DBA访问;
B 通过orapwd给DBA设置特殊的密码。
◆建立安全性策略
系统安全性策略
(1)管理数据库用户:数据库用户是访问Oracle数据库信息的途径,因此,应该很好地维护管理数据库用户的安全性。按照数据库系统的大小和管理数据库用户所需的工作量,数据库安全性管理者可能只是拥有create,alter,或drop数据库用户的一个特殊用户,或者是拥有这些权限的一组用户,应注意的是,只有那些值得信任的个人才应该有管理数据库用户的权限。
(2) 用户身份确认:数据库用户可以通过操作系统,网络服务,或数据库进行身份确认,通过主机操作系统进行用户身份认证的优点有:
A 用户能更快,更方便地联入数据库;
B 通过操作系统对用户身份确认进行集中控制:如果操作系统与数据库用户信息一致,Oracle无须存储和管理用户名以及密码;
C 用户进入数据库和操作系统审计信息一致。
(3) 操作系统安全性
A 数据库管理员必须有create和delete文件的操作系统权限;
B 一般数据库用户不应该有create或delete与数据库相关文件的操作系统权限;
C 如果操作系统能为数据库用户分配角色,那么安全性管理者必须有修改操作系统帐户安全性区域的操作系统权限。
◆数据的安全性策略
数据的生考虑应基于数据的重要性。如果数据不是很重要,那么数据的安全性策略可以稍稍放松一些。然而,如果数据很重要,那么应该有一谨慎的安全性策略,用它来维护对数据对象访问的有效控制。
◆用户安全性策略
(1) 一般用户的安全性
A 密码的安全性:如果用户是通过数据库进行用户身份的确认,那么建议使用密码加密的方式与数据库进行连接。这种方式的设置方法如下:
在客户端的oracle.ini文件中设置ora_encrypt_login数为true;
在服务器端的initORACLE_SID.ora文件中设置dbling_encypt_login参数为true。
B 权限管理:对于那些用户很多,应用程序和数据对象很丰富的数据库,应充分利用“角色”这个机制所带的方便性对权限进行有效管理。对于复杂的系统环境,“角色”能大大地简化权限的理。
(2) 终端用户的安全性
您必须针对终端用户制定安全性策略。例如,对于一个有很多用户的大规模数据库,安全性管理者可以决定用户组分类为这些用户组创建用户角色,把所需的权限和应用程序角色授予每一个用户角色,以及为用户分配相应的用户角色。当处理特殊的应用要求时,安全性管理者也必须明确地把一些特定的权限要求授予给用户。您可以使用“角色”对终端用户进行权限管理。
◆数据库管理者安全性策略
(1) 保护作为sys和system用户的连接
当数据库创建好以后,立即更改有管理权限的sys和system用户的密码,防止非法用户访问数据库。当作为sys和system用户连入数据库后,用户有强大的权限用各种方式对数据库进行改动。
(2) 保护管理者与数据库的连接
应该只有数据库管理者能用管理权限连入数据库,当以sysdba或startup,shutdown,和recover或数据库对象(例如create,drop,和delete等)进行没有任何限制的操作。
(3) 使用角色对管理者权限进行管理
◆应用程序开发者的安全性策略
(1) 应用程序开发者和他们的权限数据库应用程序开发者是唯一一类需要特殊权限组完成自己工作的数据库用户。开发者需要诸如create table,create,procedure等系统权限,然而,为了限制开发者对数据库的操作,只应该把一些特定的系统权限授予开发者。
(2) 应用程序开发者的环境
A 程序开发者不应与终端用户竞争数据库资源;
B 用程序开发者不能损害数据库其他应用产品。
(3) free和controlled应用程序开发应用程序开发者有一下两种权限:
A free development
应用程序开发者允许创建新的模式对象,包括table,index,procedure,package等,它允许应用程序开发者开发独立于其他对象的应用程序。
B controlled development
应用程序开发者不允许创建新的模式对象。所有需要table,indes procedure等都由数据库管理者创建,它保证了数据库管理者能完全控制数据空间的使用以及访问数据库信息的途径。但有时应用程序开发者也需这两种权限的混和。
(4) 应用程序开发者的角色和权限数据库安全性管理者能创建角色来管理典型的应用程序开发者的权限要求。
A create系统权限常常授予给应用程序开发者,以至于他们能创建他的数据对象。
B 数据对象角色几乎不会授予给应用程序开发者使用的角色。
(5) 加强应用程序开发者的空间限制作为数据库安全性管理者,您应该特别地为每个应用程序开发者设置以下的一些限制:
A 开发者可以创建table或index的表空间;
B 在每一个表空间中,开发者所拥有的空间份额。应用程序管理者的安全在有许多数据库应用程序的数据库系统中,您可能需要一应用程序管理者,应用程序管理者应负责起以下的任务:
a)为每一个应用程序创建角色以及管理每一个应用程序的角色;
b)创建和管理数据库应用程序使用的数据对象;
c)需要的话,维护和更新应用程序代码和Oracle的存储过程和程序包。
我相信有了以上的这些建议,作为一个Oracle的管理者绝对可以做好他本职的工作了。可是,我们再怎么努力,都始终得面对这样一个现实,那就是 Oracle毕竟是其他人开发的,而我们却在使用。所以,Oracle到底有多少漏洞--我想这个不是你和我所能解决的。不过既然作为一篇讨论 Oracle数据安全的文章,我认为有必要把漏洞这一块也写进去,毕竟这也是“安全”必不可少的一部分。呵呵!
所以……
想必我没有理由再往下举了,因为读者肯定已经从其他有效的途径得到了关于Oracle漏洞的最新情报。我这里就不再赘述了。
总而言之一句话--“Oracle数据安全是一个博大而又精深的话题;如果你没有耐心,就永远不会得到它的精髓之所在。”
发表评论
-
Oracle enterprise linux 6.0 安装oracle 11g 所需要的包安装
2012-07-22 08:02 7620Linux 版本是Oracle enterprise ... -
Oracle10gR2 中 Oracle Wallet 的初步使用和维护
2011-06-02 01:59 19611) Wallet作用 从Oracle10gR2开始, 通过 ... -
如何手工删除oracle数据库和软件
2011-06-02 00:29 1427一、手工删库和数据库文件有时候,有可能在dbca图形界面中找不 ... -
AIX下设置Oracle10g随机启动,随机关闭的步骤
2011-06-02 00:19 1424假如ORACLE_HOME为/opt/app/oracle/p ... -
数据库突然无法登陆,只有sysdba可以
2011-05-20 18:05 1618数据库突然无法登陆,只有sysdba可以登陆。 检查aler ... -
Linux安装Oracle报Checking operating system version must be redhat-3, SuSE-9, redhat
2011-03-24 01:26 1887在Linux系统中安装oralce的过程中,如果Linux发行 ... -
How To Update NLS_SORT Parameter Value When Using 10g Thin JDBC Driver ? [ID 469
2010-12-17 10:05 2925Applies to: JDBC - Version: 1 ... -
使用SQL_TRACE进行数据库诊断(转自eygle)
2010-12-16 17:30 827SQL_TRACE是Oracle提供的用 ... -
oracle 查询时忽略大小写的方案研究
2010-12-15 02:00 2404项目已经开发完毕,由于业务变动,某些查询需要忽略大小写,研究是 ... -
Read By Other Session
2010-12-02 22:52 728Read By Other Session Definiti ... -
必须引起DBA重视的Oracle数据库碎片
2010-12-01 17:35 975目前,Oracle已经广泛的应用于各个行业。作为一名DBA,及 ... -
Wait Event: cache buffers chains
2010-11-30 15:58 1134cache buffers chains是相对比较常见的冲突事 ... -
log file sync(日志文件同步) 与 Log file parallel write 等待事件
2010-11-28 20:47 2112log file sync(日志文件同步)等待事件具有一个参数 ... -
删除Linux非rac环境下的ASM实例
2010-04-25 01:48 1987环境说明: 操作系统:CentOS 5 x86数据库:O ... -
扩大oracle最大session数以及清除inactive会话
2010-04-12 16:00 7279从上周起,服务器Oracle数据库出现问题,用不到半天,就会报 ... -
设计数据库时需要考虑的问题
2010-03-04 17:34 1504成功的管理系统=50% 的业务+(25%的数据库+25%的程序 ... -
介绍Oracle数据库锁的种类及研究
2009-12-02 09:30 1077本文通过对Oracle数据库锁机制的研究,首先介绍了Oracl ... -
expdp中使用连接字符串和network_link的区别
2009-12-01 11:47 1538expdp属于服务端工具,而exp属于客户端工具,expdp生 ... -
ora10G 使用数据泵(EXPDP和IMPDP)时应该注意的事项
2009-12-01 11:45 1223Oracle Database 10g引入了最新的数据泵(Da ... -
使用Oracle 10g数据泵(EXPDP/IMPDP)
2009-12-01 11:22 1998一、关于数据泵的概述 在Oracle 10 ...
相关推荐
Oracle的数据仓库系统的逻辑体系架构是由3层组成: 数据获取层:实现如何从所有源系统中获得原始的业务数据,并对其进行一致性处理,按主题进行数据重组和格式转换,然后传送并装载到数据仓库系统中。 数据管理层:...
Oracle的数据仓库系统的逻辑体系架构是由3层组成: 1.数据获取层 2.数据管理层 3.数据使用层
这是国内第一本深度讲解如何架构与设计高并发Oracle数据库系统的著作,也是国内第一本系统讲解内存数据库TimesTen的专著。作者是拥有10余年Oracle从业经验的资深数据库架构师,本书的内容也得到了业界以盖国强为代表...
数据仓库架构Oracle,数据仓库架构Oracle,数据仓库架构Oracle,数据仓库架构Oracle,数据仓库架构Oracle
系统学习ORACLE ERP EBS 详细资料
海量数据环境下的Oracle数据库系统架构设计和优化思路
新手必读:Oracle数据库操作全接触,原文地址http://www.newbooks.com.cn/info/137765_8.html
Oracle EBS应用技术架构.pdf
Oracle安全全接触,非常全面。 Oracle安全全接触,非常全面。
ORACLE数据中心运维架构师
谭怀远之Oracle海量数据架构设计思路讲解
航空结算系统基于Oracle的数据架构解决方案,有兴趣的,读
Oracle安全设置Oracle安全设置Oracle安全设置Oracle安全设置Oracle安全设置
Oracle EBS系统架构与应用实践-cnzzk,大神详细介绍了 Oracle EBS系统及架构,做信息化的可以深入了解
Oracle数据仓库架构.ppt
ORACLE+EBS+系统架构与应用实践