السلام عليكم ..
أخواني هذا الكود بشكل عام يقوم بالبحث عن اليوزرات القديمة التي لم تدخل ثم يقوم بحظرها .
الكود يحتوي على العديد من المشاكل ، و لم أستطع حلها لكوني مبدئ في عالم الأوركل عموما و pl/sql خصوصا .
آملا من الله ثم منكم مساعدتي في انجازة .
CREATE OR REPLACE PROCEDURE a1 isuserX varchar2 (255);sqlStatment
varchar2(2000);audit_value varchar2 (255) ;username_value varchar2 (255)
;AUDIT_OPTION_value varchar2 (255) ;
cursor getuser
is
select username from (select username, max(logoff_time) as
logoff_time from dba_audit_session where username not in ('SYSTEM' , 'SYS'
,'OUTLN' , 'SCOTT' , 'ADAMS', 'JONES' ,'CLARK' , 'BLAKE' , 'HR ' ,'OE' ,
'AWR_STAGE' , 'CSMIG' , 'ANONYMOUS' ,'AURORA$ORB$UNAUTHENTICATED' ,'DBSNMP' ,
'DIP' ,'CTXSYS','DMSYS' ,'DSSYS' ,'EXFSYS' ,'LBACSYS','MDSYS' ,'ORACLE_OCM' ,
'ORDPLUGINS' ,'ORDSYS' , 'PERFSTAT' , 'TRACESVR', 'TSMSYS' , 'XDB' ) and
ACTION_NAME='LOGOFF' group by
username) where logoff_time< sysdate
-30;BEGIN select value into audit_value from V$PARAMETER
where name ='audit_trail'; if (audit_value is null )
then dbms_output.put_line('audit is not enable
'); else select
USER_NAME,AUDIT_OPTION into username_value , AUDIT_OPTION_value from
DBA_STMT_AUDIT_OPTS where USER_NAME is null and AUDIT_OPTION='CREATE SESSION'
; if (username_value is not null ) or
(AUDIT_OPTION_value !='CREATE SESSION')
then dbms_output.put_line('create session is
not
config'); else sqlStatment:='alter
user' ||userX|| 'account lock '; IF getuser %ISOPEN
THEN CLOSE getuser
; END
IF; open
getuser; fetch getuser into userX
; for i in getuser
loop execute immediate
sqlStatment; END
LOOP; close getuser;
END IF
; END IF
;
END ;/