ممانعت از تغییر پسورد توسط کاربران فاقد مجوز

هر کاربری می تواند بدون داشتن مجوز اضافه ای(مانند alter user)؛ پسوردش را با یکی از روشهای زیر تغییر دهد:

SQL> grant create session to usef;

Grant succeeded.

SQL> conn usef/a

Connected.

روش اول:

SQL> alter user usef identified by b;

User altered.

روش دوم:

SQL> password

Changing password for USEF

Old password:

New password:

Retype new password:

Password changed

برای جلوگیری از تغییر پسورد کاربر usef(به شیوه مذکور)، میتوان از تریگر زیر استفاده کرد:

SQL> create or replace trigger stop_changing_pass

 before alter

 on database

 declare

 begin

 if user = ‘USEF’ then

 if (ora_dict_obj_type = ‘USER’) then

 raise_application_error(-20010,’you cannot change your own password’);

 end if;

  end if;

 end;

 /

Trigger created.

با ایجاد این تریگر با مالکیت sys، کاربر usef نمی تواند پسوردش را تغییر دهد:

SQL> conn usef/1

Connected.

روش اول:

SQL> alter user usef identified by b;

ORA-04088: error during execution of trigger ‘SYS.STOP_CHANGING_PASS’

ORA-00604: error occurred at recursive SQL level 1

ORA-20010: you cannot change your own password

ORA-06512: at line 4

روش دوم:

SQL> password

Changing password for USEF

Old password:

New password:

Retype new password:

ORA-04088: error during execution of trigger ‘SYS.STOP_CHANGING_PASS’

ORA-00604: error occurred at recursive SQL level 1

ORA-20010: you cannot change your own password

ORA-06512: at line 4

Password unchanged

دیدگاهتان را بنویسید