Oracle数据库数据安全面面观(一)(6)

文章作者 100test 发表时间 2007:03:14 13:42:51
来源 100Test.Com百考试题网


然后再利用触发器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‘,‘0delete‘,‘disabled‘);

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

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

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

rem 对ghxxb制立数据库触发子(当insert or 0update ghxxb时触发)

0drop trigger scjmmm. 

create or replace trigger  scjmmm  

before insert or  0update 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”在盯着你的数据库--因为这里面有他们想要的东西。



相关文章


用Oracle和Python武装你的头脑(5)(1)
Oracle数据库较好的重新启动步骤
学习并贯穿Oracle的25条基本知识
用Oracle和Python武装你的头脑(4)
Oracle数据库数据安全面面观(一)(6)
Oracle数据库性能保护(中)
Oracle数据库数据安全面面观(一)(5)
ORACLE认证2002完全版
用Oracle和Python武装你的头脑(3)
澳大利亚华人论坛
考好网
日本华人论坛
华人移民留学论坛
英国华人论坛