오라클 sql툴을 이용시에는 아무 문제가 없는데,
프로그램에서 ODP.NET을 통해 커넥션이 이루어지고 할때, 위와 같은 오류를 만나는 경우가 있다.
한국 검색사이트 시원한 해결책이 나오지 않는다.
구글을 통해 검색한 속시원한 답변 내용이다
=======================================
This is what I found on Metalink
Applies to:
Oracle Data Provider for .NET - Version: 9.2.0.8.0 to 10.2.0.3.0
Microsoft Windows (32-bit)
번역: ODP.NET 버전 9.2.0.8.0에서 10.2.0.3.0 Microsoft Windows (32-bit)운영체제에서 발생한다
Symptoms
You are trying to connect to 11g database using 10g ODP.NET (or lower version) and you receive
ORA-1017 - invalid username /password
While using 11g ODP.NET or 10g sqlplus ,this problem does not occur.
번역 : 증상 - 10g ODP.NET 또는 이하 버전을 사용해서 Oracle 11g database에 접속 시도할때 ORA-1017
- invalid username /password 메시지가 나타난다
Cause
Whenever we send the passwords using 10g ODP.NET ,it converts them into all upper cases.
Prior to 11g database , the passwords were case-insensitive.
So sending all-capital password would not cause problem there.
However, from 11g onwards , passwords are case sensitive.
Hence when ODP.NET sends all-capital password to a 11g database , password validation fails and results in the ORA-1017 error.
This issue is reported in an internal bug .The bug number is not revealed for confidentiality policy reasons. The backport request has been created for 10.2 and 10.1 but the patch was not available at the time of writing this note.
번역 :
원인 : 10g ODP.NET을 통해 패스워드를 전송할때 10g ODP.NET는 대문자로 치환후 전송하게 되고
11g database이전버전에서는 패스워드들이 case-insensitive라서 위와 같은 메시지가 뜨지 않는다
11g onwards부터 패스워드들은 case-sensitive이다
그래서 10g ODP.NET는 패스워드들을 대문자로 치환해서 커넥션할려고 하는데, 11g database는 대소문자 구분을 하기에 접속시에 사용자/패스워드 오류 메시지를 보낸다
이것은 내부 버그라고 알려졌다. 그 버그의 수는 비밀 정색상의 이유로 드러나지 않았다.
backport (패치)가 ODP.NET 10.2 and 10.1에 진행되어졌지만, 지금 글쓰는 시점에는 패치가 되지 않았다.
Solution
There are several solutions for this issue:
Configure the database to not support case-sensitivity in passwords.
Create all-capital passwords
Pass a lowercase password by wrapping the password field in quotes.
e.g.
("Data Source=ORCL;User ID=scott;Password = \"tiger\"");
The bug is also fixed in the 10.2.0.4.0 Oracle Database Patch 6810189.
번역 :
해결책 : 여러 방법이 있다.
패스워드에 대한 database속성을 case-senitivity를 지원하지 않게 설정하던가
아래 예제처럼 wrapping해서 소문자를 전송시켜라
가장빠른 해결책 : 비번을 대문자로 변경해버리자