扫一扫
分享文章到微信
扫一扫
关注官方公众号
至顶头条
过程:
?在收费小型机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;?
如果您非常迫切的想了解IT领域最新产品与技术信息,那么订阅至顶网技术邮件将是您的最佳途径之一。
现场直击|2021世界人工智能大会
直击5G创新地带,就在2021MWC上海
5G已至 转型当时——服务提供商如何把握转型的绝佳时机
寻找自己的Flag
华为开发者大会2020(Cloud)- 科技行者