go to http://oracle.in.th

Monday, September 28, 2009

Enabled/Disabled Password Case Sensitive in Oracle 11g

ใน Oracle 11g นั้น ได้มีการเพิ่ม Feature ที่น่าสนใจเข้ามาอีกอย่างก็คือ การ Enabled/Disabled Password Case Sensitive โดยใช้พารามิเตอร์ที่มีชื่อว่า SEC_CASE_SENSITIVE_LOGON ซึ่งถ้าพารามิเตอร์นี้มีค่าเป็น True จะหมายความว่าตัวอักษรตัวพิมพ์เล็กหรือตัวพิมพ์ใหญ่จะมีผลแตกต่างกันใน Password แต่ถ้าค่าเป็น False จะหมายความว่า ตัวอักษรตัวพิมพ์เล็กหรือตัวพิมพ์ใหญ่จะมีผลเหมือนกันใน Password ซึ่งการตรวจสอบค่าพารามิเตอร์นี้สามารถทำได้โดยใช้คำสั่ง

SQL> show parameter sec_case_sensitive_logon;

โดยค่า Default จะเป็น True อยู่แล้ว แต่สามารถทำการแก้ไขให้เป็น False ได้โดยใช้คำสั่ง

SQL> alter system set sec_case_sensitive_logon=false;

หรือถ้าต้องการแก้ไขกลับให้มีค่าเป็น True ก็สามารถทำได้โดยใช้คำสั่ง

SQL> alter system set sec_case_sensitive_logon=true;

ทดสอบโดยการสร้าง User ชื่อว่า test และมี Password คือ Manager1



ทำการตรวจสอบค่า sec_case_sensitive_logon พบว่ามีค่าเป็น True อยู่ จากนั้นลองทำการ Login เข้า User test โดยใช้ Password Manager1 และ manager1 ผลคือ Manager1 สามารถทำการ Login ได้ตามปกติ แต่ manager1 ไม่สามารทำการ Login ได้



ลองทำการแก้ไขค่า sec_case_sensitive_logon ให้เป็น false และทำการทดสอบแบบเดิมอีกครั้ง คราวนี้จะพบว่าสามารถทำการ Login ด้วย password manager1 ได้แล้วครับ

False value in sec_case_sensitive_logon
ข้อเขียนนี้ช่วยฉัน:  

7 comments:

Tom Condo said...

อ่อ...

แล้วถ้า ใน oracle 10g

Default ของ Password Case sensitive มันเป็น True อย่างเดียวเลยเหรอคะ ไม่สามารถ Set ให้เป็น False ได้เหรอ??

Surachart Opun said...

SEC_CASE_SENSITIVE_LOGON
เป็น initialization parameter ที่ support Oracle Database >= 11gR1 นะครับ

ดังนั้น 10g จึงไม่มี parameter นี้นะครับ

benz said...

แล้วใช้ได้กับ user sys หรือว่า system ด้วยหรือเปล่าครับ

Unknown said...

แล้วถ้าเราแก้จาก TRUE เป็น FALSE แล้ว TRUE แล้วตัวใหญ่ตัวเล็กใน password จะยังคงสภาพอยู่รึป่าวครับ

ทำไมไม่ลองเอง ... เออ ...

Kim said...

@chootham ทดลองแล้วเป็นไงมั่งครับ?
@@mercedez31, คุ้น ๆ ว่าน้องที่ office ทดสอบแล้ว system มีผล ส่วน sys ไม่มีผลครับ

Unknown said...

@sirichai ลองแล้วครับ ...

ถ้า password ที่เราตั้งไว้ เป็น case sensitive เวลาที่เราปรับ

SEC_CASE_SENSITIVE_LOGON=FALSE ก็จะไม่ต้องห่วงเรื่องตัวเล็กใหญ่

พอเราปรับ

SEC_CASE_SENSITIVE_LOGON=TRUE อีกที password ที่เราตั้งไว้เป็น case sensitive ก็จะกลับมา ไม่ต้องไปตั้งใหม่นะครับ

@mercedez31 ในส่วน user sys นั้นไม่มีผลกับ parameter SEC_CASE_SENSITIVE_LOGON ครับ ไม่ว่าจะเป็น TRUE/FALSE ก็ต้องพิมพ์ password ตาม case ครับ เข้าใจว่าเป็นเพราะ ROLE SYSDBA มากกว่าครับ ไม่ได้ติดที่ user บังเอิญว่า user sys มันต้องเข้าด้วย as sysdba ทุกครั้ง นะครับ

ถ้าลอง grant sysdba to system แล้วเข้าด้วย system as sysdba ผลที่ได้ก็จะอยู่นอกเหนือค่า TRUE/FALSE ที่กำหนดไว้ใน parameter SEC_CASE_SENSITIVE_LOGON อยู่ดีครับ สรุปคือ ถ้าเป็น sysdba ยังไงก็ case sensitive แหงๆ

Kim said...

@chootham ตอบได้ละเอียดมาก ขอชื่นชม

Post a Comment