网络编程 | 站长之家 | 网页制作 | 图形图象 | 操作系统 | 冲浪宝典 | 软件教学 | 网络办公 | 邮件系统 | 网络安全 | 认证考试 | 系统进程
Firefox | IE | Maxthon | 迅雷 | 电驴 | BitComet | FlashGet | QQ | QQ空间 | Vista | 输入法 | Ghost | Word | Excel | wps | Powerpoint
asp | .net | php | jsp | Sql | c# | Ajax | xml | Dreamweaver | FrontPages | Javascript | css | photoshop | fireworks | Flash | Cad | Discuz!
当前位置 > 网站建设学院 > 网络编程 > 数据库 > Oracle教程
Tag:注入,存储过程,分页,安全,优化,xmlhttp,fso,jmail,application,session,防盗链,stream,无组件,组件,md5,乱码,缓存,加密,验证码,算法,cookies,ubb,正则表达式,水印,索引,日志,压缩,base64,url重写,上传,控件,Web.config,JDBC,函数,内存,PDF,迁移,结构,破解,编译,配置,进程,分词,IIS,Apache,Tomcat,phpmyadmin,Gzip,触发器,socket
数据库:数据库教程,数据库技巧,Oracle教程,MySQL教程,Sybase教程,Access教程,DB2教程,数据库安全,数据库文摘
本月文章推荐
.甲骨文宣布CFO辞职 可能获320万美.
.Oracle中自动存储管理技术原理及.
.在RHEL上安装Oracle 10g AS 3 St.
.Oracle诊断案例-SGA与Swap之二.
.Oracle数据库加密曝漏洞 几分钟即.
.向数据库中增加一些魔术.
.ORACLE UPDATE 语句语法与性能分.
.ORACLE的存储过程的异步调用--.
.linux下文件分割与合并.
.终于知道什么叫做constraint了。.
.开机启动oracle的脚本.
.WebLogic与ORACLE数据库的连接配.
.ORACLE 9.2.0.4 PATCHES 安装!.
.ORACLE 回滚段表空间数据文件丢失.
.教你如何彻底删除Windows上的 Or.
.Oracle中的用户创建和权限的分配.
.java-oracle中几十个实用的PL/SQL.
.在codesmith中去掉oracle下划线.
.Install Oracle10g On RedhatEL .
.如何使特定用户具有smbmount上的.

保证Oracle数据库安全性的策略和方法(1)

发表日期:2008-2-9


数据库安全性问题一直是围绕着数据库治理员的噩梦,数据库数据的丢失以及数据库被非法用户的侵入使得数据库治理员身心疲惫不堪。围绕数据库的安全性问题提出了一些安全性策略,希望对数据库治理员有所帮助。 对于数据库数据的安全问题,数据库治理员可以参考有关系统双机热备份功能以及数据库的备份和恢复的资料。

一、组和安全性:

在操作系统下建立用户组也是保证数据库安全性的一种有效方法。Oracle程序为了安全性目的一般分为两类:一类所有的用户都可执行,另一类只DBA可执行。在Unix环境下组设置的配置文件是/etc/group,关于这个文件如何配置,请参阅Unix的有关手册。

保证安全性的几种方法:

(1) 在安装OracleServer前,创建数据库治理员组(DBA)而且分配root和Oracle软件拥有者的用户ID给这个组。DBA能执行的程序只有710权限。在安装过程中SQL*DBA系统权限命令被自动分配给DBA组。

(2) 答应一部分Unix用户有限制地访问Oracle服务器系统,增加一个由授权用户组的Oracle组,确保给Oracle服务器实用例程Oracle组ID,公用的可执行程序,比如SQL*Plus,SQL*Fo

rms等,应该可被这组执行,然后该这个实用例程的权限为710,它将答应同组的用户执行,而其他用户不能。

(3) 改那些不会影响数据库安全性的程序的权限为711。注:在我们的系统中为了安装和调试的方便,Oracle数据库中的两个具有DBA权限的用户Sys和System的缺省密码是manager。为了您数据库系统的安全,我们强烈建议您该掉这两个用户的密码,具体操作如下:

在SQL*DBA下键入:

alter user sys indentified by passWord;

alter user system indentified by password;

其中password为您为用户设置的密码。  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:jim,narry,scott

ora_test_osdba_a:NONE:3:pat

ora_test_role1:NONE:4:bob,jane,tom,mary,jim

bin: NONE:5:root,oracle,dba

root:NONE:7:root  词组“ora_test_osoper_d”表示组的名字;词组“NONE”表示这个组的密码;数字1表示这个组的ID;接下来的是这个组的成员。前两行是Oracle服务器角色的例子,使用test作为sid,osoper和osdba作为Oracle服务器角色的名字。osoper是分配给用户的缺省角色,osdba带有WITHADMIN选项。为了使这些数据库角色起作用,您必须shutdown您的数据库系统,设置Oracle数据库参数文件 initORACLE_SID.ora中os_roles参数为True,然后重新启动您的数据库。假如您想让这些角色有connectinternal 权限,运行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设置非凡的密码。
数据库安全性问题一直是围绕着数据库治理员的噩梦,数据库数据的丢失以及数据库被非法用户的侵入使得数据库治理员身心疲惫不堪。围绕数据库的安全性问题提出了一些安全性策略,希望对数据库治理员有所帮助。 对于数据库数据的安全问题,数据库治理员可以参考有关系统双机热备份功能以及数据库的备份和恢复的资料。

一、组和安全性:

在操作系统下建立用户组也是保证数据库安全性的一种有效方法。Oracle程序为了安全性目的一般分为两类:一类所有的用户都可执行,另一类只DBA可执行。在Unix环境下组设置的配置文件是/etc/group,关于这个文件如何配置,请参阅Unix的有关手册。

保证安全性的几种方法:

(1) 在安装OracleServer前,创建数据库治理员组(DBA)而且分配root和Oracle软件拥有者的用户ID给这个组。DBA能执行的程序只有710权限。在安装过程中SQL*DBA系统权限命令被自动分配给DBA组。

(2) 答应一部分Unix用户有限制地访问Oracle服务器系统,增加一个由授权用户组的Oracle组,确保给Oracle服务器实用例程Oracle组ID,公用的可执行程序,比如SQL*Plus,SQL*Fo

rms等,应该可被这组执行,然后该这个实用例程的权限为710,它将答应同组的用户执行,而其他用户不能。

(3) 改那些不会影响数据库安全性的程序的权限为711。注:在我们的系统中为了安装和调试的方便,Oracle数据库中的两个具有DBA权限的用户Sys和System的缺省密码是manager。为了您数据库系统的安全,我们强烈建议您该掉这两个用户的密码,具体操作如下:

在SQL*DBA下键入:

alter user sys indentified by password;

alter user system indentified by password;

其中password为您为用户设置的密码。  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:jim,narry,scott

ora_test_osdba_a:NONE:3:pat

ora_test_role1:NONE:4:bob,jane,tom,mary,jim

bin: NONE:5:root,oracle,dba

root:NONE:7:root  词组“ora_test_osoper_d”表示组的名字;词组“NONE”表示这个组的密码;数字1表示这个组的ID;接下来的是这个组的成员。前两行是Oracle服务器角色的例子,使用test作为sid,osoper和osdba作为Oracle服务器角色的名字。osoper是分配给用户的缺省角色,osdba带有WITHADMIN选项。为了使这些数据库角色起作用,您必须shutdown您的数据库系统,设置Oracle数据库参数文件 initORACLE_SID.ora中os_roles参数为True,然后重新启动您的数据库。假如您想让这些角色有connectinternal 权限,运行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设置非凡的密码。
上一篇:整理Oracle数据库碎片 人气:505
下一篇:Oracle数据库安全策略分析(二) 人气:817
浏览全部Oracle教程的内容 Dreamweaver插件下载 网页广告代码 祝你圣诞节快乐 2009年新年快乐