`

Oracle安全数据系统架构全接触(4)

阅读更多

5. 删除密码文件

在删除密码文件前,应确保当前运行的各数据库实例的初始化参数REMOTE_LOGIN_PASSWORDFILE皆设置为NONE。在删除密码文件后,若想要以管理员身份连入数据库的话,则必须使用操作系统验证的方法进行登录。

但是管理员都觉得乏味,因为在管理员中流行一种很简单的加密办法--就是经常,很频繁地修改自己的密码。可是,每次修改都跟打一次仗似的--因为更新程序并不是每个人都愿意做的事情。

那么有没有什么简单点的办法呢?请往下看:

模型:Oracle7.3;开发工具:Develope2000。收费系统(在数据库中的名称是SFYY),其Client端分散在市区的数个营业点,通过城域网与主机(小型 机)相连。

过程:

◆在收费小型机Oracle系统的system用户(DBA)下,创建新用户test;

create user test

identified by carton

default tablespace dataspace1

quota 100K

◆对test用户授以权限;

grant create session to test;

grant resource to test;

◆在test用户下建立一个存储函数mmtranslate,它其实是一个加密程序。下面是一个简单的例子。

function mmtranslate(m varchar2)

return varchar2

as

i number(2);

kk varchar2(10);

begin

kk:=′′;

i:=1;

loop

if i<=length(m) then

if instr(′1234567890′,substr(m,i,1),1,1)>0 then

kk:=kk||chr(100+to_number(substr(m,i,1)));

elseif instr(‘wxyz‘,substr(m,i,1),1,1)>0 then

kk:=kk||chr(-8+ascii(substr(m,i,1)));

else

kk:=kk||chr(4+ascii(substr(m,i,1)));

end if;

else

exit;

end if;

i:=i+1;

end loop;

return kk;

exception

when others then

return ′-1′;

end;

◆在test用户下建表mmtest并插入记录

create table mmtest

(usnamevarchar2(6),------用户名称

mimavarchar2(6)------加密前的密码);

insert into mmtest values( ‘sfyy‘,‘eds2‘);

commit;

◆执行以下语句

SQL>select mmtranslate(‘eds2‘) from dual;

MMTRANSLATE(‘EDS2‘)

----------------------------------------

ihwf

利用DBA权限更改sfyy的密码为上面语句的执行结果:

alter user sffy

identified by ihwf; ;

◆修改应用程序,对于开发环境是Develope2000的程序来说,主要是修改主程序的on-lo gon触发器

declare

mm varchar2(6);

begin

logon(‘test‘,‘carton‘);

select mima into mm from mmtest where usname=‘sfyy‘;

mm:=mmtranslate(mm);

logout;

logon(‘sfyy‘,mm);

end;

然后再利用触发器WHEN-NEW-FROM-INSTANCE执行Callfrom或Newform等 命令,进入业务处理程序。这个主程序应当仅仅由管理员来掌握,编译之后将执行文件下发 到各收费点的Clien端。

◆在System用户下,利用Oracle提供的pupbld.sql,建立表Productuserprofile,执行下面这样的命令,限制在非开发状态Sql命令的使用,例如:

insert into productuserprofile

(product,userid,attribute,charvalue) values

(‘SQL*Plus‘,‘TEST‘,‘CONNECT‘,‘DISABLED‘);

insert into productuserprofile

(product,userid,attribute,charvalue) values

(‘SQL*Plus‘,‘SFYY‘,‘DELETE‘,‘DISABLED‘);

这样,在SQL状态下,根本无法连接到TEST用户,而在 sfyy用户下,delete命令将不能执行。当然,DBA可以改变这些设置。

当然了,这个仅仅是属于一种“应用技巧”,但是足可以把那些每天忙于更新系统的管理员舒服好几天了。但是另一方面,还要加强对源程序的管理,在Client端只存放执行程序。加强审计,发现异常现象,及时处理。这样才可以做到更高一层的“安全”。

在下面,我主要是向大家介绍一个REM对GHXXB制立数据库触发子,密码的加密程序。

REM 对GHXXB制立数据库触发子(当INSERT OR UPDATE GHXXB时触发)

drop trigger scjmmm;

create or replace trigger scjmmm

before insert or update of mm On ghxxb For each Row

Begin

:new.mm:=ENCRYPT(:new.mm,:NEW.GH,TO_CHAR(SYSDATE,‘SS‘));

End;

/

---------------------------密码的加密程序ENCRYPT----------------------

Create or Replace

Function ENCRYPT (Inpass In Varchar2,IN_GH In Varchar2,IN_SS In Varchar2)

Return Varchar2 Is

bcs varchar2(20);

bcs1 number;

cs number;

jg number;

m_gh VARCHAR2(4);

m_mm VARCHAR2(20);

Begin

m_gh:=IN_GH;

m_mm:=INPASS;

cs:=TO_NUMBER(IN_SS);

If cs<=1 then cs:=77 ;end if;

bcs:=substr(to_char(ascii(substr(m_gh,1,1))),1,2);

If bcs<‘1‘ then bcs:=‘7‘ ;end if;

m_gh:=substr(m_gh,2);

Loop EXIT WHEN nvl(length(m_gh),0)=0 ;

bcs:=bcs||substr(to_char(ascii(substr(m_gh,1,1))),-1,1);

m_gh:=substr(m_gh,2);

End loop;

Loop EXIT WHEN nvl(length(m_mm),0)=0 ;

bcs:=bcs||substr(to_char(ascii(substr(m_mm,1,1))),-1,1);

m_mm:=substr(m_mm,2);

End loop;

bcs1:=to_number(bcs);

jg:=cs*bcs1;

Loop EXIT WHEN length(to_char(jg))>13;

jg:=jg*cs ;

End loop;

RETURN(IN_SS||substr(to_char(jg),1,14));

End;

/

总结上面的东西,我们仅仅是从自身做起,知道了怎么维护Oracle数据库安全这个话题的“皮毛”。可是,对于这个似乎永远也说不完的话题,我们光知道怎么从内部“防御”就够了吗?不要忘了,在外面,还有一群虎视耽耽的“hacker”在盯着你的数据库--因为这里面有他们想要的东西。

所以,请大家关注好下一个话题:

2.不被“hacker”入侵的几个建议

我们的目标是:没有蛀牙!(开个玩笑~!呵呵)其实应该是:它应尽可能地堵住潜在的各种漏洞,防止非法用户利用它们侵入数据库系统。对于数据库数据的安全问题,数据库管理员可以参考有关系统双机热备份功能以及数据库的备份和恢复的资料。

以下就数据库系统不被非法用户侵入这个问题作进一步的阐述。

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

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

(2)允许一部分Unix用户有限制地访问Oracle服务器系统,增加一个由授权用户组的Oracle组,确保给Oracle服务器实用例程 Oracle组ID,公用的可执行程序,比如SQL*Plus,SQL*forms等,应该可被这组执行,然后该这个实用例程的权限为710,它将允许同组的用户执行,而其他用户不能。

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

在SQL*DBA下键入:

alter user sys indentified by password;

alter user system indentified by password;

其中password为您为用户设置的密码。


分享到:
评论

相关推荐

    Oracle数据仓库架构.PPT

    Oracle数据仓库架构还涉及存储区域网络(SAN)、低延迟互连和专有协议,确保数据传输的安全和高效。通过集中管理控制台,管理员可以对整个数据仓库环境进行监控和维护,确保系统的稳定运行。 总结来说,Oracle数据...

    Oracle数据仓库架构

    Oracle数据仓库架构是一种高效、可扩展的解决方案,用于构建和管理大规模的数据分析环境。这个架构主要分为三个层次:数据获取层、数据管理层和数据使用层,每个层都有其特定的功能和重要性。 **数据获取层**是数据...

    Oracle EBS应用技术架构.pdf

    2. 端对端安全保护:Oracle EBS 应用技术架构提供了端对端的安全保护,保护企业的数据和应用。 3. 企业级主数据管理:Oracle EBS 应用技术架构提供了企业级主数据管理,支持数据的存储、处理和分析。 4. 可靠、坚实...

    数据仓库架构Oracle

    数据仓库架构Oracle,数据仓库架构Oracle,数据仓库架构Oracle,数据仓库架构Oracle,数据仓库架构Oracle

    ORACLE+EBS+系统架构与应用实践

    4. **安全性与合规性**:确保数据的安全性和合规性,满足行业标准和法规要求。 5. **云部署与移动支持**:支持云端部署和移动设备访问,增强系统的灵活性和可访问性。 ### 四、总结 ORACLE EBS凭借其强大的功能...

    海量数据环境下的Oracle数据库系统架构设计和优化思路

    ### 海量数据环境下Oracle数据库系统架构设计与优化思路 #### 一、分布式数据库系统架构设计 在海量数据处理环境中,传统的单机数据库系统已经难以满足高性能和高可用性的需求。因此,分布式数据库系统成为了一种...

    新手必读:Oracle10g数据库操作全接触

    Oracle数据库的设计目标在于能够高效地存储大量数据,并支持快速的数据查询、保障数据的安全性与一致性、实现跨网络的分布式管理以及支持客户-服务器架构等关键需求。Oracle SQL语法遵循ANSI 1986标准SQL规范,这...

    Oracle数据仓库架构.ppt

    综上所述,Oracle数据仓库架构是一个复杂而全面的系统,涵盖了从数据源到用户接口的各个环节。它利用先进的数据库技术、ETL工具、商业智能组件和集群技术,为企业的数据管理和决策支持提供了强大支持。通过优化这些...

    Oracle EBS系统架构与应用实践.docx

    Oracle EBS 系统架构与应用实践 Oracle EBS 系统架构是 Oracle 公司提供的一种企业资源规划(Enterprise Resource Planning,ERP)解决方案,旨在帮助企业集成和自动化其业务流程,提高运营效率和降低成本。本文将...

    航空结算系统基于Oracle的数据架构解决方案

    综合上述各点,航空结算系统基于Oracle的数据架构解决方案是一个全面而复杂的技术工程,它既需要对Oracle数据库的技术特性有深入的理解,也需要对航空业的业务逻辑有准确的把握。只有如此,才能设计出既高效又稳定的...

    Oracle Agile PLM技术架构方案.pdf

    系统体系架构主要介绍了 Oracle Agile PLM 软件平台的整体架构,包括数据模型、业务逻辑、用户界面等方面的内容。系统部署架构则介绍了 Oracle Agile PLM 软件平台的部署架构,包括服务器架构、网络架构、存储架构等...

    海量数据环境下的Oracle数据库系统架构设计和优化思路.pdf

    ### 海量数据环境下Oracle数据库系统架构设计与优化的关键知识点 #### 一、大数据时代的背景与挑战 在当前的大数据时代背景下,随着社会信息化进程的不断深入和社会经济活动的日益数字化,企业面临的最大挑战之一...

    Oracle EBS应用技术架构.pptx

    企业级服务总线是 Oracle EBS 应用技术架构的核心组件之一,提供安全门户服务、商务智能服务、数据访问服务、建模和计算服务、展示服务等。同时,该架构还提供了基于 Web 的应用界面、JDeveloper/IDS 多设备访问支持...

    Oracle安全全接触

    Oracle安全全接触,非常全面。 Oracle安全全接触,非常全面。

    Oracle数据仓库架构1.ppt

    2. **数据仓库管理**:Oracle提供OEM(Oracle Enterprise Manager)工具来管理和监控数据仓库的性能、安全性和优化。这包括对数据仓库的配置、备份、恢复和性能调优等操作。 3. **企业数据和运营数据**:数据仓库...

    Oracle Agile PLM技术架构方案.docx

    系统体系架构是指 Oracle Agile PLM 软件的系统结构设计,包括数据模型、应用程序架构和集成架构等。系统部署架构是指 Oracle Agile PLM 软件的系统部署设计,包括系统安装、配置和部署等。系统配置要求是指 Oracle ...

    ORACLE数据中心运维架构师

    ORACLE数据中心运维架构师

Global site tag (gtag.js) - Google Analytics