Oracle: Account is locked

นอกจาก profile จะสามารถกำหนดระยะเวลา เพื่อบังคับให้ user เปลี่ยน password ก็ยังสามารถกำหนดได้ว่า ถ้า user login ผิดติดต่อกันกี่ครั้ง account ก็จะถูก lock เหมือนเรากดรหัส ATM ผิด 3 หน แล้วถึงยึดบัตรนะแหละค่ะ แต่สำหรับใน profile จะกำหนดในตัวแปร FAILED_LOGIN_ATTEMPTS (เช็คได้จาก resource_name column ใน dba_profiles table) ซึ่ง error ที่แสดงตอนที่ login ก็จะแสดงดังนี้

ORA-28000: The account is locked

หรือถ้าต้องการเช็คสถานะ ก็ทำได้ดังนี้

> select account_status, lock_date from dba_users where username = '<username>';

ตัวอย่างของ account ที่ถูกล็อคเป็นดังนี้

ACCOUNT_STATUS LOCK_DATE
----------------------------- ---------
LOCKED 11-SEP-09



ถ้า account ปกติ ค่า account_status จะเป็น OPEN

ถ้าจะ unlock (หรือ lock) ก็ใ้ช้คำสั่งนี้เลยค่ะ

> ALTER USER <username> ACCOUNT <UNLOCK | LOCK>;

สำหรับ วิธีจะแก้ FAILED_LOGIN_ATTEMPTS ใน profile ทำได้ดังนี้ค่ะ

> ALTER PROFILE <profile>
LIMIT failed_login_attempts <value | UNLIMITED | DEFAULT >;



Reference:
Oracle profile

No comments:

Post a Comment