f公司施行新的IT安全制度后,系统使用的帐号也要90天换一次密码。
原先通过Solaris的Cron执行的Oracle上的任务,在密码到期未改时,就停止执行了。(是否更改Solaris配置可以避免?没去深究)
此外,Oracle的账户密码更改后,要修改保存密码的Script文件。麻烦不说,系统安全上也有瑕疵。
其实,如果是纯粹在Oracle内部执行的任务,可以通过Oracle的Scheduller来实现。(要和OS打交道的任务是否可以?还没试过。)
在Oracle 10.2.0.3版测试后,发现密码更改(password change),密码失效(password expire),甚至帐号死锁(account locked)的情况下还可以照常执行任务。
1. Create a table for test.
CREATE TABLE "AT_TEST"
( "NO" NUMBER(2,0),
"MESSAGE" VARCHAR2(30),
"CREATE_DATE" DATE
)
/
15:07……
2. Create test job via scheduller
BEGIN
DBMS_SCHEDULER.CREATE_JOB(
job_name => 'test',
job_type => 'PLSQL_BLOCK',
job_action => 'insert into AT_TEST values(10,'Test',sysdate);',
start_date => SYSDATE,
repeat_interval => 'freq=weekly; byday=mon,tue,wed,thu,fri; byhour=15-18; byminute=0,5,10,15,20,25,30,35,40,45,50,55; bysecond=0;',
enabled => TRUE
);
END;
/
15:15……
3. Change password
alter user at identified by abcde;
insert into AT_TEST values(20,'password changed.',sysdate);
15:20……
4.