Oracle 限制業務使用者自身修改密碼

xfhuangfu發表於2022-09-19

防止業務自身透過Oracle客戶端或第三方客戶端工具修改密碼,造成其他應用連線錯誤,防止資料庫因密碼延時驗證,出現Library cache lock等待事件。

建立使用者hfxf並授予許可權

SYS@cdb19c >create user hfxf identified by Oracle_123;
User created.
SYS@cdb19c >grant connect,resource to hfxf;
Grant succeeded.


使用業務使用者hfxf登入,嘗試修改自身密碼

[oracle@db19do01 ~]$ sqlplus hfxf/Oracle_123@hrpdb
SQL*Plus: Release 19.0.0.0.0 - Production on Mon Sep 19 21:57:08 2022
Version 19.3.0.0.0
Copyright (c) 1982, 2019, Oracle.  All rights reserved.
Connected to:
Oracle Database 19c Enterprise Edition Release 19.0.0.0.0 - Production
Version 19.3.0.0.0
HFXF@hrpdb >show user
USER is "HFXF"
HFXF@hrpdb >alter user hfxf identified by Oracle_456;
User altered.
HFXF@hrpdb >
HFXF@hrpdb >password
Changing password for HFXF
Old password:
New password:
Retype new password:
Password changed
HFXF@hrpdb >



業務使用者hfxf可以修改自身密碼

建立密碼驗證的函式

SYS@cdb19c >CREATE OR REPLACE FUNCTION verify_function_false
(username varchar2,
password varchar2,
  2    3    4  old_password varchar2)
  5  RETURN boolean IS
  6  BEGIN
  7  if user not in ('SYS','SYSTEM') then  -- customize this to allow any particular user by adding those users in this list of users.
  8  RETURN(FALSE);
  9  else
return true;
 10   11  end if;
 12  END;
/ 13
Function created.



建立profile並使用函式verify_function_false

SYS@cdb19c >CREATE PROFILE NO_CHANGE_PWD LIMIT PASSWORD_VERIFY_FUNCTION verify_function_false;
Profile created.
SYS@cdb19c >


修改業務使用者profile

SYS@cdb19c >alter user hfxf profile NO_CHANGE_PWD;
User altered.
SYS@cdb19c >


進行驗證,業務使用者hfxf已經不能修改自己密碼

[oracle@db19do01 ~]$ sqlplus hfxf/Oracle_789@hrpdb
SQL*Plus: Release 19.0.0.0.0 - Production on Mon Sep 19 22:06:54 2022
Version 19.3.0.0.0
Copyright (c) 1982, 2019, Oracle.  All rights reserved.
Last Successful login time: Mon Sep 19 2022 22:06:19 +08:00
Connected to:
Oracle Database 19c Enterprise Edition Release 19.0.0.0.0 - Production
Version 19.3.0.0.0
HFXF@hrpdb >alter user hfxf identified by Oracle_123;
alter user hfxf identified by Oracle_123
*
ERROR at line 1:
ORA-28221: REPLACE not specified
HFXF@hrpdb >password
Changing password for HFXF
Old password:
New password:
Retype new password:
ERROR:
ORA-28003: password verification for the specified password failed
Password unchanged
HFXF@hrpdb >
-the end-


來自 “ ITPUB部落格 ” ,連結:http://blog.itpub.net/28373936/viewspace-2915338/,如需轉載,請註明出處,否則將追究法律責任。

相關文章