문제

Oracle은 Oracle에 연결하는 프로그램을 실행하는 운영 체제 사용자가 데이터베이스 사용자를 식별 할 수 있도록하는이 개념을 가지고 있습니다. 보다 여기.

예를 들어 UNIX 머신의 사용자와 같이 다음과 같은 명령을 할 수 있습니다.

sqlplus /

사용자 이름이나 비밀번호없이 연결되는 Oracle 10.2 용 Java 프로그램을 작성하려고합니다. URL의 명백한 선택 :

jdbc:oracle:thin:/@localhost:1521:MYDBSID

작동하지 않으면 오류가 발생합니다 (죄송합니다. 지금 당장 사용 가능한 오류가 없습니다).

나는 다른 많은 형태 의이 일을 시도했지만 운이 없었습니다.

OS 식별 방법을 사용하여 Java 프로그램을 Oracle에 연결하는 방법에 대한 제안이 있습니까?

도움이 되었습니까?

해결책

JDBC Thin 드라이버는 운영 체제에서 필요한 정보를 수집 할 수없는 100% 순수 Java 구현입니다.

JDBC OCI 드라이버 가이 작업을 수행 할 수 있습니다! 사용 jdbc:oracle:oci8:/@MYDBSID, 서버 인 경우 Oracle 드라이버를 해당 머신에 설치해야합니다 (문제가되지 않고 부팅하기가 더 빠르며 얇은 드라이버보다 더 많은 기능을 지원합니다).

다른 팁

Oracle Ships의 JDBC 드라이버에는 제공하는 URL에서 OS 사용자 이름과 비밀번호를 수집 할 수있는 기능이 없습니다. Oracle 용 타사 JDBC 드라이버 제공 업체가 있으며 그 중 하나가 요구하는 기능을 제공 할 수 있습니다. Google 주위에 있어야합니다.

대답 한 분들께 감사드립니다. 우리는 OCI 드라이버와 함께 갔다.

나는 Oracle 11G를 제안하기위한 문서를 찾았습니다 하다 얇은 드라이버를 통해 OS 사용자 인증을 지원합니다.

http://www.orindasoft.com/public/oracle_jdbc_javadoc/javadoc1110/oracle/jdbc/oracleconnection.html#connection_property_thin_vsession_osuser

이것을 테스트 할 11G 설정이 없으므로이 효과가 확신 할 수 없습니다.

J2EE AppServer에서 Oracle에 액세스하는 경우 JNDI를 사용하여 데이터 소스를 획득하여 비슷한 목적을 달성 할 수 있습니다.

11G 얇은 드라이버는 Kerberos 인증을 사용하여 연결할 수 있습니다.

보다 Kerberos를 사용하여 Oracle 데이터베이스에 연결하십시오

JDBC : Oracle : Thin : username/password@localhost : 1521 : mydbsid를 따르십시오

계정 정보를 지정해야합니다

작동 시스템 자동화를 통과하는 UNIX 머신의 SQLPLUS / AS SYSDBA

JDBC Thin 드라이버의 OS 인증 지원은 11G에 추가되었습니다 (OTN의 11.2.0.4에서 JDBC Thin 드라이버를 다운로드 할 수 있음).

서버에서 원격 OS 인증을 허용해야합니다 (TCP 이상)은 IPC 또는 BEQ 로컬로만 SQLPLUS에서만 작동합니다. init.ora 파일에서 다음을 추가하십시오.

REMOTE_OS_AUTHENT = TRUE

그런 다음 사용자가 클라이언트 컴퓨터에서 "OsUserdemo"인 경우 이와 같은 데이터베이스 사용자를 작성하고 DB를 다시 시작하십시오.

 CREATE USER OSUSERDEMO IDENTIFIED EXTERNALLY;
 GRANT CONNECT,CREATE SESSION,RESOURCE TO OSUSERDEMO; 

또한 JDBC Thin 드라이버는 사용자 이름이나 비밀번호없이 연결할 수 있어야합니다.

이 기능은 고도로 안전하지 않은 것으로 간주되어 12C에서 지원되지 않았다는 점은 주목할 가치가 있습니다.

jdbc:oracle:oci:@ OJDBC6.jar 및 Oracle 11G2와 함께 작동합니다

라이센스 : CC-BY-SA ~와 함께 속성
제휴하지 않습니다 StackOverflow
scroll top